[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 으로 초단위 실행


댓글()