cron을 이용하면, 원하는 스크립트를 일정 시간마다 실행시키고, 결과를 출력하거나 저장하거나 다양하게 활용할 수 있습니다.
Cron 설치
apt install cron
cron 목록 보기
crontab -l
아직 설정해둔 cron이 없어서, 위와같은 메세지가 출력됩니다.
cron 설정
crontab -e
* * * * * python3 cron.py >> cron.log 2>&1
cron은 앞서 설명했던 것 처럼, 정해진 시간마다 실행이되기 때문에, 시간을 정해줘야합니다.
* * * * * 총 다섯가지 패턴이 존재하는데, 첫번째 위치부터 "분 시 일 월 요일"순 입니다.
또한, 직접적으로 숫자를 입력하는 것, "*"을 이용해 모든 것을 포함한다거나 "/"을 이용해서 패턴을 준다던가 "-"로 범위를 설정하는등 다양하게 존재합니다.
즉, * * * * *가 의미하는 것은 매분마다 실행시킨다는 의미입니다.
python 코드 작성
from datetime import datetime
today = datetime.today()
print('cron test. DATE: {}'.format(today))
코드는 간단히 cron test. DATA: 현재 날짜 를 출력해주는 코드입니다.
cron 실행
service cron restart
OK가 나오면 실행에 성공한 것이고,
ps -ef | grep cron
ps 명령어를 통해서, 실행중인 프로세스를 확인할 수 있습니다.
log 확인
cat cron.log
디렉토리 목록을 확인해보면, cron.log라는 새로운 파일이 생성된 것을 볼 수 있습니다.
cat 명령어로 출력을 해보면, python 코드의 내용이 성공적으로 추가된 것을 확인할 수 있습니다.
시간이 지난뒤에 다시한번, 출력해보니까 43분 44분 45분 매분 1초마다 값이 저장된 것을 확인할 수 있습니다.
이렇듯, 특정 스크립트를 실행시켜서 log에 내용을 저장하는등 여러 방법으로 사용이 가능합니다.
또한, email보낼 목록을 모아놨다가 cron을 통해서 일괄 보내는등
저는 일정 시간마다 특정 사이트의 내용을 긁어와서 저장하는 코드에 적용했습니다.
'IT 공부 > Linux' 카테고리의 다른 글
[ ubuntu ] 일본어 폰트 패키지 설치 && matplotlib에 적용 (0) | 2022.02.09 |
---|---|
[ Linux ] linux환경에서 selenium 사용하기 (ubuntu/centos) (0) | 2022.01.26 |
Centos 환경에서 Nginx 서버 구동하기 (0) | 2021.10.05 |
[ Linux ] Shell Script(4) and Cron(scheduler) (0) | 2021.06.04 |
[ Linux ] Shell script (3) (0) | 2021.06.03 |