본문 바로가기

Linux

프로세스 관리 : 주기적 실행 작업 관리

01. 주기적 실행 작업 관리

1. cron

- 주기적으로 명령을 실행해주는 도구

- /var/spool/cron 하위에 계정명으로 crontab 파일이 존재하고 root의 경우 /etc/crontab을 참조

- crontab 파일을 직접 편집하는것 보다는 편집 명령어를 사용함

- 명령어

crontab -e : crontab 항목 편집

*다른 사용자 계정의 crontab도 편집 가능, crontab -e 계정

crontab -l : crontab 리스트 출력

 

2. crontab 설정
- 분(0-59) 시(0-24) 일(1-31) 월(1-12) 요일(0-6) 명령  순서로 나열

- '*'는 모든 시간 또는 요일

예) * * * * * command : 매 1분 마다 명령 실행

- ','로 시간 또는 요일을 나눠서 실행 가능

예) 20,40 * * * * command : 매일 매시간 20분, 40분마다 명령 실행

- '-'로 시간 또는 요일 범위를 지정해 실행 가능

예) 0-15 * * * * command : 매일 매시간 0~15분 사이에 1분마다 명령 실행

- '/'로 시간 간격을 두고 실행 가능
예) */15 * * * * command : 매일 매시간 15분마다 명령 실행

- '#'을 앞에 붙이면 주석으로 인식됨

 

3. 실사용 예

- 새벽 1시마다 디비 dump 생성, 데이터 압축, 외부 장치로 전송
- 정기적인 배치 작업 수행
- 일정 기간 지난 파일 삭제(로그 파일 로테이션 등)

- 서버 시간 동기화

crontab 사용 시간 동기화 예시

 

4. crontab 실행 결과 확인

-  명령어나 스크립트를 터미널에서 직접 실행하면 진행 과정이 화면에 출력되니 볼 수 있지만

 crontab으로 실행하는 경우 화면에 출력되지 않음

- 정상적으로 처리 됐는지 또는 중간에 에러는 없었는지 화면 출력을 보고 싶다면 별도 파일로 남길 수 있음

- crontab에 작성한 명령 뒤에 > 또는 >> 를 붙여 별도 파일에 출력이 저장되도록함

rdate 출력 결과를 /root/test 파일에 기록

 

*본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

http://bit.ly/3Y34pE0