Menu

메모용 개발 블로그

전체보기 > OS > Linux >

crontab 사용법 (리눅스 예약 작업)

2021-10-16 23:03:15

https://kim-19.tistory.com/146?category=922291

티스토리 블로그 글을 옮기면서 일부 수정하였습니다.

리눅스를 주로 서버로 이용하다보니 주기적으로 해줘야할 일들이 있습니다.

이를 매 정해진때마다 하는 것은 버거롭기때문에 예약을 걸게 됩니다.

리눅스에서는 이를 crontab으로 수행합니다.

요약

명령어: crontab

옵션: -i : 설정해둔 예약작업을 본다. -e : 예약 작업을 수정한다. (에디터로 열림) -r : 에약 작업을 삭제한다.

등록법 $ crontab -e

다음과 같은 창이 뜨며 주석으로 설명을 친절하게 해놓았다.

작성 방법은 다음과 같다.

[분] [시] [일] [월] [요일] [명령어]

요일 값

  • 월 : 1
  • 화 : 2
  • 수 : 3
  • 목 : 4
  • 금 : 5
  • 토 : 6
  • 일 : 0 or 7

예시

# 수요일 자정 재시작
0 0 * * 3 init 6

# 매 5의 배수가 되는 분 마다 재시작
*/5 * * * * init 6

# 20분 혹은 50분이 되면 재시작
20,50 * * * * init 6

이러한 방식으로 작성하게되면 원하는 시각마다 작업을 수행할 수 있다.

이스케이프

특성상 백업을 하다가 파일에 날짜를 넣게되는데. 이때 date 명령에 인수로 %Y%m%d 이런 것을 줄 때. %는 이스케이프 처리를 해줘야한다.

ex) %Y%m%d

여담

crontab 스크립트가 몇 줄 안되어도 왠만하면 쉘 스크립트 파일로 작성하고 스크립트를 crontab에서 실행하는 편이 좋다고 생각하나, 사용은 개인의 자유이다.

그리고 나는 WSL로 사용하려했었는데 켜면 보통은 서비스가 꺼져있다...

sudo systemctl start crontab

켜주자.