Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> Linux自動実行crontab study notes

Linux自動実行crontab study notes

  
Linuxプラットフォームで、タスクスケジューリング機能を実装する必要がある場合は、達成するためにcronスクリプトを書くことができます。タスクを一定の頻度で実行すると、デフォルトでcrondプロセスが開始されますが、crondプロセスではユーザーが起動またはシャットダウンする必要はありません。 crondプロセスはスケジュールされたタスクを読み込んで実行する責任があり、ユーザーは対応するスケジュールスクリプトをcronスケジュール設定ファイルに書き込むだけで済みます。 cronスケジュールファイルは次のとおりです。crontab
cron.d
cron.daily
cron.hourly
cron.monthly
cron.weekly

毎週毎週実行する代わりに、対応するcrontabをcrontabまたはcron.dディレクトリに書き込むことができます。例:スクリプト/opt/bin/test-cron.shを毎分実行するcron.dに* /1 * * * root /opt /bin /test-cronの内容で新しいスクリプトecho-date.shを作成できます。指定した時間にタスクを実行することもできます指定した時間にタスクの実行を制御するためにatコマンドを使用することもできます例:at -f test-cron.sh -v 10:25ここで、-fはスクリプトファイルを指定し、-vは実行時引用符を指定します:ea946d690b =" lophyxp"]最初にcontab -l> contabs.tmpを使用して、contabの設定をエクスポートします。次にcontabs.tmpファイルを編集します。次の形式で行を追加します。10 3 * * 0,6のようなminute hour day month weekコマンドhelloは、毎週土曜日と日曜日の3:10にhelloプログラムを実行します。 15 4 * * 4-6 helloは、木曜日から土曜日の4時から15時までhelloプログラムを実行します。次に、contab contabs.tmpコマンドを使用して新しい構成をインポートします。通常、/etc /の下の関連する設定ファイルを直接変更することはお勧めできません。 cronプロセスを起動します。/etc/init.d/crond start cronプロセスのセットアップコマンドを起動します。chkconfig --add crond方法2:起動スクリプトにcronを追加します。#rc-update add vixie-cron defaultcrontab - l#タスクの表示crontab-e#タスクの編集crontab-r#ユーザーのcrontabコンテンツの削除例2:System cron設定:/etc /crontab /etc /crontabファイルを使用して、システムを定期的に実行するように設定できます。もちろん、このファイルを編集するには、root権限が必要です。0 7 * * * root mpg123〜/wakeup.mp3月と週の時刻の例:0 4 * * 0 root emerge --sync&& emerge -uD #4毎週日曜日、システムを更新します。0 2 1 * * root rm -f /tmp /*#2:00月の1日午前/tmp以下のファイルをクリーンアップします。0 8 6 5 * root mail robin< /ホーム/galeki /happy.txt #############################################################################。 、18ポイントでコマンドを実行するなどを設定するには、'、'、'で設定できます。* /2 * * * * root .............# 2分ごとに実行されます........ 0 6,12,18 * * * root ................毎日#6、12、18。 ....... 2時間ごとに0 * /2 * * * echo「今すぐ休憩があります」>& gt; /tmp /test.txtの午後11時から午前8時まで2時間、午前8:00、23:00〜7 /2、8 * * * echo"良い夢を見ています:)"& gt;> /tmp/test.txt、毎月4日毎週月曜日から水曜日の11:00 11 * 4 1-3コマンドライン1月1日4 am 0 0 4 1 1 *コマンドラインの収穫ワークロードは、このよう、毎週のレポートの表示をチェックサーバの状態を実行しているように、プロセスの数を殺すなど……

のcrontabについて、Wikipediaのエントリは非常に良いのcrontab。残念ながら、この住所は中国の代理店にはアクセスできない。
Crontabの紹介はいたるところにありますが、用語を詳しく読むと、収穫はまだあります。 Crontabという名前は、古代ギリシャ語の "chronos"から由来しています。

共通のトラップ
初めて使用されるすべてのSA、DBA、または一般のUnixユーザー1)テスト用に新しいCron JOBが作成されており、時間間隔が2分を超えていないと、JOBはディスパッチされません。 2分の負荷設定の時間差を無視する必要がある場合は、Cronデーモンを再起動することで無視できます。
2)CrontabからX Windowプログラムを起動する際の注意事項:プログラムの前に" DISPLAY =:0.0"を初期化するか、アプリケーションの後にパラメータを追加します--display:0.0
3) %inはエスケープする必要があります:\\%私の個人的な意見は、コマンドラインでこのパラメータを使用せず、単にスクリプトに書き込んでからスクリプトをディスパッチすることです。
実際、Crontabを使用する際の最も一般的な問題は、環境変数が間違っていることが原因であると思います。私のCrontabはなぜ作成され実行されないのですか?Cron JOBを作成する準備ができたら、環境変数は自動的にシェルに取り込まれるため、コマンドラインから実行することを好む人が多くいます。 Crontabでは、正しい環境変数が見つからないため、JOBを実行できません。この小さな問題は天然痘のようなものです。

使用する必要のあるトリック
各JOBが実行された後、システムは自動的に現在のシステムユーザーに出力を送信します。時間が経つにつれて、それは非常に多く、そしてそれはシステム全体を爆発させるでしょう。そのため、各JOBコマンドの後にリダイレクト処理を実行する必要があります。> /dev /null 2>& 1。前提は、ジョブ内のコマンドは、特定のログファイルへの追加など、通常どおりに処理する必要があるということです。添付ファイル:Crontabの形式は次のとおりです。
* Comma( '、')はリストの値を指定します。例: "1,3,4,7,8" * "1,2,3,4,5,6" *の場合、水平線( ' - ')は範囲の値を "1-6"と指定します。アスタリスク( '*')はすべての可能な値を表します

(オープンソースシステムは問題ないようです)Minuteフィールドでは、* /15は15分ごとを意味します。そして、この機能はAIXのような商用のUnixでは利用できません。
#コメントの前にハッシュ記号を使う#+ ---------------- minute(0 - 59)# |   + ------------- hour(0 - 23)#|   |   + ----------月の日(1 - 31)#|   |   |   + ------- month(1 - 12)#|   |   |   |   + ----曜日(0 - 7)(日曜日= 0または7)#|   |   |   |   |  #* * * * *実行するコマンド

Copyright © Windowsの知識 All Rights Reserved