설치

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