728x90

개요

서버 관리를 하다 보면 특정 작업정해진 시간에 자동으로 실행해야 할 때가 있습니다.

 

예를 들어, 매일 밤 12시에 데이터베이스 백업을 실행하거나, 매주 일요일마다 로그 파일을 정리하는 등의 작업이 있습니다. 리눅스에서는 이런 반복 작업을 자동화할 수 있는 'crontab'이라는 편리한 도구를 제공합니다.

 

crontab이란❓

crontab리눅스/유닉스 시스템에서 제공하는 작업 스케줄러로, 특정 시간이나 주기적으로 실행해야 하는 작업자동화할 수 있게 해주는 도구입니다.

기본 문법

crontab의 기본 문법은 다음과 같습니다.

*      *       *      *       *
분(0-59)  시간(0-23)  일(1-31)  월(1-12)   요일(0-7)

 분(0~59)을 설정. *을 설정한 경우 1분 단위로 실행
 시간(0~23)을 설정. *을 설정한 경우 매시간 실행
 일(1~31)을 설정. *을 설정한 경우 매일 실행
 월(1~12)을 설정. *을 설정한 경우 매달 실행
 요일(0~7)을 설정. *을 설정한 경우 월요일부터 일요일까지 매일 실행

 

  • 분: 0-59
  • 시: 0-23
  • 일: 1-31
  • 월: 1-12
  • 요일: 0-6 (0은 일요일)

주요 옵션

1. 작업 목록 확인 

crontab -l

 

2. 작업 편집하기

crontab -e

 

3. 모든 작업 삭제

crontab -r

 

 

자우 사용하는 예시 알아보기

 

1. 매일 특정시간에 실행

# 매일 오후 2시에 실행
0 14 * * * /scripts/daily-backup.sh

2. 매주 특정 요일에 실행

# 매주 일요일 자정에 실행
0 0 * * 0 /scripts/weekly-cleanup.sh

3. 정기적인 간격으로 실행

# 10분마다 실행
*/10 * * * * /scripts/check-service.sh

 

주의 사항

 

  1. 절대 경로 사용하기
    • 명령어와 스크립트는 항상 절대 경로를 사용해야합니다.
    • 상대 경로를 사용하면 예상치 못한 문제가 발생할 수 있습니다.
  2. 권한 확인하기
    • 실행할 스크립트의 실행 권한을 확인해야 합니다.
    • 필요한 디렉토리와 파일에 대한 접근 권한 또한 확인해야합니다.

 

결론

crontab시스템 관리자에게 없어서는 안 될 중요한 도구입니다.

 

반복적인 작업을 자동화함으로써 시간을 절약하고 실수를 줄일 수 있습니다. 하지만 강력한 만큼 신중하게 사용해야 합니다. 잘못 설정된 cron 작업은 시스템에 부담을 주거나 예상치 못한 문제를 일으킬 수 있기 때문입니다.