메뉴 건너뛰기

  • 클론탭(crontab) 기본 개념
  • 에프닷
    조회 수: 2, 2019.10.18 20:16:49
  •  
    프로그래밍/Linux

    [Linux] 클론탭(crontab) 기본 개념

    우수고객
    댓글수0

     

    Crontab 이란

     

     crontab은 스케줄링을 관리하는 프로그램으로 시스템 관리자에게 중요한 유틸 중 하나이다. 특정 시간대에 사용자가 작성한 스트립트나 명령을 실행 할 수 있다. 이는 rsync 같은 툴을 같이 사용하여 굉장히 편리한 백업 시스템을 만들 수도 있고 데이터 베이스관리나 기타 반복적인 업무를 간편하게 등록하여 사용 할 수 있다.

     
     
     
    MIN HOUR DOM MON DOW CMD
    
     
     
     
     
     
     
     
     

     

    필드 명세 허용 값
    MIN 0~59
    HOUR 시간 0~23
    DOM 날짜 1-31
    MON 1-12
    DOW 0-6
    CMD 명령어 실행 가능 한 모든 명령어

     

     

    1. 다음 시간 6월 10일 오전 8시 30분 을 cron 명령어에 맞게 작성해보자.

     
     
     
    30 08 10 06 * /home/script/backup
    
    •  
      30: 30분
    •  
      08: 오전 8시 <24시제>
    •  
      10: 10일
    •  
      06: 6월
    •  
      *: 매주
     

    2. 매일 하루 두 번 증분 백업을 하자.

     
     
     
    00 11,16 * * * /home/script/incremental-backup
    
    •  
      00: 0분 (정각)
    •  
      11,16 - 오전 11시 / 오후 4시
    •  
      *: 매일
    •  
      *: 매달
    •  
      *: 매주
     

    3. 특정 시간대에 작업하기

     
     
     
    00 09-18 ** 1-5 /home/check-db-status
    
    •  
      00: 0분 (정각)
    •  
      09-18: 오전 9, 10, 11, 12시 / 오후 1, 2, 3, 4, 5, 6시 마다 작업
    •  
      *: 매일
    •  
      *: 매달
    •  
      1-5: 월, 화, 수, 목, 금 (주중)
     

    4. crontab 작업 목록 보기 (명령어)

     
     
     
     
     
     
     
     
     
     
     
     
    $ crontab -l
    @hourly /home/script/hourly-script
    00 09-18 ** 1-5 /home/check-db-status
    
    $ crontab -u foo -l
    no crontab for foo
    
    $ su
    # crontab -l
    no crontab for root
    
     

     

     

    5. crontab 목록 수정

     

    목록 수정을 vi/vim으로 편집하려면 변수를 선언해줘야 한다. export VISUAL=vim

     
     
     
     
    $ crontab -e
    $ crontab -u foo -e
    
     

    6. 매분마다 작업하기

     
     
     
    * * * * * CMD
    
     

    7. 10분 마다 작업하기

     
     
     
     
    */10 * * * * /home/script/check-disk-space
    0-10/2 * * * * /home/script/check-db-updates-5times
    
    •  
      */10의 뜻은 10분 마다
    •  
      0-10/2의 뜻은 처음 10분 동안 2분 간격으로
     

    8. 키워드 사용

     

    Keyword

     
     
     
     
     
     
     

     

    키워드 대치 문법
    @yearly 0 0 1 1 *
    @daily 0 0 * * *
    @hourly 0 * * * *
    @weekly 0 0 * * 0
    @reboot 시스템 시작 시

     

     

    다음은 키워드를 사용해 매일 반복하는 작업 스케줄링 crontab이다.

     
     
     
    @daily /home/script/make-log
    
     

    9. 메일 사용

     

    crontab 수정시 MAILTO를 선언하면 실행 내용을 메일로 받을 수 있다.

     
     
     
    MAILTO="xajax@naver.com"
    
     

    10. 파일을 통한 crontab 설정

     

    파일로 저장해 놓고 다른 시스템에 재 사용 하고 싶다면 다음과 같이 하면 된다.

     
     
     
     
    $ crontab cron-file.txt
    $ crontab -l

     

     

    [출처] 효율적인 crontab 사용법|작성자 오라클

     
    •  

댓글 1 ...

  • 에프닷

    2019.12.20 15:00

    [OS] 리눅스 간 이미지 백업 | RPi.게시판
    전체공개 2016.03.23. 19:01
     
     
     
    네트워크로 연결된 리눅스 컴퓨터 간에 이미지를 만들어 다른 컴퓨터에 백업 하는 방법입니다. crontab으로 정기적인 백업을 할 수 있으며, 네트워크에 저장하기 때문에 추가 저장장치를 달 필요가 없고 백업을 하기위해 파이를 끄지 않아도 돼 편리합니다.

    이미지 백업, dd
    $sudo dd if=대상 of=백업위치

    if은 인풋파일, /dev의 장치파일이나 백업하고 싶은 파일을 씁니다.
    라즈베리파이의 SD카드는 /dev/mmcblk0 입니다.
    of는 아웃풋파일, 백업된 파일을 저장할 위치입니다.
    블록사이즈나 블록갯수를 지정하고 싶다면 $man dd를 참고하세요

    이미지 압축, gzip, bzip
    $gzip 압축할파일
    $gzip -d 압축풀파일


    -9, --best 옵션은 최대한 압축, -1 --fast 옵션은 빠르게 압축을 합니다. 기본은 -6입니다.

    이미지 전송, 넷캣
    넷캣 데이터 전송, 터널링 캣
    쓸만한 넷캣 사용법

    서버$ nc -l 포트번호
    클라이언트$ nc 서버이름,IP 포트번호

    서버에서 포트를 열어놓으면 클라이언트의 요청이 있을 때까지 대기합니다.

    dd, gzip, 넷캣을 합칩니다.
    서버$ sudo nohup dd if=/dev/mmcblk0 | gzip -9 | nc -l 5555 &
    클라이언트$ nc 서버 5555 > 저장할파일 &


    nohup과 마지막의 &은 터미널을 종료해도 백업이 종료되지 않도록 합니다.
    dd의 of 옵션을 무시하면 표준출력으로 이미지가 나옵니다. gzip이 표준출력을 읽어 압축합니다.
    서버의 명령을 먼저 실행합니다. 클라이언트의 nc 요청이 있을 때까지 서버의 dd와 gzip은 대기합니다.

    만약 클라이언트의 cpu가 더 빠르다면 gzip을 클라이언트에서 처리합니다.
    서버$ sudo nohup dd if=/dev/mmcblk0 | nc -l 5555 &
    클라이언트$ nc 서버 5555 | gzip -9 > 저장할파일 &


    같은 방식으로 tar 파일도 처리 가능합니다.
    서버$ tar -czf - /압축대상 | nc -l 5555
    클라이언트$ nc 서버 5555 > 
    저장할파일 &

    tar 옵션의 두번째 대쉬는 파일이 아닌 표준출력에 데이터를 쓴다는 뜻입니다. nc가 표준출력을 읽습니다.

    crontab에 등록하면 자동화된 백업을 만들 수 있습니다.
    백업이 되었는지 아니면 문제가 생겼는지 알림을 보내고 싶다면 프로그램 종료시 메일로 결과 보내기를 참고하세요.
위지윅 사용
번호
제목
닉네임
16 에프닷 0 2024.05.23
15 에프닷 12 2024.04.22
14 에프닷 2 2024.01.01
13 에프닷 2 2020.01.15
12 에프닷 3 2019.10.18
에프닷 2 2019.10.18
10 에프닷 0 2019.10.16
9 에프닷 0 2019.10.04
8 에프닷 0 2019.09.24
7 에프닷 0 2019.09.23
6 에프닷 0 2019.09.18
5 에프닷 0 2019.09.12
4 에프닷 2 2019.09.09
3 에프닷 109 2019.09.07
2 에프닷 1 2019.09.03
1 에프닷 0 2019.04.24
태그