[Linux] Crontab 명령어

1. 생성한 지 30일 이상 된 로그파일 지우기

명령어: 30 03 1 * * find /test/test -type f -mtime +30 -exec rm -f {} \;

30 03 1 * *: 아래 명령을 매년 매달 1일 새벽 3시 30분에 수행
find /test/test -type f -mtime +30: /test/test 경로의 파일 타입 중 생성된 지 30일 이상 된 파일 탐색
-exec rm -f {} \;: find의 결과에 나온 파일 타입을 삭제

  • find ... -exec ... {} : find 의 결과에 특정 명령을 수행 ( {} 에 결과값이 들어감 )
  • -type f : 디렉토리는 제외하고 파일 타입만 검색하는 옵션
  • -type d : 파일 타입을 제외하고 디렉토리를 검색하는 옵션
  • -mtime +30 : 서버 시간 기준으로부터 생성된 지 30*24 시간 이상된 파일/디렉토리 검색하는 옵션
  • -ctime : 생성된 날짜 시간 기록을 찾는 옵션
  • -atime : 읽히거나 실행됐을 때의 기록을 찾는 옵션
  • 날짜 기준 +-로 바꾸면 현재 날짜 기준 수정된 지 X일 이내의 파일을 검색한다.

2. Crontab 명령어 종류

1) 크론탭 작업 내용 확인
crontab -l
2) 크론탭 편집
crontab -e
3) 크론탭 주기
분/시/일/월/요일 {실행 명령}

  • 분 : 0-59
  • 시 : 0-23
  • 일 : 0-31
  • 월 : 0-12
  • 요일 : 0-6 (일-토 : 0과 7은 일요일이며 1부터 월요일)

4) 크론탭 시작
service cron start
5) 크론탭 중지
service cron stop
6) 작동확인
service cron status
7) 주의사항
설정 변경 후 항상 cron 서비스 재시작
service cron restart 또는 service crond restart

3. 사용방법 및 예제

크론탭 편집crontab -e > 파일 안 작성 * * * * * {실행 명령}

# 매분 test.sh 실행
* * * * * /home/script/test.sh

# 특정 시간 실행 (매주 금요일 오전 5시 45분에 test.sh 를 실행)
45 5 * * 5 /home/script/test.sh

# 반복 실행 (매일 매시간 0분, 20분, 40분에 test.sh 를 실행)
0,20,40 * * * * /home/script/test.sh

# 범위 실행 (매일 1시 0분부터 30분까지 매분 tesh.sh 를 실행)
0-30 1 * * * /home/script/test.sh

# 간격 실행 (매 10분마다 test.sh 를 실행)
*/10 * * * * /home/script/test.sh

# 조금 복잡하게 실행 (5일에서 6일까지 2시,3시,4시에 매 10분마다 test.sh 를 실행)
*/10 2,3,4 5-6 * * /home/script/test.sh

4. 기타

  • 한 줄에 하나의 명령만 작성
# 잘못된 예
* * * 5 5
/home/script/test.sh

# 잘된 예
* * * 5 5 /home/script/test.sh

5. 참고 링크

좋은 웹페이지 즐겨찾기