3. 13 (화) 정리 / Linux - YUM, CRON, RSYNC
Linux - YUM, CRON, RSYNC
◎ RPM - 패키지를 불러와야한다는 단점?, 고질적 문제인 의존성 문제
◎ YUM - RPM과 동일한 형식의 설치 구조 지원
- 인터넷 repository (창고, 저장소)를 이용하는 기술로, 인터넷만 연결되어 있다면,
지원되는 모든 프로그램의 설치와 관리가 가능
- 설치하고 싶은 패키지를 설치하면 의존성 때문에 필요한 다른 패키지도 같이 설치.
- 인터넷으로는 YUM으로, 나의 저장장소로 부터 설치하면 RPM으로. 차이가 큰 것은
아님
● 조회
- yum list : 설치된 패키지를 확인
# yum list
- rpm -qa 와 동일
# yum list [패키지명]
- 지정한 패키지의 설치여부를 확인
● 설치
# yum install [-y] [패키지명]
- 패키지를 repository로부터 설치
● 업데이트
# yum update [-y] [패키지명]
- 패키지를 repository로부터 업데이트한다.
- production에서 테스팅이 끝난 패키지만 업데이트
● 삭제
# yum remove [패키지명]
- 지정한 패키지를 삭제한다.
실습) http 패키지를 찾아보고, 있다면 지우고 재설치, 없다면 설치해보자.
툴삭제
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1HVRrL1ydNV7zIL8i3qL793FWoVOLGf-_akp4Th6wjvQTC2-ieWMDUfh7R3Q73KyoLkLMi7n3n_AIreFHCwwtiyLvb4h3xOypVvS3ORMaH4XzJU58B2UnWHVehQ6kmBGGxPnq27BkFAo/s1600/httpd+%25ED%2588%25B4+%25EC%2582%25AD%25EC%25A0%259C.png)
툴 재설치
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZthHIaTR1GYmy8T816j4cdf0ZV5EHBl7lzaowIGuiKgdDnLiddTLwvDl8GdyNwxWoiaD2aDpNKF2mDByKfS4JbGdQza8GErurQHG0GGaESCiGHN6NZGmAmwnM3jfFG6ck5S7MzAkRqk0/s1600/httpd+%25EC%2584%25A4%25EC%25B9%2598+1.PNG)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZIF3BfUegLoNs2hrM0uuIpLeQ5P37lZzqPhQBZ_qo6QquYfwEDIOVjNxMjfUEmiZ1I8Zz9gk6BAgt3jbX2CkZQSD7fPUs-ueOtivk54eYPfULXVBhZcf47Ztt1OpGdRkhgcqUbCPLmeU/s1600/httpd+%25EC%2584%25A4%25EC%25B9%2598+2.PNG)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiALgtoYZp8L92g6Pk3gBkyeGXZk_D4MlRzn5zYMS5XgW8fnWDSdLb2bMta2iIHrQQ4-NR50hwVrxiG7aalAC-J06PNu1A0bgRB-vWGp5JD2mNzxiZSPAa8Ro4OHDs9Fhf7S7qj8X3nILE/s1600/httpd+%25EC%2584%25A4%25EC%25B9%2598+3.PNG)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAqCxU3uMw7c7h3P7KXJPx-h4v2PpOQUZXr9-9-RtbEiLP1YMKHlZYh4xPMEAlIF1MDCBnctVSYHTh7O5qEysDn-FR-THdu5h7X0xUFCFVpSC2VzoF1lj-cXUEca4wJ2yuN96v57_Bg_c/s1600/httpd+%25EC%2584%25A4%25EC%25B9%2598+%25EC%2599%2584%25EB%25A3%258C.PNG)
설치 완료!
◎ CRON
● 주기적으로 작업되는 작업 일정을 저장하여 자동으로 실행하는 데몬
● at이나 anacron 등과 같이 다양한 프로그램 지원
- /etc/rc.d/init.d/crond : 데몬 실행 스크립트 (service를 이용한다.)
- /usr/lib/systemd/system/crond.service (systemctl을 이용한다.) 위의 둘 중 하나 존재
- /etc/crontab : 기본 스케쥴 일정 / 시간별, 일자별, 주간별, 월간 실행 스케쥴 관리
- /usr/bin/crontab : 스케쥴 설정 프로그램 파일
- /etc/cron.allow, /etc/cron.deny : /usr/bin/crontab 이용 제한
● 사용 형식
# crontab -u [유저] [옵션]
*옵션
-e : 스케줄 등록 (vi 환경으로 스케줄 등록) - 일부 삭제 가능
-l : 스케줄 확인 (출력) -list
-r : 스케줄 삭제 (전부 삭제됨) - 쓰지 말 것.
*명령어 형식
[분] [시] [일] [월] [요일] [작업내용]
- 백설표(*) 사용가능 (전부 백설표일 경우 1분당 한번)
- 시간 범위
분 : 0 ~ 59
시 : 0 ~ 23
일 : 1 ~ 31
월 : 1 ~ 12
요일 : 0(일요일) ~ 6(토요일)
예제 실습)
º crontab -l
º crontab -e
- (시간 설정 / 명령어 / 명령어 옵션)
- 00 0-23 * * * rdate -s time.bora.net
: 매시간마다 실행
- 0-59/10 * * * * chown -R data.st /home/data
: 0에서 59분까지 10분마다 실행
- 0-59/10 * * * * chmod -R 775 /home/data
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfMhQm6aljX4tEq3ViJfZza8cqSeIP0LP4JgO-2ffzfKt82exTImprBUwULs6qLyJcTnZTDE5hfvzR4ie1rDNw7xJ7MGghVuXR7VTkcRv2kGZiRaFDNZJZm01m6iKtBX6M0IoxhjEH2ww/s400/crontab+e.PNG)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaxzjCKPkQh4qGA7ISiCUxaLJBmBnmijHQmr8SG58WBWGr_USLtJlUKqCHBtEG2_CC9LuwLbIcbGF96uKd2-GHS76htxLkEZqAVGz3HZvuyib0ljPvwUdPYAZrQygJve4FNdjYeagGroQ/s1600/crontab+e+2.PNG)
º crontab -l
- 설정한 스케쥴 출력
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnnRfjIS7Xm4PF-DZ81EUjI2Xj3XRbLaZa9o9IPGrOAAqVROSJyftSQ8d22qH7-iulp_fQYIY_ti8Ca-EJ0zDAT2ZEeRYx6SWyA9d5nOuBfkU_0xjiXyarb5-RLt_jgg2yBDcTLDl0jj8/s1600/crontab+l+2.PNG)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilci8waHsPT4Ng97SOGhJd5MAcd_3fWGKTncy2ZgZerM4nu4hs9fjf4k4hm-Cj3ceY8nJuq5oBmuJuocg9oulZUmakoTE0f83uJbE-RevD8pftmVz6R4Oz3T5m8O-xkha9MCjzLe1Iikg/s1600/crontab+%25ED%258C%258C%25EC%259D%25BC+%25EC%2583%259D%25EC%2584%25B1+%25ED%2599%2595%25EC%259D%25B8.PNG)
-> 파일 생성 확인
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU9OR7Q_NI3Hqau1VditpF1NZ3Ky08lrVjHVsVz13reTsIglZnltlApjlGD9-cZeZKhe_Vhfm2NsZKGMtGo80hsttAiG2wRq4kYSe6EPdaZYOxHJ7w9s0YuZRutxjJkGlBMpQIL-liVmc/s1600/crontab+%25ED%258C%258C%25EC%259D%25BC+%25EC%25A0%2580%25EC%259E%25A5+%25EA%25B2%25B0%25EA%25B3%25BC.PNG)
-> 파일 저장 결과
º 기간 설정
- [#-#] : 실행할 시간 범위를 지정
- [#-#/#] : 범위 내에서 실행 간격 지정
- 00 9-18/2 1-15/3 1-12/4 1-5 백업.sh
: 백업.sh라는 파일이 사전에 준비되어야함 (실행 가능한 파일)
● 기본 스케줄 등록 파일
# cat /etc/crontab
SHELL=/bin/bash : cron이 실행 될 때 기본적으로 사용하는 shell 설정
PATH=/sbin:/bin:/usr/sbin:/usr/bin : cron에 등록된 명령어를 실행하기 위한 PATH
MAILTO=root : cron 실행 결과를 root에게 메일 보냄
HOME=/ : 명령이나 스크립트를 실행할 홈 디렉토리 설정
01 * * * * root run-parts /etc/cron.hourly : 매 시간 1분 마다
02 4 * * * root run-parts /etc/cron.daily : 매일 4시 2분 마다
22 4 * * 0 root run-parts /etc/cron.weekly : 일요일 4시 22분 마다
42 4 1 * * root run-parts /etc/cron.monthly : 매월 1일 4시 42분 마다
- 각각 지정된 시간마다 해당 디렉토리에 저장된 스크립트 실행
◎ RSYNC
● 동기화 명령어
● 원본 저장 시스템과 백업 저장 시스템을 서로 동기화한다고 보면 무방하다.
● 명령어이므로 직접 쳐야한다.
● CRON에 등록하면 주기적으로 실행되게 된다.
● listening - 서버에서 클라이언트가 접속하는지 주의깊게 주시하는 역할
● rsync 설치 확인
# yum list rsync
......
rsync.i386 2.6.8-3.1
# yum list xinetd
.......
xinetd.i386 2:2.3.14-10.SUL2
● 관련 파일
- 데몬 : /usr/bin/rsync
- 관리 스크립트 : /etc/rc.d/init.d/xinetd -> 실행할 수 있는 유일한 실행파일
- 실행 설정 파일 : /etc/xinetd.d/rsync
- 백업 설정 파일 : /etc/rsyncd.conf
● /etc/xinetd.d/rsync 파일
- xinetd에 의해 관리되는 rsync는 실행을 위해 /etc/xinetd.d 디렉토리 아래 rsync 파일을
설정한다.
# cat /etc/xinetd.d/rsync
……………
service rsync
{
disable = no ← 기본값은 yes이다. 실행을 위해 no로 수정한다.
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
● /etc/rsyncd.conf -> 만들어줘야 함 (서버에서 생성)
[서비스 명] : 리소스 식별자, client에서 이용한다.
path : 백업 경로
comment : 주석
uid : 전송자 UID
gid : 전송자 GID
use chroot : rsync 경로를 외부에서 / 로 인식한다.
read only : 읽기 전용으로 접근한다.
hosts allow : 접속 허용할 호스트 (클라이언트만 지정)
max connections : 동시 접속자 수
timeout -> 초단위
예시)
# cat /etc/rsyncd.conf
[backup]
path = /backup
uid = root
gid = root
use chroot = yes
read only = yes
hosts allow = 192.168.10.13
max connections = 1
timeout 300
● RSYNC 동기화
rsync client 명령을 이용 server의 디렉토리와 client의 디렉토
리를 동기화한다.
rsync –avz [--delete] source destination
rsync -avz [--delete] IP::[서비스명] [백업 디렉토리]
rsync -avz [--delete] [백업 디렉토리] IP::[서비스명]
--delete : source에서 지워진 파일을 destination에서도 지워준다.(완전 동기화 옵션)
++ 쓰지 않는게 좋은 옵션이다.(위험)
● rsync 명령 옵션
• -r : Recursively 복사
• -v : 작업내역 출력
• -a : archive mode 작업
심볼릭 링크, 권한 등 모든 내용을 보존한다.
• -z : 파일을 압축 전송한다.
- Local System 내에 동기화하는 법
rsync –avz /home/httpd/ /backup/httpd/
실습 1) Server(centos)에서 Client(centos64)로 Backup 진행
1. rsync와 xinetd 설치 확인
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlvwbS147IK-pL405gOl-v4vehoFnwrkbd0cUNoA520RrXSDksBM1fO2Y056GCZ39Bgo4uVdi_m2XJuFtP7XNXrHX8oJX0iv68imzRALD3RetB2-BJ24ToZyob-YjfxZCG_kMqpA1V01c/s400/server%25EC%259D%2598+1%25EB%25B2%2588.PNG)
2.rsync 파일 disable 부분 수정 (yes -> no)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZjXr2xZJx7k_aegkNWpPmVLSOrvm2rsjRTb8ww2BYcjG8r4bRvnvou8OHLibY6NfY19942dIdLxcVTGo4o7_bo8_XvwDTOOYpm10zgxyyCm0Tdqko2w5P8U1UxeMSl62TgerH6aQqzSw/s1600/server%25EC%259D%2598+2%25EB%25B2%2588.PNG)
3. /etc/rsyncd.conf 파일 생성
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoveQ7MeFXFXJUWSuCgvw279i2jiNa4GlJArQnZGDaUq-wLe_-tesY2-jwWPwSw617y54lOUT_H46SPvFSY1IHRAoHk23WM78HiDPtgFJ-mOBR1u2q0yd65U8MnFSa7QYSOlHLleuD7TI/s400/server%25EC%259D%2598+3%25EB%25B2%2588.PNG)
4. /backup 경로에 time.txt(백업대상) 생성
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNeph22wAXf7VaQ452M0i5zWYc4fW2aJjtSwOJPYIb_NNBMAjV5dbTBloyfP-wimWSKNnMEDLAFZv9Iz0Cm9wUj5LiC3i24v3dWxCQkec4RJW6Pt4RYraNK7g7W4mOBo5V5pRWyhza_t4/s1600/server%25EC%259D%2598+4%25EB%25B2%2588.PNG)
5. 백업 명령어 입력 (경로(/backup in client)는 미리 생성해두어야 한다.)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiO9n1qSog8k2aUN0fPWxvG54mkaxYPpxmROitPYI63Fsrk4DGTsfU0CdrM81TjicKMrKLsHUowBcqATqqNeFJzq5Jv4Zli-GbU39MgezUMGeWy2vs4K14G1pQf1aMd5esDJKThmM8jDrE/s1600/server%25EC%259D%2598+5%25EB%25B2%2588.png)
6. client에서 백업 확인
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyX2kDiHs56bccFX3hE7MWz4I5o87kPI89nhMxbgn2WDkTQt5ocMgk7i0zFEG53TrnDlzGBTXuWnmJ1iIlpbliTvBqW60aMkl9MdY3_oojjWaF9hVqj1o44RDRJ2BfWFYdB_DSWTzqkts/s400/server%25EC%259D%2598+6%25EB%25B2%2588.PNG)
추가로 알아야할 것.
1. NetworkManager 비활성화 - ntsysv / 삭제 - #yum remove NetworkManager
2. ntsysv 에서 iptables 비활성화
-> 실습 때 해결한 방법 : #service iptables stop
3. vi /etc/selinux/config 에서 enforce 권한 disable로 변경
-> 실습 때 해결한 방법 : #setenforce 0
실습 2) Client(centos64)에서 Server(centos)로 망가진 서버(가정) 복구 진행
1. rsync와 xinetd 설치 확인
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1oeUXm1V5PVnPKYrT3vNUMyMdFoXpII7JVYLhd-oAOyelk4cOO3NGe0XjtCxTv4DO9-2_Jjd6ks8uIEfjp3MMxE6DyAUFr-xp0ltw9QdDTi7EOVLq6wb1i2mp6fdNplnGkm2VXeJaqHg/s1600/client%25EC%259D%2598+1%25EB%25B2%2588.PNG)
2. rsync 파일 disable 부분 수정 (yes -> no)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9V51ZwJ-AHFjEAhrz9j4zyjkGdw32Unz0ZCJyC5SefDk_F2K1f5A474lwmGb-yhwaqtYoyOGdClsZRCNK_2Yjy2H-sYRdXvCw82TZUtLFtQT-l9M8TuSsaw3l7TnJFb4-AiAu3WJ5pZ8/s1600/client%25EC%259D%2598+2%25EB%25B2%2588.PNG)
3. /etc/rsyncd.conf 파일 생성 (위에서 실습 1과 구분하기 위해 경로를 /backup2로 변경)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ8RZFq_31xoG-QuXi-SkFrP0HeD2dfvSOPeXy8tRWHxUpN_ZGZwIAQKu3YFZ2iDuDurJooLKTcd7hitwHV36MxyfehVc-8IoPhsXE4EUt1_L5K-F6EFq2TPxnN5miD6onDwkW17IozaA/s1600/client%25EC%259D%2598+3%25EB%25B2%2588.PNG)
4. /backup2 경로에 time2.txt(백업대상) 생성
-> 실수로 backup 디렉토리에 생성하여 다시 backup2 디렉토리로 옮겨주었다.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIZ0G6RerL189RQioKsq1fcHasDcby4MM2AuaiozdR7IG_Az3Cw_uZkmLIko3jH8kis81P6L9_60QytXgNgQMFe2Ipgkwbt-jq8lM_l-1nTQzRS_Gkn_BVp-_HIiluzd5jnl-9KisSNDY/s1600/client%25EC%259D%2598+4%25EB%25B2%2588.PNG)
5. 백업 명령어 입력 (경로(/backup in client)는 미리 생성해두어야 한다.)
6. server에서 백업 확인
◎ RPM - 패키지를 불러와야한다는 단점?, 고질적 문제인 의존성 문제
◎ YUM - RPM과 동일한 형식의 설치 구조 지원
- 인터넷 repository (창고, 저장소)를 이용하는 기술로, 인터넷만 연결되어 있다면,
지원되는 모든 프로그램의 설치와 관리가 가능
- 설치하고 싶은 패키지를 설치하면 의존성 때문에 필요한 다른 패키지도 같이 설치.
- 인터넷으로는 YUM으로, 나의 저장장소로 부터 설치하면 RPM으로. 차이가 큰 것은
아님
● 조회
- yum list : 설치된 패키지를 확인
# yum list
- rpm -qa 와 동일
# yum list [패키지명]
- 지정한 패키지의 설치여부를 확인
● 설치
# yum install [-y] [패키지명]
- 패키지를 repository로부터 설치
● 업데이트
# yum update [-y] [패키지명]
- 패키지를 repository로부터 업데이트한다.
- production에서 테스팅이 끝난 패키지만 업데이트
● 삭제
# yum remove [패키지명]
- 지정한 패키지를 삭제한다.
실습) http 패키지를 찾아보고, 있다면 지우고 재설치, 없다면 설치해보자.
툴삭제
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1HVRrL1ydNV7zIL8i3qL793FWoVOLGf-_akp4Th6wjvQTC2-ieWMDUfh7R3Q73KyoLkLMi7n3n_AIreFHCwwtiyLvb4h3xOypVvS3ORMaH4XzJU58B2UnWHVehQ6kmBGGxPnq27BkFAo/s1600/httpd+%25ED%2588%25B4+%25EC%2582%25AD%25EC%25A0%259C.png)
툴 재설치
설치 완료!
◎ CRON
● 주기적으로 작업되는 작업 일정을 저장하여 자동으로 실행하는 데몬
● at이나 anacron 등과 같이 다양한 프로그램 지원
- /etc/rc.d/init.d/crond : 데몬 실행 스크립트 (service를 이용한다.)
- /usr/lib/systemd/system/crond.service (systemctl을 이용한다.) 위의 둘 중 하나 존재
- /etc/crontab : 기본 스케쥴 일정 / 시간별, 일자별, 주간별, 월간 실행 스케쥴 관리
- /usr/bin/crontab : 스케쥴 설정 프로그램 파일
- /etc/cron.allow, /etc/cron.deny : /usr/bin/crontab 이용 제한
● 사용 형식
# crontab -u [유저] [옵션]
*옵션
-e : 스케줄 등록 (vi 환경으로 스케줄 등록) - 일부 삭제 가능
-l : 스케줄 확인 (출력) -list
-r : 스케줄 삭제 (전부 삭제됨) - 쓰지 말 것.
*명령어 형식
[분] [시] [일] [월] [요일] [작업내용]
- 백설표(*) 사용가능 (전부 백설표일 경우 1분당 한번)
- 시간 범위
분 : 0 ~ 59
시 : 0 ~ 23
일 : 1 ~ 31
월 : 1 ~ 12
요일 : 0(일요일) ~ 6(토요일)
예제 실습)
º crontab -l
º crontab -e
- (시간 설정 / 명령어 / 명령어 옵션)
- 00 0-23 * * * rdate -s time.bora.net
: 매시간마다 실행
- 0-59/10 * * * * chown -R data.st /home/data
: 0에서 59분까지 10분마다 실행
- 0-59/10 * * * * chmod -R 775 /home/data
º crontab -l
- 설정한 스케쥴 출력
-> 파일 생성 확인
-> 파일 저장 결과
º 기간 설정
- [#-#] : 실행할 시간 범위를 지정
- [#-#/#] : 범위 내에서 실행 간격 지정
- 00 9-18/2 1-15/3 1-12/4 1-5 백업.sh
: 백업.sh라는 파일이 사전에 준비되어야함 (실행 가능한 파일)
● 기본 스케줄 등록 파일
# cat /etc/crontab
SHELL=/bin/bash : cron이 실행 될 때 기본적으로 사용하는 shell 설정
PATH=/sbin:/bin:/usr/sbin:/usr/bin : cron에 등록된 명령어를 실행하기 위한 PATH
MAILTO=root : cron 실행 결과를 root에게 메일 보냄
HOME=/ : 명령이나 스크립트를 실행할 홈 디렉토리 설정
01 * * * * root run-parts /etc/cron.hourly : 매 시간 1분 마다
02 4 * * * root run-parts /etc/cron.daily : 매일 4시 2분 마다
22 4 * * 0 root run-parts /etc/cron.weekly : 일요일 4시 22분 마다
42 4 1 * * root run-parts /etc/cron.monthly : 매월 1일 4시 42분 마다
- 각각 지정된 시간마다 해당 디렉토리에 저장된 스크립트 실행
◎ RSYNC
● 동기화 명령어
● 원본 저장 시스템과 백업 저장 시스템을 서로 동기화한다고 보면 무방하다.
● 명령어이므로 직접 쳐야한다.
● CRON에 등록하면 주기적으로 실행되게 된다.
● listening - 서버에서 클라이언트가 접속하는지 주의깊게 주시하는 역할
● rsync 설치 확인
# yum list rsync
......
rsync.i386 2.6.8-3.1
# yum list xinetd
.......
xinetd.i386 2:2.3.14-10.SUL2
● 관련 파일
- 데몬 : /usr/bin/rsync
- 관리 스크립트 : /etc/rc.d/init.d/xinetd -> 실행할 수 있는 유일한 실행파일
- 실행 설정 파일 : /etc/xinetd.d/rsync
- 백업 설정 파일 : /etc/rsyncd.conf
● /etc/xinetd.d/rsync 파일
- xinetd에 의해 관리되는 rsync는 실행을 위해 /etc/xinetd.d 디렉토리 아래 rsync 파일을
설정한다.
# cat /etc/xinetd.d/rsync
……………
service rsync
{
disable = no ← 기본값은 yes이다. 실행을 위해 no로 수정한다.
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
● /etc/rsyncd.conf -> 만들어줘야 함 (서버에서 생성)
[서비스 명] : 리소스 식별자, client에서 이용한다.
path : 백업 경로
comment : 주석
uid : 전송자 UID
gid : 전송자 GID
use chroot : rsync 경로를 외부에서 / 로 인식한다.
read only : 읽기 전용으로 접근한다.
hosts allow : 접속 허용할 호스트 (클라이언트만 지정)
max connections : 동시 접속자 수
timeout -> 초단위
예시)
# cat /etc/rsyncd.conf
[backup]
path = /backup
uid = root
gid = root
use chroot = yes
read only = yes
hosts allow = 192.168.10.13
max connections = 1
timeout 300
● RSYNC 동기화
rsync client 명령을 이용 server의 디렉토리와 client의 디렉토
리를 동기화한다.
rsync –avz [--delete] source destination
rsync -avz [--delete] IP::[서비스명] [백업 디렉토리]
rsync -avz [--delete] [백업 디렉토리] IP::[서비스명]
--delete : source에서 지워진 파일을 destination에서도 지워준다.(완전 동기화 옵션)
++ 쓰지 않는게 좋은 옵션이다.(위험)
● rsync 명령 옵션
• -r : Recursively 복사
• -v : 작업내역 출력
• -a : archive mode 작업
심볼릭 링크, 권한 등 모든 내용을 보존한다.
• -z : 파일을 압축 전송한다.
- Local System 내에 동기화하는 법
rsync –avz /home/httpd/ /backup/httpd/
실습 1) Server(centos)에서 Client(centos64)로 Backup 진행
1. rsync와 xinetd 설치 확인
2.rsync 파일 disable 부분 수정 (yes -> no)
3. /etc/rsyncd.conf 파일 생성
4. /backup 경로에 time.txt(백업대상) 생성
5. 백업 명령어 입력 (경로(/backup in client)는 미리 생성해두어야 한다.)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiO9n1qSog8k2aUN0fPWxvG54mkaxYPpxmROitPYI63Fsrk4DGTsfU0CdrM81TjicKMrKLsHUowBcqATqqNeFJzq5Jv4Zli-GbU39MgezUMGeWy2vs4K14G1pQf1aMd5esDJKThmM8jDrE/s1600/server%25EC%259D%2598+5%25EB%25B2%2588.png)
6. client에서 백업 확인
추가로 알아야할 것.
1. NetworkManager 비활성화 - ntsysv / 삭제 - #yum remove NetworkManager
2. ntsysv 에서 iptables 비활성화
-> 실습 때 해결한 방법 : #service iptables stop
3. vi /etc/selinux/config 에서 enforce 권한 disable로 변경
-> 실습 때 해결한 방법 : #setenforce 0
실습 2) Client(centos64)에서 Server(centos)로 망가진 서버(가정) 복구 진행
1. rsync와 xinetd 설치 확인
2. rsync 파일 disable 부분 수정 (yes -> no)
3. /etc/rsyncd.conf 파일 생성 (위에서 실습 1과 구분하기 위해 경로를 /backup2로 변경)
4. /backup2 경로에 time2.txt(백업대상) 생성
-> 실수로 backup 디렉토리에 생성하여 다시 backup2 디렉토리로 옮겨주었다.
5. 백업 명령어 입력 (경로(/backup in client)는 미리 생성해두어야 한다.)
6. server에서 백업 확인
댓글
댓글 쓰기