など/ 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のrootユーザーだけが、この方法はより便利で、このメソッドを使用することができますし、他のユーザーに直接指示した設定のスケジュールを設定するだけでなく、実行シェルを指定するなど、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
実行の結果、今0のinitこと-h同じ、それらは一般的に使用されているLinuxのシャットダウンされている0は、UNIXで最も頻繁に使用されるinit、アイデンティティのシャットダウン必要性のルートを実行することができます
操作の方法を選択することができます。
方法1:
アイデンティティのルートに変更します
SU - ルート
crontabの-e(増で)
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
それはシステムの日常的な作業である場合のcrontab -eを実行する方法を、ユーザのcronのために設計されていますか?あなたはまだルーチンを管理するために-eコマンドをのcrontabする必要がありますか?もちろん、それだけで編集の/ etc / crontabのファイルに必要ではありません。注こと:crontabの-e実際の役割があるの/ usr / binに/このファイルを実行するのcrontab、が、/ etc / crontabのは、プレーンテキストファイルです、あなたはルートのIDにこのファイルを編集することができます。
cronのは、データの内容を読み取りので基本的には、最小検出時間cronサービスユニットは、分は/ etc / crontabファイルと/ var /スプール/ cronの各分、限り、あなたは/ etc / crontabのファイルの編集が終了し、保存してきたようにときのcrontabその後、設定が自動的に実行されます。
注:crontabのがメモリに読み込まれるので、Linuxのcrontabファイルの場合は自動的ので、日常的事項一度に/ etc /毎分のcrontabが、いくつかの理由やその他のUNIXシステムのために、私たちは再読み込みするのに役立ちます/ 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のファイルルーチンコマンドエラーが発生すると、エラーメッセージが画面に表示されているか、誰に情報を渡すために?ルートは、クライアント側で受信することができないので、そのため、あなたは自分の通常のユーザーアカウントにこのメールを使用することができます。、
01 * * * *ルート素敵な19の実行部分-n /etc/cron.hourly:#ランパーツは、この行にコマンドの後、我々は5つの番号を見つけることができるルートが続いている、このレベルの代表を行いますルート。もちろん、あなたも他のルートIDを変更することができ、その後、実行の部分は/etc/cron.hourlyディレクトリ内のすべての実行可能ファイルは毎時間ということ、(/etc/cron.hourly)です続きを表します01分の、システムはrootとして実行することができ、すべてのファイルの次の/etc/cron.hourlyディレクトリを実行します。システムがすでに暗黙のうち4つのディレクトリは、あなたが毎日を直接を/etc/cron.daily書かれたコマンドを実行する必要があります、プログラムがcrontabの-e、非常に便利を使用する必要はありません。
注:基本的には、/ etc / crontabの支持入力モード命令の2種類の一つは、ディレクトリの一の形態が入力され、直接に指示フォームに入力されます。
命令形
01 * * * * test mail -s test test < /home/test/test/test.txt
ユーザーがテストされ、時間あたりのコマンドメールを実行して......
カタログフォーム
*/5 * * * * root run-parts /root/runcron
/ルート/ 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分ごとに、異なる時間に予定されている流れ作業することができます。
UnixおよびLinuxのcrontabは、定期的な指示のために設定されて実行され、インターネットは非常に一般的な技術であるあなたがcrontabファイルを使用しない場合、多くのタスクは、crontabの実行サイクルに設定され、その後、タスクは、あなたのプログラムの比較を必要とする常駐プログラムであり、高い、スケジューラは、あなたのより信頼性の高い、実用的な仕事を依頼することですプログラムの90%は、上記の二つの問題を解決するために多くの時間と労力を費やすことを必要としない、そして、あなたのプログラムがダウンタイムなしで24時間365日の時間です尋ねます唯一のライン、crond信頼性、堅牢性に派遣するcrondによって、この工業用グレードのプログラムを自社のビジネスロジックを記述する必要が、それは間違いなくする必要があります。
5、crontabのエントリーは簡単
私は、タスクを設定すると仮定し、データの同期を行うために毎分は、このパスの同期スクリプトは、私がこのような構成で、その後、/home/blue/do/rsyncfile.shことができている、青のユーザーの使用、入力端子
crontab -e
このとき、画面では、仕事を編集することを可能にするのviエディタに入ります!各作品は彼の党であることを指摘しています。
#分 时 日 月 周 |<==============任务的完整命令行
* * * * * /home/blue/do/rsyncfile.sh
デフォルトでは、それらの/etc/cron.denyに含まれていない任意のユーザーが、その後、彼は直接あなたのルーチンコマンドを編集する「のcrontab -e」を発行することができます!そこに保存されているVIを出た後:同じように、上記のプロセス全体は、viの編集画面を入力して、[編集する作業のライン、編集が完了した後に入力します「WQ」!
我々は、データ同期化スクリプトを実行するために5分ごとに変更する必要がある場合は、\、[編集]を入力するために同じのcrontab -eを使用します。
*/5 * * * * /home/blue/do/rsyncfile.sh
サーバーに問題がある場合は、一日が、我々はデータが/home/blue/do/rsyncfile_day.shあるまでスクリプトを想定し、データを入力する必要がありますので、データのない同期ではありませんが、その日、夜の間にピーク期間、少数のユーザーが、低ピーク、我々はデータが非常に一般的に、我々はタスクが編集を入力するには、同じのcrontab -eを使用し、その後、2時にデータをアップ実行するために始め作ることができ、通常の事業活動に影響を与えるだろう、特に日中、多くの帯域幅を取る行います。
0 2 1 4 * /home/blue/do/rsyncfile_day.sh
このように、我々は、起動スクリプトは4月1日、午前2時にデータを補完開始します。
同期データは、インターネットを使用して、crontabファイルの魅力を見ることができる一般的タスク、である、ちょうど高い信頼性を完了するために、行うための最も簡単なビジネスロジック、スケジューリングcrondを書きますタスクは、追加の書き込みこのスケジューリングプログラムに自分自身をしたい場合、それは信頼性と安定性を達成するのにかかるどのくらいの努力を知りません。
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 / binに/ 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:
、すなわち、毎時、毎日、毎週、毎月、それぞれ、4に定義された事前設定されたタスク内部の/ etc / crontabのジョブを実施するために!しかしない5回のフィールドアクセスの背後にあるコマンド、しかし、なぜ「runコマンドの文字列の後ろのアイデンティティ」で新しい列、で!これは、ユーザーのcrontab -eと同じではありません。ユーザーがcrontab自身のアイデンティティを指定する必要がありますが、あなたはそれのIDを指定したいコースのは/ etc / crontabのがないので!上記の表の内容は、システムのデフォルトのルーチン作業はrootで実行されます。
だから、コマンドの文字列それが背後に何ですか?あなたはそれが「実行部分がどの」を参照して検索し、実際に、それはbashスクリプトで使用することができます!あなたは見た目には/ usr / binに/実行-部品に直接アクセスする場合は、このコマンド内のすべてのファイルが追いつくために実行するために、「ディレクトリ」が続くでしょう!ことを意味し、「あなたが助けに時間イニシアチブあたりのシステムが必要な場合は、コマンド、コマンド記述されたスクリプトを実行し、そして/etc/cron.hourly/できるディレクトリにファイルを配置」であること!
今、あなたは、システムがまだ日常の仕事のスケジュールの彼のデフォルトの束である方法を知っていますか?あなたが発行された場合は、「LLを/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
どのように!ルーチンコマンドを作成することは非常に簡単です!あなたは、システム管理者であり、あなたの仕事であれば日常のシステムメンテナンスタスクを直接変更するときに/ etc /この文書は可能のcrontab!そして、便利、および管理が簡単!
9、crontabの原則
ユーザーが作業スケジュールを作成するのcrontabコマンドを使用すると、作業は/ var / spool / cron /中に入った、とこれはああの識別として、口座番号であるに記録されます!例えば、青色の使用のcrontabの後、彼の作品は/ var / spool / cron /ブルーゴーの内部に記録されます!注、入力は、構文エラーが原因である可能性があるためしかし、直接ファイルを編集するためのVIを使用していないのcronを実行しない結果になります!また、すべてのジョブを実行するcronのは、Linuxがトロイの木馬に移植されているかどうか分からないもしそうなら、それはまた、検索することができますは/ var / log / cronのを、この中には/ var / log / cronのエントリに記録されますエントリー!
最低検出限界crondサービスがそう、「分」である「cronのは一度読みに行くの/ etc / crontabファイルと/ var /スプール/ cronのデータ内容毎分、内側に」長い間、あなたが完了しているように/ etc /のcrontabこれを編集ファイル、その後、彼の店は、その後のcron設定が自動的に実行されます!
注:そう、crontabファイルの下でのLinux自動的に私たちは/ 1分に1回のなど/ crontabの日常的なことを再読み込みするのに役立ちますが、いくつかの理由や原因のcrontabに他のUnixシステム、のためにそれらのメモリに読み込まれますあなたは完成の変更は/ etc / crontabのを持っている、とすぐに動作しない場合があります後、再起動するには、この時間は、このサービスをcrond!「/Etc/init.d/crondが再起動しました」
説明するため10、crontabのフォーマット
各ジョブ形式(各行)、6つのフィールドを意味する6つのフィールド、の両方があります。
意義を代表して | 分 | 時間 | 日付 | 月 | 周 | コマンド |
---|---|---|---|---|---|---|
デジタルレンジ | 0-59 | 0-23 | 1-31 | 1-12 | 0-7 | うんああ命じ |
さらに興味深いのは、「一週間」ああです!週番号0または7は、「日曜日」の手段を表して!また、いくつかの二文字は、おそらくこれらの下に、あります。
特殊文字は意味を表す
意味を受け入れた任意の時間を表し(アスタリスク)!例えば、パラダイム内の日、月、週があったことが、「何月、午前12時の実行のフォローアップのためのいくつかの曜日に関係なく」の意味を代表して、!
、(カンマ)を分離平均周期を表します。作業が発行される場合たとえば、午前6時と午前3時00分には、なりますとき:
0 3,6 * * *コマンドの
時間パラメータは、まだ5つの列を持っていますが、2番目の列は3,6で、3つの代表6が適用されます!
- (マイナス)の期間を表し、例えば、仕事のために00~12 8時00分の間で毎時20分である:
20 8-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日(金曜日)にとすると、この作業を実行することだけであると考えているだろうなく、同じ - そう、この場所に注意を払わなければなりません!上記の文言は適切ではありません!