[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 | * * * * * |
예를 들어, 매주 월요일에 crawling.py 를 실행한다면, 아래와 같이 crontab edit 창에서 작성하고 저장하면 됩니다.
1 | * * * * 5 python3 /directory/crawling.py |
1 | 25,45 * * * * python3 /directory/crawling.py |
1 | */20 * * * * python3 /directory/crawling.py |
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