Linux crontab 자동 정시 실행 명령 학습

Crontab 프로필
WIKI:crontab 명령 은 유 닉 스 와 유 닉 스 의 운영 체제 에서 흔히 볼 수 있 으 며 주기 적 으로 실 행 된 명령 을 설정 하 는 데 사용 된다.이 명령 은 표준 입력 장치 에서 명령 을 읽 고 나중에 읽 고 실행 할 수 있 도록 'crontab' 파일 에 저장 합 니 다.이 단 어 는 그리스 어 chronos (χρόνος),시간
일반적으로 crontab 저 장 된 명령 은 데 몬 에 의 해 활성화 되 며, crond 항상 배경 에서 실 행 됩 니 다. 매 분 마다 예 정 된 작업 이 실행 되 어야 하 는 지 확인 합 니 다. 이러한 작업 은 일반적으로 cron jobs 라 고 합 니 다.
crontab 파일 은 cron 데 몬 을 보 내 는 일련의 작업 과 명령 을 포함 하고 있 습 니 다. 모든 사용 자 는 자신의 crontab 파일 을 가 질 수 있 습 니 다. 또한 운영 체 제 는 전체 시스템 에 대한 crontab 파일 을 저장 합 니 다. 이 파일 은 보통 / etc 또는 / etc 아래 의 하위 디 렉 터 리 에 저장 되 며, 이 파일 은 시스템 관리자 만 수정 할 수 있 습 니 다.
crontab 파일 의 줄 마다 특정한 형식 을 지 키 고 빈 칸 이나 tab 에서 여러 영역 으로 나 뉘 며 각 영역 마다 단일 하거나 여러 개의 수 치 를 배치 할 수 있 습 니 다.
명령 행 구조
crontab [-u user] [file]
현재 사용자 의 crontab 파일 대신 지정 한 file 을 사용 합 니 다. file 이 지정 되 지 않 으 면 표준 입력 (키보드) 에 입력 한 명령 을 받 고 crontab 디 렉 터 리 에 추가 합 니 다.
crontab [-u user] [-i] [-l | -e | -r]
- i 사용자 crontab 파일 을 삭제 할 때 확인 정 보 를 알려 줍 니 다 (예 / 아니오)
- l 사용자 의 crontab 파일 목록
- e 사용자 의 crontab 파일 편집
- r 사용자 의 crontab 파일 삭제
예:
sudo crontab -u buzhidao -l
사용자 buzhidao 의 crontab 파일 인쇄
sudo crontab -u buzhidao -e
사용자 buzhidao 의 crontab 파일 을 열 고 편집 합 니 다.
sudo crontab -u buzhidao -i -r
사용자 의 crontab 파일 을 삭제 하 는 지 확인 하 시 겠 습 니까?
crontab 파일 의 내용 명령 형식
#       
#  ——   (0 - 59)
# |  ——   (0 - 23)
# | |  ——    (1 - 31)
# | | |  ——    (1 - 12)
# | | | |  ——   (0 - 7)(   =0 7)
# | | | | |
# * * * * *       (cmd)

주의: 요일 도 메 인 에 대해 0 과 7 은 일요일 을 표시 합 니 다. 만약 에 일과 요일 을 동시에 지정 하면 그 중의 모든 조건 이 만족 하면 명령 을 집행 하 는 것 이 실 행 됩 니 다.
조작 부호
crontab 파일 의 내용 에 대해 서 는 지역 마다 여러 개의 수 치 를 동시에 지원 합 니 다.
1. 쉼표 로 ',' 여러 개의 값 을 나눈다. 예 를 들 어 3 월, 5 월, 8 월, 9 월 은 3, 5, 8, 9 로 나 눌 수 있다.
2. 연결 문자 '-' 로 지정 한 값 의 범 위 를 말한다. 예 를 들 어 1 - 6 은 1, 2, 3, 4, 5, 6 을 나 타 낼 수 있다.
3. 모든 값 을 * 로 표시 합 니 다. 예 를 들 어 시간 영역 에서 의 * 는 매 시간 을 대표 합 니 다.
예:
0 1 * * 0-6 /usr/local/nginx/sbin/nginx -s reload
매일 새벽 1 시 에 nginx 서 비 스 를 다시 시작 합 니 다.
0 */2 * * 0 /usr/local/nginx/sbin/nginx -s reload
일요일 에 2 시간 간격 으로 nginx 서 비 스 를 다시 시작 합 니 다.
0 1 * * 0,5 /usr/local/nginx/sbin/nginx -s reload
매주 금요일, 일요일 새벽 1 시 에 nginx 서 비 스 를 재 개 합 니 다.
0,30 1-3 1 * * /usr/local/nginx/sbin/nginx -s reload
매달 1 일 새벽 1 시 부터 3 시 까지 30 분 간격 으로 nginx 를 다시 시작 합 니 다.
0 23 8 5 * /usr/local/nginx/sbin/nginx -s reload
5 월 8 일 저녁 23 시 에 nginx 서 비 스 를 재 개 합 니 다.
구체 적 사용 과정
다음은 10 분 간격 으로 nginx 서 비 스 를 자동 으로 다시 시작 하 는 것 을 테스트 예 로 들 겠 습 니 다.
시스템: ubuntu 11.10
#  crontab    
$service cron status
#  root   crontab    
$sudo crontab -u root -l
#     root   crontab  
$sudo crontab -u root -e
#   vi  ,       */10 * * * * /usr/local/nginx/sbin/nginx -s reload      
$sudo crontab -u root -l
새로 가입 한 명령 이 불 러 왔 음 을 볼 수 있 습 니 다. crontab 프로 세 스 는 자동 으로 crontab 파일 을 다시 불 러 옵 니 다.
그리고
#  nginx      
$ps -aux | grep nginx
출력 된 nginx 의 시작 시간 을 통 해 우리 가 설정 한 crontab 명령 이 작 동 하 는 것 을 볼 수 있 습 니 다.

좋은 웹페이지 즐겨찾기