[SLES] 리눅스 백그라운드잡 설정 (cron job 설정)
안녕하세요. SAP 운영자 ST03 입니다.
오늘은 리눅스에서 자동 백그라운드 작업을 수행 할 수 있는 cron job 을 설정 해 보겠습니다.
#1 등록 형식 및 예시
* * * * * 수행할 명령어 ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ │ │ │ │ └───────── 요일 (0 - 6) (0:일, 1:월, 2:화, 3:수, 4:목, 5:금, 6:토) │ │ │ └───────── 월 (1 - 12) │ │ └───────── 일 (1 - 31) │ └───────── 시 (0 - 23) └───────── 분 (0 - 59)
** 출처 : 제타위키 - 리눅스 반복작업 cron, crond, crontab
#2 설정 방법
반복 수행 할 명령이 있는지 확인 합니다.
예시에서는 1분마다 현재 시간을 기록하는 스크립트 입니다.
root@saptest01:~ # vi /home/user01/cron_test.sh
반복해서 수행 할 명령 cron_test.sh 에는 아래 내용을 넣어 줍니다. cron_result.txt 에 현재 시간을 적어 놓는 스크립트 입니다.
echo "It is now" `date +%T` >> /home/user01/cron_result.txt
이후 해당 스크립트 실행을 위해 권한을 늘려 줍니다.
root@saptest01:~ # chmod 755 /home/user01/cron_test.sh
반복 수행 할 명령을 등록 해 줍니다.
root@saptest01:~ # crontab -e
아래 내용을 넣은 후 저장 해 줍니다.
* * * * * /home/st03/cron_test.sh
백그라운드 작업인 cron 을 재시작 해 줍니다.
root@saptest01:~ # systemctl restart cron
이후에 제대로 백그라운드 작업이 설정 되었는지 확인 합니다.
root@saptest01:~ # crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.zAggNS installed on Fri Jan 18 04:56:59 2019)
# (Cronie version 4.2)
* * * * * /home/st03/cron_test.sh
결과는 다음과 같이 매 분 수행 중 인 것으로 나옵니다.
root@saptest01:~ # cat /home/user01/cron_result.txt
It is now 12:26:01
It is now 12:27:01
It is now 12:28:01
It is now 12:29:01
#3 추가 설정 - 초 단위로 스케쥴 하기
리눅스의 cron job 스케쥴은 분단위까지로만 설정이 가능하기 때문에 초 단위의 스케쥴은 수행되는 프로그램/스크립트에서 조정합니다.
위에서 수행 한 cron_test.sh 에서 어떻게 조정 되는지 확인 해 보도록 하겠습니다.
root@saptest01:~ # vi /home/user01/cron_test.sh
아래와 같은 방법으로 매 15초마다 현재 시간이 적히는 스크립트로 수정합니다.
(sleep 15 && echo "It is now" `date +%T` >> home/user01/cron_result.txt) &
(sleep 30 && echo "It is now" `date +%T` >> home/user01/cron_result.txt) &
(sleep 45 && echo "It is now" `date +%T` >> home/user01/cron_result.txt) &
(sleep 60 && echo "It is now" `date +%T` >> home/user01/cron_result.txt) &
예상한 대로 잘 나오는지 결과를 확인 합니다.
root@saptest01:~ # cat /home/user01/cron_result.txt
It is now 12:34:16
It is now 12:34:31
It is now 12:34:46
It is now 12:35:01
It is now 12:35:16
It is now 12:35:31
** 참조 : 초 단위로 cron job 설정 출처 : oohyes 님의 블로그 - cron 으로 초단위 실행