설치
sudo apt update && sudo apt install cron
# 서비스 실행
sudo systemctl start cron
# 시작 및 부팅 시 자동 실행하도록 설정
sudo systemctl enable cron
서비스 상태 확인
sudo systemctl status cron
스케줄링 작업 등록
crontab -e
# 이후 1 입력하여 bash로 작업
crontab 내용 예시
# 매 주 일요일 0시 0분에 해당 경로로 이동하여 reboot 쉘 실행 후,
# 완료되면 ~/cron.log 파일에 로그 기록
# NOTE: shell 파일에서는 date 형식이 %Y 꼴이지만, cron에서는 아래처럼 \\%Y로 작성해야 함
0 0 * * 0 cd ~/api-server && sh sh/reboot_prod.sh && date +"[\\%Y-\\%m-\\%d] \\%H:\\%M:\\%S - shell: reboot_prod" >> ~/cron.log
cron 숫자 설명
1 2 3 4 5
1 - 분 (*: 매 분)
2 - 시 (*: 매 시)
3 - 일 (*: 매일)
4 - 월 (*: 매월)
5 - 요일 (*: 매 요일, 0: 일요일, 1: 월요일, ... 6: 토요일, 7: 일요일)
예시
# 매 분마다 실행, 즉 60초마다 실행
* * * * * command
# 5분마다 실행
*/5 * * * * command
# 매 시간 정각에 실행
0 * * * * command
# 매일 자정에 실행
0 0 * * * command
# 매일 오전 6시 30분에 실행
30 6 * * * command
# 평일(월~금) 오전 9시에 실행
0 9 * * 1-5 command
# 매주 일요일 0시 0분마다 실행
0 0 * * 0 command
# 매월 1일 0시 0분마다 실행
0 0 1 * * command
# 매년 1월 1일 자정에 실행
0 0 1 1 * command