多くの場合、サーバーがスクリプトを実行して、Qiniuのツールを使用したアップロードなど、定期的に操作をトリガーすることを望んでいます。同期ファイルに新しいファイルがある場合は、この時点で、必要な同期コマンドを完了するためのタイミングスクリプトを提供できます(7 Niuのqrsboxツールは自動的に同期します。同期フォルダにファイルを追加するだけで、アップロードが自動的に監視されます)。
1. crontabをインストールします
[ root@CentOS ~]# yum install vixie-cron
[ root@CentOS ~]# yum install crontabs
vixie-cronソフトウェアパッケージはcronのメインプログラムです。
crontabsパッケージは、cronデーモンの駆動に使用されるテーブルのインストール、アンインストール、または一覧表示に使用されるプログラムです。
2. crontabサービスをオンにする
service crond start //サービス開始
次の方法を使用して、cronサービスを開始および終了します。
service crond start //サービスを開始します
service crond stop //サービスを閉じます
service crond restart //サービスを再起動します
service crond reload //構成をリロードします
crontabサービスステータスの表示:サービスcrondステータス
crontabサービスを手動で開始します:service crond start
crontabサービスが起動時に開始するように設定されているかどうかを確認し、次のコマンドを実行します。ntsysv
起動後に自動開始に参加する:
chkconfig –level 35 crond on
さらに、ちなみに、ntsysvコマンドとchkconfigコマンドを導入します。
ntsysvコマンドについては、起動を設定するためのグラフィカルインターフェイス管理モードです。使用する前にインストールする必要があります。yuminstall-yntsysvをインストールした後は、ntsysvを実行するだけでグラフィカル管理インターフェイスが表示されます。
上下のキー:中央のボックスでサービス間を移動できます。
スペースバー:必要なサービスを選択するために使用できます。[*]は開始することを意味します。
タブキー:ボックス間を移動できます、OK、キャンセル;
[ F1]キー:サービスの説明を表示できます。
chkconfigコマンドラインに関しては、6つの起動レベルで特定のサービスの動作を自動起動するかクエリするかを設定できます。
起動後に自動的に開始するようにcrondサービスを設定します:
[ root@CentOS ~]# chkconfig crond on
各ブートレベルでのcrondサービスの動作を表示します
[ root@CentOS ~]# chkconfig –list crond
crond 0:オフ1:オフ2:有効3:有効4:有効5:有効6:無効
レベル2、3、4、および5を開くと、crondサービスが自動的に開始されることがわかります。
起動後にcrondサービスの自動開始をキャンセルします:
[ root@CentOS ~]# chkconfig crond off
3. 実行するスクリプトを設定します
スケジューリングタスクを追加するには、次の2つの方法があります。
1)、 コマンドラインに次のように入力します:crontab -e次に、対応するタスクを追加し、wqを保存して終了します。
2)、 / etc / crontabファイルvi / etc / crontabを直接編集し、対応するタスクを追加します。
crontab -e構成は特定のユーザー向けであり、/ etc / crontabの編集はシステムのタスクです。
スケジュールされたタスクを表示する
crontab -l //現在スケジュールされているすべてのタスクを一覧表示します
crontab -l -u jp //ユーザーjpのスケジュールされたタスクをすべて一覧表示
タスクスケジューリング作業を削除する
crontab -r //すべてのタスクスケジューリングタスクを削除します
vim / etc / crontabを直接編集します。デフォルトのファイル形式は次のとおりです。
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .- - - - - - - - - - - - - - - - minute(0-59)
# |.- - - - - - - - - - - - - hour(0-23)
# ||.- - - - - - - - - - day ofmonth(1-31)
# |||.- - - - - - - month(1-12) OR jan,feb,mar,apr ...
# ||||.- - - - day ofweek(0-6)(Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |||||
# ***** user-name command to be executed
このテキストはそれをより直感的に説明しています。
アスタリスク(*):可能なすべての値を表します。たとえば、月フィールドがアスタリスクの場合、他のフィールドの制約を満たした後、コマンド操作が毎月実行されることを意味します。
カンマ(、):「1,2,5,7,8,9」のように、コンマ区切りの値でリスト範囲を指定できます。
ミドルバー(-):整数間のミドルバーは、整数範囲を表すために使用できます。たとえば、「2-6」は「2,3,4,5,6」を意味します
フォワードスラッシュ(/):フォワードスラッシュを使用して、時間間隔の頻度を指定できます。たとえば、「0-23 / 2」は、2時間ごとに実行されることを意味します。同時に、フォワードスラッシュは* / 10などのアスタリスクを付けて使用できます。分フィールドで使用する場合は、10分ごとに実行されることを意味します。
基本的にいくつかの一般的な状況をカバーするいくつかの例を次に示します。
**例1 **
5**** lsは、lsコマンドが5分ごとに1回実行されることを指定します
305*** lsは毎日5を指定します:30lsコマンドを実行します
3078** lsは、lsコマンドが毎月8日の7:30に実行されることを指定します
30586* lsは、lsコマンドが毎年6月8日の5:30に実行されることを指定します
30586* lsは、lsコマンドが毎年6月8日の5:30に実行されることを指定します
306**0 lsは毎週日曜日に6を指定します:30lsコマンドを実行します
30310,20** ls毎月10日と20日の3:30にlsコマンドを実行します
258- 11*** 1日あたり8-25分11時にlsコマンドを実行します。
* /15****lsは15分ごとにlsコマンドを実行します
306* /10**ls毎月、10日ごと6:30lsコマンドを1回実行します
224*** root run-parts /etc/cron.daily
# 毎日4:22にルートとして実行/etc/cron.デイリーディレクトリ内のすべての実行可能ファイルを実行します-partsパラメーターは、以下のディレクトリー内のすべての実行可能ファイルが実行されることを示します。
**例2 **
# 1泊21:30apacheを再起動します
3021***/usr/local/etc/rc.d/lighttpd restart
# 毎月4日1、10、22:45apacheを再起動します
4541,10,22**/usr/local/etc/rc.d/lighttpd restart
# 毎週土曜日と日曜日に1:10apacheを再起動します
101**6,0 /usr/local/etc/rc.d/lighttpd restart
# 1日18:00から23:00から30分ごとにapacheを再起動します
0,3018- 23***/usr/local/etc/rc.d/lighttpd restart
# 毎週土曜日11:午後00時にapacheを再起動します
023**6 /usr/local/etc/rc.d/lighttpd restart
# 午後11時から午前7時まで1時間ごとにapacheを再起動します
023- 7 /1***/usr/local/etc/rc.d/lighttpd restart
# 1時間ごとにapacheを再起動します
0* /1***/usr/local/etc/rc.d/lighttpd restart
# 毎月4日と毎週月曜日から水曜日の11時にapacheを再起動します
0114* mon-wed /usr/local/etc/rc.d/lighttpd restart
# 1月1日の4時にapacheを再起動します
041 jan */usr/local/etc/rc.d/lighttpd restart
# 30分ごとに時間を同期します
0 /30****/usr/sbin/ntpdate 210.72.145.44
注意
各時間の最初の数分に実行されるように指定する必要があります。つまり、最初の*を値に変更する必要があります。
*は毎分を意味するからです。
また、1時間に1回の時間位置の/ 1に差はありません。
最後に、次の問題が発生する可能性があります
ルートユーザーの下にcrontab-lと入力して、表示します
ルートのcrontabはありません例:
[ root@CentOS ~]# crontab -l
no crontab for root
この質問は非常に単純です。rootユーザーの下にcrontab-eも入力してください。
Escを押すPress:wq Enter
crontab-lと入力しても問題ありません
主な理由は、このliunxサーバーが初めてcrontabを使用し、対応するファイルがまだ生成されていないためです。このファイルは編集後に生成されます(crontab -e)
上記のLinuxCentOSタイミング実行スクリプト構成の方法は、エディターによって共有されるすべてのコンテンツです。参照を提供したいと思います。
Recommended Posts