Linux 아래 crontab 를 사용 하여 정시 작업 을 만 듭 니 다.

Linux crontab 는 정기 적 으로 프로그램 을 실행 하 는 명령 입 니 다. 이것 은 자주 사용 되 는 것 입 니 다. 우 리 는 정기 적 으로 사이트 데이터 베 이 스 를 백업 해 야 합 니 다.
운영 체제 가 설치 되면 기본적으로 이 작업 스케줄 링 명령 을 시작 합 니 다.
crond 명령 은 매 분 마다 정기 적 으로 실행 할 작업 이 있 는 지 확인 하고 실행 할 작업 이 있 으 면 자동 으로 이 작업 을 수행 합 니 다.
    windows 에 계획 적 인 임무 가 있 는 것 처럼 centos 7 에 도 자 연 스 럽 게 계획 적 인 임무 가 있 고 설정 이 더욱 유연 하 며 사용 하기 좋다.또한 centos 7 에 서 는 crontab 를 이용 하여 계획 임 무 를 수행 할 수 있 고 crond 와 의 시스템 서비스 에 의존 할 수 있 습 니 다. 이 서 비 스 는 시스템 자체 가 가지 고 있 으 며 상 태 를 직접 보고 시작, 정지 할 수 있 습 니 다. 
복무
    cron 의 상 태 를 보고 부팅 으로 설정 합 니 다.
systemctl status crond (    )
systemctl enable crond (      )
systemctl start crond (  crond  )

메모: 새로 만 든 cron 작업 은 바로 실행 되 지 않 습 니 다. 적어도 2 분 이 지나 야 합 니 다. 물론 cron 을 다시 시작 해서 바로 실행 할 수 있 습 니 다.
한편, Liux 작업 스케줄 링 작업 은 주로 다음 과 같은 두 가지 로 나 뉜 다.
  • 1. 시스템 이 수행 하 는 작업: 시스템 주기 적 으로 실행 해 야 할 작업, 예 를 들 어 시스템 데이터 백업, 캐 시 정리
  • 2. 개인 이 수행 하 는 업무: 특정한 사용자 가 정기 적 으로 해 야 할 일, 예 를 들 어 10 분 마다 메 일 서버 에 새로운 편지 가 있 는 지 확인 하고 이런 작업 은 모든 사용자 가 스스로 설정 할 수 있다
  • .
    문법
    crontab [ -u user ] file

    혹시
    crontab [ -u user ] { -l | -r | -e }
    

    crontab 는 사용자 가 고정 시간 이나 고정 간격 으로 프로그램 을 실행 하도록 하 는 데 사용 된다. 다시 말 하면 사용자 와 유사 한 시간 표 이다.
    - u user 는 지정 한 user 의 시간 표를 설정 하 는 것 을 말 합 니 다. 이 전 제 는 권한 (예 를 들 어 루트) 이 있어 야 다른 사람의 시간 표를 지정 할 수 있 습 니 다.- u user 를 사용 하지 않 으 면 자신의 시간 표를 설정 하 는 것 을 의미 합 니 다.
    매개 변수 설명:
  • - e: 텍스트 편집 기 를 실행 하여 시간 표를 설정 합 니 다. 내 정 된 텍스트 편집 기 는 VI 입 니 다. 다른 텍스트 편집 기 를 사용 하려 면 먼저 VISUAL 환경 변 수 를 설정 하여 그 텍스트 편집 기 를 사용 하 십시오 (예 를 들 어 setenv VISUAL joe)
  • - r: 현재 시간표 삭제
  • - l: 현재 시간 표를 표시 합 니 다
  • 시간 형식 은 다음 과 같 습 니 다.
    f1 f2 f3 f4 f5 program
  • 그 중 f1 은 분, f2 는 시간, f3 는 한 달 중 몇 일, f4 는 월, f5 는 일주일 중 며칠 을 나타 낸다.프로그램 이 실행 할 프로그램 을 표시 합 니 다.
  • f1 이 * 일 때 매 분 마다 프로그램 을 실행 해 야 한 다 는 뜻 이 고 f2 가 * 일 때 매 시간 프로그램 을 실행 해 야 한 다 는 뜻 이 며 나머지 유추
  • f1 이 a - b 일 때 a 분 에서 b 분 까지 이 시간 에 집행 하 겠 다 고 했 고 f2 가 a - b 일 때 a 시간 에서 b 시간 까지 모두 집행 하 겠 다 고 했 으 며 나머지 유추
  • f1 이 */n 일 때 n 분 간격 으로 한 번 실행 하고 f2 는 */n 은 n 시간 간격 으로 한 번 실행 하 는 것 을 나타 내 며 나머지 유추
  • f1 이 a, b, c 일 때.
    *    *    *    *    *
    -    -    -    -    -
    |    |    |    |    |
    |    |    |    |    +-----        (0 - 7) (     0)
    |    |    |    +----------    (1 - 12) 
    |    |    +---------------          (1 - 31)
    |    +--------------------    (0 - 23)
    +-------------------------    (0 - 59)

    사용자 도 모든 설정 을 파일 에 저장 하고 crontab file 방식 으로 실행 시간 을 설정 할 수 있 습 니 다.
    실례
    매달 매일 시간 당 0 분 에 한 번 씩/bin/ls 를 실행 합 니 다.
    0 * * * * /bin/ls

    12 월 에는 매일 아침 6 시 부터 12 시 까지 3 시간 0 분 간격 으로/usr/bin/backup 을 실행 합 니 다.
    0 6-12/3 * 12 * /usr/bin/backup
    
              5:00       [email protected]
    0 17 * * 1-5 mail -s "hi" [email protected] < /tmp/maildata

    매월 매일 자정 0 시 20 분, 2 시 20 분, 4 시 20 분.
    20 0-23/2 * * * echo "haha"
    
    0 */2 * * * /sbin/service httpd restart              apache 
    
    50 7 * * * /sbin/service sshd start       7:50  ssh   
    
    50 22 * * * /sbin/service sshd stop       22:50  ssh   
    
    0 0 1,15 * * fsck /home    1  15   /home    
    
    1 * * * * /home/bruce/backup            /home/bruce/backup     
    
    00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \;        3  ,   /home ,      *.xxx   ,   4     。
    
    30 6 */10 * * ls        1、11、21、31   6:30    ls  

    메모: 프로그램 이 지정 한 시간 에 실 행 된 후에 시스템 은 현재 사용자 에 게 메 일 을 보 냅 니 다. 이 프로그램 이 실 행 된 내용 을 표시 합 니 다. 이러한 메 일 을 받 고 싶 지 않다 면 줄 마다 한 칸 씩 비 어 있 는 후에 추가 하 십시오. >/dev/null 2>&1 되다
    20 03 * * * . /etc/profile;/bin/sh /var/www/runoob/test.sh > /dev/null 2>&1 

    질문
    만약 우리 가 crontab 를 사용 하여 스 크 립 트 를 정시 에 실행 할 수 없다 면, 실행 할 수 없습니다. 그러나 명령 (예:./test. sh) 을 통 해 직접 실행 할 수 있다 면, 이것 은 환경 변 수 를 읽 을 수 없 기 때 문 입 니 다.
    해결 방법:
  • 1. 모든 명령 은 절대 경로 형식 으로 작성 해 야 합 니 다. 예 를 들 어: /usr/local/bin/docker.
  • 2. 셸 스 크 립 트 시작 에 다음 코드 를 사용 합 니 다.
    #!/bin/sh
    
    . /etc/profile
    . ~/.bash_profile
    3. /etc/crontab 환경 변 수 를 추가 하고 명령 을 실행 하기 전에 명령 을 추가 합 니 다. ./etc/profile;/bin/sh 는 여러 번 효력 을 발생 시 켰 습 니 다. 예 를 들 어
    20 03 * * * . /etc/profile;/bin/sh /var/www/runoob/test.sh
     
  • 좋은 웹페이지 즐겨찾기