새소식

자격증/리눅스마스터

[LINUX] 리눅스마스터 2급 기출 :: cron, crontab

  • -

crontab

  • 스케줄러 기능을 한다고 보면된다
  • 특정 시간에 특정 작업을 할 필요가 있을때 유용하게 사용할 수 있다.
  • 한 줄에 하나의 명령만 사용한다
  • 주석은 '#'으로 달 수 있다.

기본 옵션

개인적으로 e랑 l만 알아도 실 사용때 충분했다
옵션이 더 있는지 모르겠다 (더 있겠지..?)

1. crontab -e

처음 실행하면 사용할 에디터를 고르라고 나옵니다
저는 주로 사용하는 vim 선택 (vim.basic)
nano가 쉽다고 하는데 linux 처음 배울때 vim으로 배워서 vim이 익숙하다

 

2. crontab -l

cat 명령어로 파일을 읽어들인 것 처럼 표준 출력으로 crontab 내용이 나옵니다

아직 설정한게 없다면 위와 같이 나옴

기본 주석의 만 아래에 작성하고 저장 (주석 삭제 물론 가능) 하고 crontab -l을 하면 내용이 나옴

 

3. crontab -r

crontab의 기본 설정 및 확인, 삭제

 

crontab 생성 예시

주기를 아는게 제일 중요하다.
주기만 알면 여러가지로 응용이 가능하다
5개가 아닌 6개로 쓰는 경우도 찾아보면 보이던데 그런 경우는 초 단위까지 포함된다

1. 주기

# 분(0-59), 시간(0-23), 일(1-31), 월(1-12) 요일(0-7)
# 요일은 일(0) 월(1) 화(2) 수(3) 목(4) 금(5) 토(6) 일(7)
* * * * *

2. 매분 실행

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

3. 특정 시간 실행

# 매주 화요일 오전 8시 40분 test.sh 실행
40 8 * * 2 /home/test.sh

4. 반복실행

# 매일 매시간 0분, 20분, 40분에 test.sh 실행
0,20,40 * * * * /home.test.sh

5. 범위 실행

# 매일 2시 20분부터 45분까지 매분 test.sh 실행
20-45 2 * * * /home/test.sh

6. 간격 실행

# 매 15분 마다 test.sh 실행
*/15 * * * * /home/test.sh

7. 복잡 로직

# 5일에서 6일까지 2시, 3시, 4시에 매 10분마다 test.sh 실행
*/10 2,3,4 5-6 * * /home/test.sh

8. 크론 로깅

* * * * * /home/test.sh > /home/test.sh.log 2>&1

9. 로그 누적

* * * * * /home/test.sh >> /home/test.sh.log 2>&1

10. 로그 필요 없는 경우

* * * * * /home/test.sh > /dev/null 2>&1

11. crontab 백업

crontab -l > /home/bak/crontab_bak.txt

12. 백업 자동화

59 23 * * * crontab -l > /home/bak/crontab_bak.txt

매일 11시 59분에 백업

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.