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시에 백업 수행한다.
'리눅스 공부 기록' 카테고리의 다른 글
리눅스 15 - DNS 서버 (0) | 2021.11.08 |
---|---|
리눅스 14 - Service 등록 및 관리 (0) | 2021.11.05 |
CentOS5 및 CentOS6 설치하기 및 epel, rpmforge 추가하기 (0) | 2021.11.03 |
리눅스 12 - RPM 및 YUM (1) | 2021.11.03 |
VMware에서 NAT 네트워크 구축하기 실습 (0) | 2021.11.02 |