/ 기타 리눅스에서 /의 crontab 파일의 crontab -e 명령과 차이 crontab 명령 명령 설명 수 (rpm)

등 / crontab을 파일의 crontab -e 명령의 차이

1, 다른 형식

이전

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed 

후자의

#50 1 * * *  command

2 범위

수정이의 / etc / 루트 사용자 만 crontab을이 방법을 사용할 수 있습니다,이 방법은 더 편리하고 다른 사용자가 설정을 일정에 직접 지시 할뿐만 아니라 모든 사용자가 보통 사용할 수있는 실행 등 껍질,의 crontab -e를 지정 사용자는 자신을 위해 예약 된 작업을 설정할 수 있습니다. 자동은 / var / spool / cron / usename 쓰기

3, 구별 서비스 관리

/etc/init.d/crond restart
service crond restart

구문을 확인합니다 (1) crontab에서이 VI는하지 않습니다

2 있으며 crond OS 일부는 그래서 서비스를 다시 시작하여 구성을 다시 읽을 수 없습니다

의 crontab -e는 작업을 사용자의 사이클을 예정이다,의 / etc / crontab을은주기적인 시스템의 작업이다

crontab을 -e 및 / etc / crontab을 구문 수정 동일하지 않다 지정된 다중 사용자 인

어떤 물질의 crontab -e 없습니다 또는 / etc /를 있으며 crond 서비스를 다시 시작할 필요가 없습니다 crontab을

01 22 * * * /sbin/shutdown -h now

실행의 결과는, 그들은 일반적으로 지금 init 0을 할 -h 리눅스 종료를 사용, 동일 UNIX에서 가장 자주 사용되는 init 0을, 정체성의 셧다운 필요 루트 실행 할 수 있습니다

작동 방법을 선택할 수 있습니다 :

방법 1 :

정체성의 루트로 변경

스와 - 루트

crontab을 -e (a 증가시)

01 22 * * * /sbin/shutdown -h now   (或01 22 * * * /sbin/init 0)

즉 저장하고 종료 할 수 있습니다

방법 2 :

VI은 / etc / crontab을 내부 삽입

01 22 * * * root   /sbin/shutdown -h now
或 
01 22 * * * root   /sbin/init 0 

이 시스템의 일상적인 작업 인 경우 -e는 사용자의 크론 위해 설계 crontab을 어떻게 할까? 당신은 여전히 ​​루틴을 관리 할 수 ​​-e 명령을 crontab에해야합니까? 물론하지 않는, 만에 편집을 / etc / crontab을 파일에 필요합니다. 참고 것을 : crontab을 -e 사실의 역할에 / usr / 빈은 /이 파일을 실행하지만은 / etc / crontab을 일반 텍스트 파일입니다 crontab을 루트 ID에이 파일을 편집 할 수 있습니다.

크론가 데이터의 내용을 읽고, 그래서 기본적으로, 최소 검출 시간 크론 서비스 유닛은 분을 / etc / crontab을하고는 / var / 스풀 / cron을 매 분, 너무 오래 당신이 / etc / crontab을 파일 편집을 완료하고 저장 한로 그 후, 설정이되면 자동으로 crontab을 실행됩니다.

참고 : 리눅스의 crontab의 경우 자동으로 crontab을 메모리에 읽기 때문에,하지만, 어떤 이유로 또는 다른 유닉스 시스템, 우리가 등 / 분마다 crontab에 / 일상적인 문제를 한 번 다시 읽어 도움이 당신을 이렇게됩니다 / crontab을 한 후 당신은 / etc에 변경 사항이 즉시, 다음 있으며 crond 서비스를 다시 시작 실행하지 않을 수 있습니다.

/etc/rc.d/init.d/crond   restart

4, 설명 및 실시 예 :

의 / etc / crontab을 파일의 내용을 살펴 보자 :

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

#   run-parts
01 * * * * root   nice   -n   19     run-parts   /etc/cron.hourly
02 4 * * * root   nice   -n   19    run-parts   /etc/cron.daily
22 4 * * * root    nice   -n   19   run-parts   /etc/cron.weekly
42 4 1 * * root   nice   -n    19  run-parts   /etc/cron.monthly

설정 명령 섹션 매개 변수 달과 주변 공유 사용자 매개 변수 설정

이 파일의 내용에서 알 수있는 바와 같이, 콘텐츠의 crontab -e 입력 파일은 거의 동일하지만, 아래의 여러 장소에서 다르다 :

MAILTO = 루트 :은 / etc / crontab을 파일 루틴 명령 오류가 발생이 필드 지정이 오류 메시지가 화면에 나에 대한 정보를 전달하는 표시? 루트가 클라이언트에서 수신 할 수 없기 때문에, 따라서 당신은 자신의 일반 사용자 계정으로 이메일을 사용할 수 있습니다. ,

/etc/cron.hourly 19 실행 부품 -n 01 * * * * 루트 좋은 : 실행 부분이 줄에 명령 # 후, 우리는 다섯 개 숫자는 루트 뒤에 찾아이 수준의 대표를 수행 할 수 있습니다 루트. 물론, 당신은 또한 다른 루트 ID를 변경하고 대표가 /etc/cron.hourly 다음에 실행 부분은 모든 실행 파일 디렉토리 (/etc/cron.hourly) 내에서, 각 시간 01분의 시스템은 루트로 실행 할 수있는 모든 파일의 다음 /etc/cron.hourly 디렉토리를 실행합니다. 이 시스템은 이미 암묵적으로 네 개의 디렉토리, 당신이 매일 직접을 /etc/cron.daily 기록 된 명령을 수행해야합니다, 프로그램은 crontab을 -e, 매우 편리를 사용할 필요가 없습니다.

참고 : 기본적으로,은 / etc / crontab을 지원하는 입력 모드 명령어 두 가지, 하나는 지시합니다 양식에 입력 바로, 디렉토리의 한 형태가 입력됩니다.

명령 양식

01   * * * * test   mail   -s   test   test   <   /home/test/test/test.txt

사용자는 테스트입니다, 시간당 명령 메일을 실행 ......

카탈로그 형태

*/5   *  *  *  * root run-parts   /root/runcron

A / 루트 / runcron 디렉토리를 구축, 실행 파일 디렉토리에 기록됩니다 5 분마다 한 번, 당신이 시스템은 5 분마다 한 번 디렉토리에있는 모든 실행 파일을 수행 할 수 있습니다 수행됩니다.

당신이 그것의 실행 - 부품의 역할을 알 수 있도록! 또한, 상기의 crontab -e 계획은 다중 사용자 레벨의 개념이 다르다. 일반적으로, 우리는 루트에 루틴 명령의 관점을 계획하고 있지만, 사용자가 프로그램의 구성원 인 표준화 수준을 사용할 수 있도록 루트는 항상의 경우 필요하지 않습니다.

각 프로세스가 동시에 시작하는 경우이 시간이 별도로 설정해야하므로, 다음 일정 시간에서, 시스템은 매우 바쁜 될 것입니다. 우리는이 작업을 수행 할 수 있습니다

1,6,11,16,21,26,31,36,41,46,51,56 * * * * root …………   // 省略号代表命令
2,7,12,17,22,27,32,37,42,47,52,57 * * * * root ………… 
3,8,13,18,23,28,33,38,43,48,53,58 * * * * root ………… 
4,9,14,19,24,29,34,39,44,49,54,59 * * * * root ………… 

주 사용하는 ","공백없이 분리 될 때. 이러한 방법으로, 당신은 5 분마다 서로 다른 시간을 위해 예약 된 흐름 작업 할 수 있습니다.

유닉스와 리눅스의 crontab이 실행되는주기적인 명령 설정되어, 인터넷은 많은 작업이 당신의 crontab을 사용하지 않는 경우, 다음 작업이 프로그램의 비교를 요구하는 상주 프로그램입니다,은 crontab 실행주기 설정됩니다 매우 일반적인 기술이다 높은, 스케줄러가 더 신뢰할 수있는, 실제 작업을 요청하는 것입니다, 당신의 프로그램이 다운 타임없이 24 시간 연중 무휴 시간입니다 요청, 프로그램의 90 %는 너무 많은 시간과 위의 두 가지 문제를 해결하기 위해 노력을 지출 할 필요가 없으며, 단지 라인에 파견 있으며 crond 안정성, 견고성에 있으며 crond하여 비즈니스 로직이 산업용 등급의 ​​프로그램을 작성해야합니다, 그것은 의심의 여지해야한다.

5, crontab을 항목 쉽게

내가 작업을 설정하려는 가정, 데이터 동기화를 수행하는 모든 분,이 경로 동기화 스크립트 내가 이러한 구성에 다음 /home/blue/do/rsyncfile.sh 수있다, 파란색 사용자의 사용, 입력 단자

crontab -e

이 때, 화면이 작업을 편집 할 수있는 VI 편집기를 입력합니다! 각각의 작품은 그의 당 있음을 참고.

#分 时 日  月 周      |<==============任务的完整命令行
 *  *  *  *  *       /home/blue/do/rsyncfile.sh

기본적으로 /etc/cron.deny 그들에 포함되지 않은 사용자는, 그는 직접 루틴 명령 편집에 "의 crontab -e"를 발행 할 수 있습니다! 에 저장된 VI를 떠난 후 "WQ"다음 편집 완료 후 편집에 작품의 라인 입력을 VI 편집 화면으로 들어갑니다, 위에서 언급 한 것처럼 전체 과정!

우리는 데이터 동기화 스크립트를 실행하는 데 5 분마다 변경해야하는 경우 \ 다음 편집을 입력 동일한의 crontab -e를 사용합니다 :

*/5 * * * *  /home/blue/do/rsyncfile.sh

서버가 문제가 될 경우, 언젠가는 거기에 우리가 데이터를 /home/blue/do/rsyncfile_day.sh입니다까지 스크립트를 가정하고 데이터를 입력해야하므로, 데이터의 동기 없지만, 일, 야간 피크 기간, 소수의 사용자, 낮은 피크, 우리는 데이터가 그래서 일반적으로 우리는 작업이 편집을 입력 한 후, 2시 데이터를 실행 동일한의 crontab -e를 사용하기 시작 수, 사업의 정상적인 과정에 영향을 미칠 것입니다, 특히 낮에는, 대역폭을 많이 걸릴합니다

0 2 1 4 *  /home/blue/do/rsyncfile_day.sh

이러한 방법으로, 우리는 시작 스크립트 4 월 1 일 2:00의 데이터를 보완 시작합니다.

동기화 데이터, 인터넷은 그냥 가장 간단한 비즈니스 로직, 할 수있는 스케줄링 있으며 crond 쓰기,은 crontab의 매력을 볼 수있는 평범한 작업, 높은 신뢰성을 완료한다 추가 쓰기이 스케줄링 프로그램을 자신을 원하는 경우 작업은, 그것이 신뢰할 수 있고 안정적으로 달성하는 데 걸리는 많은 노력을 모른다.

도 6의 crontab 구문

crontab [-u username] [-l|-e|-r]
选项与参数:
-u  :只有 root 才能进行这个任务,亦即帮其他使用者创建/移除 crontab 工作排程;
-e  :编辑 crontab 的工作内容
-l  :查阅 crontab 的工作内容
-r  :移除所有的 crontab 的工作内容,若仅要移除一项,请用 -e 去编辑
查询使用者目前的 crontab 内容:

crontab -l
*/5 * * * *  /home/blue/do/rsyncfile.sh
0 2 1 4 *  /home/blue/do/rsyncfile_day.sh

현재 사용자의 crontab을 비우기 :

crontab -r
crontab -l
no crontab for blue

현재 사용자의 crontab 특정 작업을 삭제하려면, 다음 편집기에의 crontab -e를 사용하고 해당 작업을 삭제합니다.

7, crontab을 제한

있는 /etc/cron.allow : 계정이 crontab을 기록하는데 이용 될 수있어서, 사용자가 crontab을 사용할 수 없습니다이 문서에있는 경우;

/etc/cron.deny :이 파일에 사용자들 사이에 기록되지 않은 경우, 당신은 crontab을 사용할 수, 기록의 crontab 계정을 사용하지 않습니다.

우선 순위에 따라서, /etc/cron.deny 우선 순위보다있는 /etc/cron.allow, 그리고 위의 판단은,이 두 문서는 그것을 제한하는 하나를 선택, 당신이 너무로 영향을 미치지 않도록, 캔을 유지하는 것이 좋습니다 자신의 상기 구성 결정 안에 일반적으로 시스템 기본은 그 사용자의 crontab 쓰기 /etc/cron.deny 그들, 계정 행을 실행할 수 있도록 싶지 않을 것이다, /etc/cron.deny을 예약되어 있습니다!

8,은 / etc / crontab을 구성 파일은 설명하기

이 시스템은, 우리가을 / etc / crontab을 파일을 편집해야합니다 일상적인 작업 인 경우의 crontab -e는 크론의 사용자를 위해 설계되었습니다.

그의 crontab의 crontab -e이 사실이 항목을 실행할 수는 / usr / 빈 / crontab을하지만은 / etc / crontab을하지만 루트로 파일을 편집해야합니다 무엇을 "일반 텍스트".

먼저 우리는 crontab 파일의 내용을 볼 필요가

cat /etc/crontab

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

이 문서 우리는 거의 정확하게 모두 바로 컨텐츠의 crontab -e 발행합니다! 여러 장소는 동일하지 않습니다 있습니다

PATH = ... :
이 입력 검색 경로 실행 기어입니다! 기본 경로 구성을 사용하는 것은 매우 충분했다!

17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly:

즉, 시간별, 일별, 주별 및 월별, 각각 네 개의 정의 사전 구성 작업 내부의 / etc / crontab을이 작업을 수행합니다! 하지만 다섯 필드 액세스 뒤에 명령하지만, 왜 "실행 명령의 문자열 뒤에 신원"입니다 새 열에서! 이것은 사용자의 crontab -e와 동일하지 않습니다. 사용자는 crontab을 자신의 정체성을 지정할 필요가 없습니다,하지만 당신이 원하는 과정은 / etc / crontab을 그것의 ID를 지정하기 때문에! 위의 표의 내용은, 시스템 기본 루틴 작업은 루트로 수행됩니다.

그래서 명령의 문자열이 뒤에 무엇인가? 당신은 "실행 부분이있는"보고 검색 할 수 있습니다, 사실, 그것은 bash는 스크립트가 그것입니다! 당신이보기에는 / usr / 빈 / 실행-부분으로 바로 이동하는 경우,이 명령의 모든 파일을 잡기 위해 실행하는 "디렉토리"다음에 할 것입니다 발견 할 것이다! 그 말 "도움에 시간 이니셔티브 당 시스템을 원하는 경우 명령, 명령 작성된 스크립트를 실행하고 /etc/cron.hourly/ 수있는 디렉토리에 파일을 배치"에 있다고!

이제 시스템이 아직 일상적인 작업 일정의 자신의 기본 무리입니다 방법을 알고? 당신이 발행 된 경우에는 "을 /etc/cron.daily 것이다"당신이 파일들을 볼 수 있습니다, 이러한 파일은 시스템에서 제공하는 스크립트이며, 스크립트의 더미는 아침에 6시 25분 매일 실행이 시작됩니다!

당신은 / etc / crontab을에서에 다음 줄을 쓸 수 있습니다, 당신은 시스템이 디렉토리에서 실행 할 수있는 모든 파일에 2 분마다 실행할 수 있습니다 그래서, 디렉토리를 만들고 싶어 가정하자 :

*/2 * * * * root run-parts /etc/cron.min

물론,이 디렉토리를 /etc/cron.min 것은 아의 존재의 필요가! 나는 무엇 "프로그램"을 실행해야하고 그것은 디렉토리를 사용할 필요가없는 경우? 무엇을 할까? 네트워크 트래픽이 감지되면 예를 들어, 우리는 분석을 감지 할 수 있도록 노력하겠습니다 5 분마다 한 번, 쓰기 :

*/5 * * * * root /bin/mrtg /etc/mrtg/mrtg.cfg

방법! 일상적인 명령을 작성하는 것은 매우 간단합니다! 당신은 시스템 관리자 및 사용자의 작업이 일상적인 시스템 유지 보수 작업을 직접 등 / 수정할 때 경우 /이 문서가 될 수 crontab에! 그리고 편리하고 쉽게 관리 할 수 ​​있습니다!

9, crontab을 원칙

사용자가 작업 일정을 만들 crontab 명령을 사용하면 작업에 기록됩니다은 / var / 스풀 / cron을 / 들어갔다,이 오의 식별과 계좌 번호입니다! 예를 들어, 파란색을 사용 crontab을 한 후, 그의 작품은 / var / spool / cron을 / 블루 바둑 내부에 기록 될 것입니다! 단,하지 실행 크론을 발생합니다 때문에 구문 오류에 입력이 될 수 있기 때문에 직접 파일을 편집 VI를 사용하지 마십시오! 또한, 모든 작업을 실행하는 크론은 / var에에 기록됩니다 / 크론 항목이있는, 그래서 당신은 리눅스가 트로이 목마를 이식 유무를 알 수없는 / 경우 로그, 또한 검색 할 수는 / var / log / 크론 항목!

가장 낮은 검출 한계에 있으며 crond 서비스는 그래서, "분"은 "크론 한 번 읽는 것을 / etc / crontab을하고는 / var / 스풀 / 크론 데이터 내용 매분마다, 내부"너무 오래 완료대로는 / etc / crontab에이 편집 파일 및 그의 가게는, 다음 크론 구성이 자동으로 실행됩니다!

참고 : 그래서,은 crontab의 바닥에서 리눅스 자동으로 우리가 / 회 분의 등 / crontab을 일상적인 문제를 다시 읽어 도움이되지만 몇 가지 이유로 인해 crontab을 다른 유닉스 시스템, 그들의 메모리에 읽기 작업이 완료 수정을 / etc / crontab을이, 즉시 실행되지 않을 수 있습니다 후 다시 시작이 시간이이 서비스를 있으며 crond! "/Etc/init.d/crond 다시 시작"

10의 crontab 형식을 설명하는

각 작업 형식 (각 행), 여섯 개 개의 필드를 의미하는 여섯 개 개의 필드와 모두는 다음과 같습니다

의미를 대신하여 시간 날짜 저우 명령
디지털 범위 0-59 0-23 1-31 1-12 0-7 그래 아 주문

더 흥미로운는 오 "주"입니다! 주 번호 0 또는 7, "일요일"라는 뜻을 나타냅니다! 또한, 아마도 이러한에서 일부 보조 문자는있다 :

특수 문자는 의미를 나타냅니다
언제든지 가능 의미를 (별표)를 나타냅니다! 예를 들어, 패러다임 내에서 일, 월, 주이라고 "몇 월 12:00 실행 추적하기 위해 몇 무슨 요일에 상관없이"의 의미를 대신하여!
쉼표 (,)가 분리 된 평균 시간을 나타낸다. 예를 들어, 작업은 6시 3:00이 될 때 발행하는 것입니다 :
0 3,6가 * * * 명령
시간 매개 변수는 여전히 다섯 개의 열이 있지만 두 번째 열은 3,6, 그리고 3 개 대표 6 적용 할 수 있습니다!
- 제 (마이너스)는, 예를 들면, 작업 12시부터 8시까지 사이 시간당 20 분이며, 일정 기간을 나타내는
20 ~ 12 * * * 명령은
신중에 두 번째 열을 표시 8-12 오! 의미를 대신하여 적용 8,9,10,11,12!
/ N (슬래쉬) N "은 모든 N 유닛 간격"수단의 수를 나타내는 것으로, 예를 들면, 다음 5 분마다 한번 :
/ 5 * * * 명령이
매우 간단! 으로 *와 일치 / 5도 0-59 / 5, 같은 의미로 쓸 수있다!

태양과 주 공존 할 수없는 달 (11),

"당신은 하나 태양과 달 단위로 주간 사이클했다 할 수 있지만이 작업 모드 '를 위해 일주일의 날짜와 하루'를 사용할 수 없습니다."참고 또 다른 점이다 당신이 이러한 작업 일정을 기록 할 수있는이 수단 :

30 12 11 9 5 root echo "just test"   <==这是错误的写法

당신은 그것을 9/11 금요일이었고,이 작업을 수행 할 생각이나 했 겠어요, 좌절은 시스템이 9 월 11 일 각각 이런 식으로 원래 계획 결정 매주 금요일, 또는 매년을 할 수 있다는 것이다 동일하지 - 그래서,이 장소에 지불 관심을 가지고! 위의 표현은 옳지 않다!

추천

출처www.cnblogs.com/enumx/p/12319232.html