hostnamectl set-hostname test
현재 서버의 이름을 test 로 변경한다.
재부팅 이후에 반영되므로 reboot 을 하거나 또는 재로그인을 su
route
라우팅 정보, 기본 게이트웨이 정보 확인 가능
netstat -nr
-r: display routing table
-n: numeric -> 이름이 아닌 ip주소로 보여줌
netstat -anpt | grep LISTEN
-a: all -> 모든 소켓 보여줌
-n: numeric -> 이름이 아닌 ip주소로 보여줌
-p: process id
-t: tcp 서비스만 보여줌
netstat -anpt | grep httpd
grep Listen /etc/httpd/conf/httpd.conf
또는
cat /etc/httpd/conf/httpd.conf | grep Listen
어떤 파일 시스템이 어디에 마운트 되었는지 볼 수 있음
df -h
-h: human readable -> 용량을 K, M, G 단위로 보여줌
mount /dev/sr0 /test
cd-rom을 /test 디렉토리에 연결하겠다
mount -t nfs 192.168.1.99:/cloud /test
원격지 서버인 192.168.1.99의 /cloud 디렉토리를 로컬에 있는 /test 디렉토리에 마운트 시킨다.
참고로 nfs는 공유 스토리지이므로 여러 사람이 동시에 접속할 수 있다.
실시간으로 메모리와 CPU가 프로세스별로 어느정도 사용되고 있는지를 확인할 수 있다.
(* virt-top : 가상머신들의 CPU/MEM 정보를 확인할 수 있다)
yum -y install sysstat
sar 3 5
3초마다 한 번씩 총 5번 CPU의 유휴자원 등을 확인하여 평균값을 출력
mkdir -p /a/b/c
원래 a, b가 없던 상태에서 a, b가 생성되면서 c를 생성.
rpm으로 설치하기
rpm -Uvh test.1.0.rpm
설치 확인
rpm -qi httpd
-qi: 설치된 패키지의 상세 정보 확인
yum grouplist
yum -y groupinstall "Server with GUI"
그룹 관련 패키지를 모두 설치함
파일 묶기: tar
파일 압축: gzip, zip, bunzip, xz, ... -> 압축률의 차이가 있다. 이 중 압축률 가장 높은 것은 xz
압축하기
tar cvf my.tar test/
c: create
v: visual
f: filename
test/ 디렉토리 내에 포함되어있는 모든 파일과 디렉토리를 my.tar 파일로 묶겠다. 묶이는 과정을 확인하겠다.
압축 해제
tar xvf my.tar
x: 압축 해제
압축하기
tar cvfz my.tar.gz test/
압축 해제
tar xvfz my.tar.gz
압축하기
testdate=$(date +%y%m%d)
tar cfJP $testdate.tar.xz /var/www/html
J: xz
P: 디렉토리의 마지막 폴더인 html 폴더를 압축함
압축 해제
tar xfJ 220722.tar.xz
atime: access -> 파일이나 디렉토리에 접근한 시간
mtime: modify -> 파일의 내용을 열고 수정하였다.
ctime: change -> 파일의 내용을 수정한 것이 아니라 파일의 고유 번호(inode)나 퍼미션(+x), 소유권(user1 -> root) 등을 변경
find /usr/bin -mtime -4 -type f
/usr/bin 하위 파일을 검색하여 최근 4일 이내에 변경된 적이 있는 파일이 있다면 출력
crontab -e
-e: edit
* * * * * echo "hello" >> test.txt
*(분) *(시) *(일) *(월) *(요일)
-> 매 분마다 작업 수행
systemctl restart crond
cat ~/test.txt
1분에 한 번씩 hello가 추가됨
crontab -e
* * * * * echo $(date +\%y\%m\%d\%H\%M) >> test.txt
systemctl restart crond
cat ~/test.txt
1분에 한 번씩 시간이 추가됨
시간 설정)
2 * * * *
매 시 2분에
*/2 * * * *
2분마다
crontab -e
* * * * * /root/backup.sh
-> 매 분마다 backup.sh 쉘 스크립트 실행
backup.sh 쉘 스크립트 작성
touch /root/backup.sh
chmod +x /root/backup.sh
vi /root/backup.sh
#!/bin/bash
echo "hello backup" >> /root/backup.txt
"hello backup"을 backup.txt에 추가함
cat /root/backup.txt
1분마다 "hello backup"이 한 줄씩 작성됨
vi /root/backup.sh
#!/bin/bash
name=$(date +\%m\%d\%H\%M)
git clone https://github.com/ptah0414/react_blog.git /root/$name
\cp /root/$name/* /var/www/html
systemctl restart httpd
crontab -e
* * * * * /root/backup.sh
[확인]
github에서 index.html 파일의 내용을 수정
1분 정도 기다린 다음 웹페이지를 다시 확인하면 변경된 내용으로 보여야 한다.
centos7 - dns 서버, 192.168.1.116
centos8 - 일반 pc, 211.183.3.111
[centos8]
ping -c 3 192.168.1.116
centos7과 통신이 된다
dns 주소를 192.168.1.116(centos7)으로 변경
cat /etc/resolve.conf
dns 주소가 192.168.1.116(centos7)으로 변경되었음
ping -c 3 www.google.com
안 된다
centos7에서 dns 구성이 되어있지 않기 때문에 도메인을 모른다.
ping -c 3 8.8.8.8
된다
사용자 입장에서 자신의 NIC 에 DNS 항목에 작성한 DNS 서버 주소 -> 로컬 네임서버
실제로 DNS 서비스를 제공하는 서버는 크게
캐시 네임서버 : 자신이 직접 도메인을 관리하지는 않는다. 루트도메인서버, .com 서버 등에게 질의한 다음 최종 결과를 자신의 캐시에 저장하고 해당 결과를 사용자에게 전달해 주는 역할만을 수행한다.
이후에 동일 주소에 대한 query 가 또 있을 경우 캐시에 있는 정보를 확인하여 전달해 준다.
마스터 네임서버 : test.com, test.co.kr 과 같은 도메인을 직접 관리하는 서버이며 zone 파일이라는 곳에 서브도메인 등을 작성하여 외부에서 www.test.com 과 같은 주소로의 접속을 희망했을 경우 서브도메인에 대한 주소를 알려주는 역할을 수행한다.
[centos7]
1. bind, bind-chroot 설치
yum -y install bind bind-chroot
vi /etc/named.conf
13) listen-on port 53 { any; };
14) listen-on-v6 port 53 { none; };
21) allow-query { any; };
36) dnssec-validation no;
systemctl restart named
systemctl enable named
systemctl status named
[centos8]
nslookup server
-> 192.168.1.116
1) rapa
nslookup www.rapa.or.kr
-> 14.63.193.79
dig www.rapa.or.kr
-> 14.63.193.79
2) google
nslookup google.com
-> 172.217.26.238
nslookup www.google.com
-> 142.250.196.100
우리 회사에 있는 캐시네임서버 192.168.1.116을 마스터네임 서버로 활용할 계획이다. 도메인 주소는 gunwoo.com이다.
내부에 있는 211.183.3.111이 주소창에 www.gunwoo.com이라고 했을 때, 마스터 네이버 서버에서 동시에 서비스하고 있는 웹서비스를 제공할 수 있어야 한다.
[centos7]
vi /etc/named.conf
zone "gunwoo.com" IN {
type master;
file "gunwoo.com.db";
allow-update { none; };
};
맨 아래에 코드 추가
allow-update: 만약 master dns가 다운되면 slave dns를 사용할 것임
우린 slave dns를 설정 안 했으므로 allow-update none
named-checkconf
오타가 없다면 아무런 반응이 없음
cd /var/named/
touch gunwoo.com.db
vi gunwoo.com.db
$TTL 3H
@ SOA @ root. ( 2 1D 1H 1W 1H )
IN NS @
IN A 192.168.1.116
www IN A 192.168.1.116
shop IN A 192.168.1.199
hr IN A 192.168.1.101
www.gunwoo.com 으로 접속 -> 192.168.1.116(내 pc)으로 보냄
shop.gunwoo.com 으로 접속 -> 192.168.1.199(bt님 pc)으로 보냄
hr.gunwoo.com 으로 접속 -> 192.168.1.101(hr님 pc)으로 보냄
systemctl restart named
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=127.0.0.1
DNS2=8.8.8.8
DNS1과 DNS2를 위와 같이 변경
DNS1=127.0.0.1 -> 본인 것을 확인
systemctl restart network
systemctl restart httpd
[centos8]
shop.gunwoo.com 접속
www.gunwoo.com 접속
hr.gunwoo.com 접속
web proxy는 웹서버의 내용을 캐시에 담고 이를 클라이언트에게 전달한다.
이후 동일 사이트 접속 시도 시 캐시에 있는 LAN에서 전달하므로 속도가 빠르다.
https://docs.oracle.com/cd/E19575-01/821-0053/adyml/index.html