Crontab

2024. 7. 29. 02:35Linux*security

반응형

Crontab 은 Linux와 Unix 계열 운영 체제에서 일정한 시간 간격으로 작업을 자동화하여 시스템 레벨 작업(cron jobs)을 예약할 수 있다.

 

 

Crontab 기본 형식

* * * * * command_to_run



각 *는 시간의 특정 필드를 나타내며, 왼쪽에서 오른쪽으로 

1. 분 (0 - 59)

2. 시 (0 - 23)
3. 일 (1 - 31)
4. 월 (1 - 12)
5. 요일 (0 - 7) (0 또는 7은 일요일)


- 특정 숫자 (예: 5)
- 범위 (예: 1-5)
- 쉼표로 구분된 목록 (예: 1,3,5)
- 와일드카드 * (모든 값)
- 슬래시로 구분된 간격 (예: */5는 5분마다)

 

 

 

새벽 3시 0분

0 3 * * */scripts/go.sh

 

 

두 개의 시간 지정  3시 30분과 15시 30분

30 3,15 * * */scripts/go.sh

 

 

 

 

 Crontab 사용

1. Crontab 파일 편집
 

   crontab -e

 

 



2. 현재 사용자의 Crontab 목록 보기

   crontab -l

 

 

 



3. 현재 사용자의 Crontab 파일 삭제
  
 

 crontab -r

  

 

 

 

ex

1. 매 시간 0분마다 스크립트 실행
 

   0 * * * * /path/to/script.sh

  

 


2. 매일 오전 3시 15분에 백업 스크립트 실행

 15 3 * * * /path/to/backup.sh



3. 매주 월요일 오전 7시 30분에 로그 정리 스크립트 실행

   30 7 * * 1 /path/to/cleanup.sh


   

4. 매 10분마다 스크립트 실행 

*/10 * * * * /path/to/script.sh

 

 



5. 매달 1일과 15일 오후 12시 45분에 스크립트 실행

   45 12 1,15 * * /path/to/script.sh


   

 

 

Crontab의 MAILTO 변수를 사용하여 특정 이메일 주소로 작업 결과를 전송



MAILTO 변수 설정하기

   MAILTO 변수를 설정하여 이메일을 받을 주소를 지정한다. 예를 들어, user@example.com으로 모든 Crontab 작업의 출력을 받으려면:

   crontab

  MAILTO="user@example.com"


   

   특정 작업의 출력만 이메일로 받고 싶다면, 

# 첫 번째 작업의 출력은 user1@example.com으로 전송
   MAILTO="user1@example.com"
   0 * * * * /path/to/script1.sh

   # 두 번째 작업의 출력은 전송되지 않음
   MAILTO=""
   30 * * * * /path/to/script2.sh

   # 세 번째 작업의 출력은 user2@example.com으로 전송
   MAILTO="user2@example.com"
   45 * * * * /path/to/script3.sh

 

 

 

반응형

'Linux*security' 카테고리의 다른 글

tree 디렉토리 구조 출력  (0) 2024.08.14
SSH 연결 | NAT | Bridge  (0) 2024.08.14
find 파일 사이즈로 찾기  (0) 2024.07.25
리눅스 시스템의 주요 디렉터리  (1) 2024.07.24
런레벨(Run Level)  (2) 2024.07.24