Ubuntu下crontabタイミングタスク詳細まとめ

4818 ワード

1、定義:


cronはサービス名、crondはバックグラウンドプロセス、cronのプロファイルは「crontab」と呼ばれ、「cron table」の略であり、crontabはカスタマイズされた計画タスクテーブルである.cronサービスはcrontabコマンドを提供してcronサービスを設定します.

2、インストール:


インストール:apt-get install cron一般的にubuntuにcronサービスが付属

3、crondサービス操作コマンド

/sbin/service crond start // /sbin/service crond stop // /sbin/service crond restart // /sbin/service crond reload // service cron status // service cron // cron ps -ax | grep cronサービスが開始されたかどうかを確認

4、crontabコマンド

crontab -u //       cron                       -u      
crontab -l //      cron                     -l           
crontab -r //       cron                       -r         
crontab -e //       cron                       -e         

5、crontabタスク構成基本フォーマット

                                  
0-59   0-23   1-31   1-12    0-6    command     (    ,0    、          )

次のようになります.
  • "*"は値の範囲内の数字を表し、アスタリスクはすべての有効な値を表すことができます.例:分値のアスタリスクは、他の制約条件を満たした後、各スコアがこのコマンドを実行することを意味します.
  • "/"は各を表し、正斜線(/)は間隔周波数を指定するために使用することができ、例:*/3の値は時間フィールドで3時間ごとにタスクを実行することを表すことができる.
  • "-"は、ある数値からある数値までを表し、整数間の短い線(-)は整数範囲を指定します.例:1-3は整数1、2、3
  • を意味する
  • ","はいくつかの離散的な数字に分けられ、カンマ(,)で区切られた一連の値でリストを指定します.例:2,4,7この3つの指定された整数の先頭が井戸番号(#)であることを示す行は注釈であり,処理されない.

  • 6、タイミングタスクの追加方法


    1つ目の編集:コマンドの入力:crontab -e cronサービスの編集(vimエディタの選択)
    * * * * * /opt/module/test.sh     #     /opt/module  test.sh  
    */5 * * * * /opt/module/test.sh   # 5    /opt/module  test.sh  
    30 1 10,20 * * ls                 #  10 、20  1:30  ls  
    0,30 18-23 * * * reboot           #  18 : 00 23 : 00    30      
    * 23-7/1 * * * date >>/log.txt    #  23    7   ,           /log.txt     
    30 5 * * * ls >/jp/test 2>&1      #  5:30  ls  ,       /jp/test     
    								  # :2>&1            。
    

    ・escを押して編集モードを終了通常モードに入り、入力:xまたは:wq保存終了入力コマンド:crontab -l crontabコマンドを書き込んだばかりを表示
    第2の編集:直接/etc/crontabファイル、すなわちvi/etc/crontabを編集し、対応するタスクを追加します.例えば、11 2 21 10*rm-rf/mnt/fb
    第3の編集:注意:この操作は、新規ではなく、ユーザーの下のcrontabを直接置き換えることです.
       : cron    ,   crontest.cron。
    15,30,45,59 * * * * echo "test....." >> /opt/module/test.txt    ,  15  ,         
       :      。     crontab crontest.cron。 
       :crontab -l               /var/spool/cron       cron  
    

    7、crontabタイミングタスクが実行されなかった可能性の原因

  • スクリプトの原因:多くの場合、私たちは科学を信じ、コンピュータを信じなければならない.幽霊ではなく、私たちのスクリプトの問題であり、crontabが実行できない確率は70%以上を占めている.プログラムが実行されるとcrontabが実行を終了するため、コードを移行するときにデータベースを接続し間違えたことに遭遇しました.そこに訪問できずに死んだ.
  • 環境問題を実行して、私達が第1の情況に出会う時、普通はすべて手動でプログラムを実行して問題を揺りかごの中で扼殺することができて、普通の情況の達人は第1種の間違いを犯すべきではありません.問題は,我々が手動で実行に成功しcrontabが実行できない場合,筆者が一度遭遇したのは実行環境の問題,例えば関連経路の設定の問題である.解決策:コードの一番前にsource/home/user/.bash_profile
  • システムの時間が正しくありません.この問題は最もよく理解され、比較的よく見られる問題であり、解決策でもある:date-s********
  • は、スクリプトに実行可能な権限があるかどうかです.スクリプトを実行するユーザーには、ファイルの変更を実行する権限があることを保証する必要があります.
  • crontabデーモンが死んだ.このような状況はめったに発生しませんが、私たちが本当に他の原因が見つからないときに使うことができます.ソリューション:プロセスを再起動します.
  • crontab-u root/var/spool/cron/rootこのようにrootユーザーのcrontabはservice crond restart再起動下サービス
  • を有効にする.
  • crondは
  • を起動していません
  • スクリプトコードの問題、スクリプトはwindowの下で書いて、linuxの下に伝わってから文字化けして、viエディタで新しいshellスクリプトを新築して、内容を入力してから保存します.

  • 8、crontab権限の問題


    /var/adm/cron/次を見ると、ファイルcron.ここにいるよdenyが存在するかどうかは、1、両方のファイルが存在しない場合、rootユーザーのみがcrontabコマンドを使用できます.2、cron.存在するがdenyが存在しないのはcronのみです.allowファイルのユーザーはcrontabコマンドを使用することができ、rootユーザーも中にいなければ、rootユーザーもcrontabを使用することはできません.3、cron.存在しないdenyが存在するのはcronのみです.denyファイル内のユーザーはcrontabコマンドを使用できず、他のユーザーも使用できます.4、両方のファイルが存在する場合はcron.allowファイルにはcronにリストされていません.denyのユーザーはcrontabを使用することができ、両方のファイルに同じユーザーがいる場合はcron.allowファイルにそのユーザーがいるかどうかはcron.allowにこのユーザーがいる場合はcrontabコマンドを使用できます.

    9、その他

  • /etc/cron.d/このディレクトリは、実行するcrontabファイルまたはスクリプトを格納するために使用されます.
  • /var/spool/cron/このディレクトリには、tomが作成したcrontabタスクに対応するファイルが/var/spool/cron/tomのようなrootを含む各ユーザーのcrontabタスクが格納されています.一般的に1人のユーザーにはcrontabファイルが1つしかありません.
  • linuxプラットフォームでタスクスケジューリング機能を実装する必要がある場合はcronスクリプトを作成して実装できます.タスクlinuxを一定の頻度で実行すると、デフォルトではcrondプロセスが開始され、crondプロセスはユーザーの起動、停止を必要としません.crondプロセスはスケジューリングタスクを読み取り、実行します.ユーザーは、対応するスケジューリングスクリプトをcronのスケジューリングプロファイルに書き込むだけです.cronのスケジューリングファイルには以下のものがあります.
  • crontab
  • cron.d
  • cron.daily
  • cron.hourly
  • cron.monthly
  • cron.Weekly使用するタスクがhourly monthly weekly方式で実行されない場合、対応するcrontabをcrontabまたはcronに書き込むことができる.dディレクトリにあります.


  • 参考链接:linux应用的crontab定时任务的设置linux定时任务的设置Linux下的crontab定时执行任务命令详细解crontab详细用法定时任务