[Linux] 리눅스 Cron
Cron
- Linux System에서 주기적인 작업처리를 진행할 때 주로사용 된다. ( 예약 작업을 의미 )
- Cron은 프로세스 예약 데몬이며, 특정시각에 지정 된 작업을 수행한다.
- Crontab은 Cron에 의해 실행 될 예약 작업의 목록을 정의하는 파일을 말한다. ( CronTable )
- Cron은 사용자별 예약작업을 따로 가질 수 있다.
- Cron작업에 대한 로그기록은 /var/log/cron에 저장 된다.
기본적으로 관리자 계정만 사용 가능하나 제어파일을 편집하면 일반 사용자 계정도 사용 가능하다.
가장 기본적인 기능이기는 하지만 현재는 대체가능한 프로그램이 많아서 잘 사용하지는 않는다.
anacron은 주기적인 작업에 특화
정확한 시각을 지정하여 실행은 어려움
Cron 설정
crontab -l : 예약 작업 리스트 확인
crontab -e : 예약 작업 편집
crontab -r : 예약 작업 삭제
crontab -u [ UserName ] : 특정 사용자의 예약작업 확인 및 편집
# * * * * * *
Cron 예제
1. vi 실행파일 생성(파일생성)
# vi /script/cron_test.sh
cron_test.sh 해석
bash shell에서 실행
DATE 변수에 실행 시 날짜 저장
BACKUP_DIR 변수에 "/backup" 경로 저장
실행 시 /backup/test-[실행날짜].tar.gz 이름으로 /var/log를 압축해서 저장
/backup/* 파일들 중에서 생성날짜가 10일 이상인 파일들을 찾아서 제거
2. 실행파일 권한 +x
# chmod +x /script/cron_test.sh
3. crontab -e 편집
매달 매일 오후2시7분마다 cron_test.sh파일 실행
4. crontab -l 확인
5. tail /var/log/cron 예약 작업이 실행 되었는지 확인
6. 예약작업으로 파일 생성되었는지 확인
14시09분 압축파일 생성 확인
Crontab 백업 및 삭제
선택적으로 삭제가 불가능
crontab -l > /root/cron_back.txt (백업)
crontab -r (삭제)
crontab /root/cron_back.txt (복원)
수정이 필요한 경우 백업파일을 편집하고 삭제 후 복원
crontab 보다는 ansible을 사용함