[Linux]

[Linux] 리눅스 Cron

UtakerS 2022. 6. 2. 10:24
반응형

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을 사용함

 

반응형