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 [옵션]

# crontab -u [유저] [옵션]
• 옵션
- e : 스케줄 등록
   . vi 환경으로 스케줄 등록
- l : 스케줄 확인 (출력)
- r : 스케줄 삭제
• 명령어 형식
[분] [시] [일] [월] [요일] [작업내용]
 시간 범위
 - 분 : 0 ~ 59

 - 시 : 0 ~ 23

 - 일 : 1 ~ 31

 - 월 : `1 ~ 12

 - 요일: 0(일요일) ~ 6(토요일)

 

crontab 실습

시간 받아오는 것과 권한을 변경해 주었다.

 

a.txt 파일의 권한이 변경된것을 확인할 수 있다.

 

RSYNC

두 시스템간에 지정한 디렉토리 동기화

RSYNC 도 클라이언트와 서버가 있음.

이 둘을 동기화하는 것

RSYNC 데몬 구동 : standalone(스크립트로 실행)

rsync 설치 확인
# yum list rsync
……
Installed Packages
rsync.x86_64 3.0.9-18.el7 @anaconda


관련 파일
• 데몬 : /usr/bin/rsync  (: 실제 실행되는 파일)
• 관리 스크립트 : /usr/lib/systemd/system/rsyncd.service   (: ntsysv 밑에 있는 것)
• 백업 설정 파일 : /etc/rsyncd.conf  (: rsync의 설정파일 / 수정하면 데몬 stop 후 start)


데몬 실행
# systemctl [start | stop | restart | status] rsyncd.service

 

RSYNC 서버 설정 : /etc/rsyncd.conf

[서비스 명] : 리소스 식별자, client에서 이용한다.
path : 백업 경로
comment : 주석
uid : 전송자 UID
gid : 전송자 GID
use chroot : rsync 경로를 외부에서 / 로 인식한다.

   (chroot : change root) 사용자가 접속하면 디렉토리 밖으로 이동못하게 / 로 인식

read only : 읽기 전용으로 접근한다.
hosts allow : 접속 허용할 호스트 (클라이언트만 지정)
max connections (=max clients / max servers) : 동시 접속자 수
timeout : 시간이 지나면 자동으로 접속 끊기

# cat /etc/rsyncd.conf
[backup]
path = /backup
uid = root
gid = root
use chroot = yes
read only = yes    (파일 원본 있어 복사만 가능. 쓰기 X)
hosts allow = 192.168.10.33  (지정된 클라이언트만 복사 가능)
max connections = 1
timeout = 300

RSYNC 클라이언트 : 동기화
: rsync client 명령을 이용 server의 디렉토리와 client의 디렉토리를 동기화
rsync –avz [--delete] source destination   (source를 destination로 복사)
rsync -avz [--delete] IP::[서비스명] [백업 디렉토리]
rsync -avz [--delete] [백업 디렉토리] IP::[서비스명]  (우리 서버는 현재 read only라 실행 X)

rsync 명령 옵션
• -v : 작업내역 출력
• -a : archive mode 작업
심볼릭 링크, 권한 등 모든 내용을 보존한다.
• -z : 파일을 압축 전송한다.
• --delete : source에서 지워진 파일을 destination에서도 지워준다.(완전 동기화 옵션)
 Local System 내에 동기화
rsync –avz /home/httpd/ /backup/httpd/

 

rsync 명령을 cron에 등록
• 매일 새벽 1시에 백업 수행
00 1 * * * rsync -avz 192.168.10.31::backup /backup

 

 

RSYNC 실습

서버 [192.168.10.131] 

클라이언트 [192.168.10.133] 

먼저 서버로 사용할 [192.168.10.131] 컴퓨터에서 사용한다.

[192.168.10.131]에 rsync 설치를 확인한다.

 

[192.168.10.131]의 [ vi /etc/rsyncd.conf ] 수정한다.

 

 

클라이언트 컴퓨터 [192.168.10.133]

클라이언트에서 실행

/backup : 백업할 디렉토리를 생성한다. (/밑에 backup로 생성)

192.168.10.131 에 백업을 /backup 디렉토리에 백업한다.

잘 백업된 것을 확인할 수 있다.

 

 

클라이언트에서 cron 과 rsync를 이용한 자동 백업 등록

매일 새벽 1시에 백업 수행한다.

+ Recent posts