티스토리 뷰

Server/Linux

[Linux]Crontab 사용하기

retto9522 2024. 9. 13. 11:33

Crontab

crontab은 UNIX 게열의 운영체제에서 주기적으로 명령어를 실행할 수 있게 해주는 스케줄러입니다.

crontab 파일은 일정한 시간, 날짜, 요일에 특정 명령어를 실행할 수있도록 설정하는 파일입니다.

crontab 파일은 각 사용자가 자신의 스케줄을 설정할 수 있도록 사용자 별로 존재하며, 시스템 관리자가 전체 시스템에 대한 스케줄을 설정할 수도 있습니다.

 

Crontab 형식

# 분 시 일 월 요일 명령어
* * * * * 명령어

각 필드(분, 시, 일, 월, 요일) 마다 아래와 같은 값을 줄 수 있습니다.

  • 분: 0 ~ 59
  • 시: 0 ~ 23
  • 일: 1 ~ 31
  • 월: 1 ~ 12
  • 요일: 0 ~ 7 (0과 7. 둘 다 일요일을 의미합니다)

예를 들어, 매일 오전 3시에 /home/user/backup.sh 스크립트를 실행하려면 다음과 같이 설정할 수 있습니다.

0 3 * * * /home/user/backup.sh

Crontab을 편집하려면 crontab -e 명령어를 사용하고, 현재 설정된 Crontab의 내용을 확인하려면 crontab -l 명령어를 사용할 수 있습니다.

 

 

Crontab을 이용해서 파이썬 코드 주기적으로 실행하기

1. Crontab 설치하기

apt-get update

 

2. Crontab 편집하기

crontab -e (현재 사용자의 Crontab 설정을 편집합니다.)

 

3. 규칙 추가하기

crontab 파일이 열리면 아래 코드를 추가합니다.

0 * * * * {Python 위치} {실행시킬 Python 파일 위치}

0 * * * * /home/crawling/myenv/bin/python /home/crawling/crawling_daum.py

4. 파일 저장 후 나가기

:wq로 파일 내용을 저장하고 나갑니다.

 

5. Cron Service 시작하기

service cron start

 

 

Cron 작업에 대한 Log 남기기

crontab 작업에 대한 Log를 남길 수 있습니다.

우선 다시 파일을 편집하기 위해 crontab -e 파일을 열어줍시다. 그리고 아래와 같이 작업 코드를 수정합니다.

0 * * * * /usr/bin/python3 /path/to/your/script.py >> /path/to/logfile.log 2>&1

이 명령어는 스크립트이 표준 출력과 오류를 모두 logfile.log에 기록합니다.

  • 로그 로테이션을 설정하여 로그 파일이 너무 커지지 않도록 관리할 수 있습니다.
  • 더 자세한 로깅이 필요하다면, 파이썬 스크립트 내에서 로깅 모듈을 사용하여 로그를 기록할 수 있습니다.
2>&1은 무엇을 의미하나요?
명령어에서 '2>&1'의 의미는 다음과 같습니다.
'2>'는 표준 오류를 redirect 하라는 의미입니다.
'&1'은 표준 출력을 가리킵니다.
따라서 '2>&1'"표준 오류를 표준 출력으로 redirect하라"는 의미입니다.

이 명령어를 사용하면 스크립트의 표준 출력과 표준 오류가 지정된 로그 파일에 기록됩니다. 이는 스크립트 실행 중 발생하는 모든 출력과 오류 메시지를 하나의 파일에서 확인할 수 있게 해줍니다.

 

공지사항
최근에 올라온 글
Total
Today
Yesterday