[Linux] 자고있을 때도, 알아서.. 리눅스 Crontab

데이터를 모으기 위해 크롤링을 진행하거나, 머신러닝, 딥러닝 실험을 할 때 Linux 환경의 머신에서 정해진 시간과 주기에 맞추어 크롤링을 실행하고, 학습을 해준다면, 수많은 작업들을 미리 설정해둔 내용을 바탕으로 편하게 작업을 자동화 할 수 있습니다.

1. Crontab 스케줄 작성, 삭제, 목록 확인

1-1. Crontab 스케줄 작성하기

1
$ crontab -e

-e (edit) 옵션으로 Crontab 의 스케쥴을 설정해 줄 수 있습니다. 작성할 스케쥴은 리눅스의 디폴트 에디터인 vi 에디터를 이용합니다.

1-2. Crontab 스케줄 지우기

1
$ crontab -r

-r (remove) 옵션으로 Crontab 에 등록된 스케줄을 삭제해 줄 수 있습니다.

1-3. Crontab 스케줄 목록 확인하기

1
$ crontab -l

-l (list) 옵션으로 Crontab 에 등록된 스케줄 리스트를 확인 할 수 있습니다.

2. Crontab 주기

항상 사용할 때마다, 헷갈리고 잊어버리는 설정 주기 순서입니다.

마지막의 요일 부분은 0, 7: 일요일, 1: 월요일 ~ 6: 토요일

1
2
*   *    *   *   *
분 시간 일 월 요일

예를 들어, 매주 월요일에 crawling.py 를 실행한다면, 아래와 같이 crontab edit 창에서 작성하고 저장하면 됩니다.
1
* * * * 5 python3 /directory/crawling.py
이제부터는 조금 복잡한 주기를 설정할 수도 있습니다. 2-1. 반복 - 매시 25분, 45분에 실행하고 싶을 때
1
25,45 * * * * python3 /directory/crawling.py
- 매 20분마다 실행하고 싶을 때
1
*/20 * * * * python3 /directory/crawling.py
2-2. 범위 - 매주 수요일에서 금요일까지 1시 30분마다 실행 시킬 때
1
30 1 * * 3-5 python3 /directory/crawling.py

3. 예제

2분마다 “THIS IS CRONTAAAB”을 test.txt 에 기록해보자.

  • “THIS IS CRONTAAAB”을 test.txt 파일에 기록하는 shell command 를 작성합니다.
    1
    2
    # program.sh파일에 다음과 같이 작성합니다.
    echo "THIS IS CRONTAAAB" >> ./test.txt"
  • crontab -l 명령어를 통해 다음과 같이 작성합니다
    1
    */2 * * * * /directory/program.sh 

[Linux] 자고있을 때도, 알아서.. 리눅스 Crontab

https://emjayahn.github.io/2019/08/06/linux-crontab/

Author

Emjay Ahn

Posted on

2019-08-06

Updated on

2019-08-06

Licensed under

Comments