LinuxでCronタスクを開始

2021 ワード


cronはLinuxの下のタイミング実行ツールで、手動で介入する必要はなく、quartzのcron式とは少し違います.cronはLinuxに組み込まれたインフラストラクチャサービスであるため、すべてのサーバがデフォルトで起動しているわけではありません.起動していない場合は、次のコマンドを使用します.
 
sudo service cron restart/start/stop

 
 
コマンドcrontab–lを使用して、現在のユーザーcronサービスの詳細を表示します.
 
コマンドcrontab–eを使用して、現在のユーザーcronサービスを編集するデフォルトのエディタを開きます.ここでは、最も簡単なshellを使用すると仮定します.
 
#!/bin/bash
echo “$(date +%Y-%m-%d\ %H:%M:%S)”

 
 
この簡単なshellは現在の時間を印刷するだけで、このコマンドがcronサービスがいつ呼び出されたかを検出するためにも使用されます.
 
crontab-eを使用してこのコマンドを追加します
* * * * * cd /home/...; ./test_cron.sh >> /tmp/test_cron.log 2>&1

  
なお、すべての出力を指定したファイルに指向することが望ましい(2>&1で同じストリームにエラー情報を出力できる).これにより、このshellは毎分1回実行されます.
 
Crontabでの設定
 
設定の前の部分は時間の設定で、後ろの部分は実行するコマンドです.実行するコマンドが多すぎる場合は、これらのコマンドをスクリプトに書き込んで、ここで直接このスクリプトを呼び出せばいいです.呼び出すときは、環境変数が持ち込めないため、コマンドの完全なパスを書くことを覚えておいてください.時間の設定には一定の約束があり、前の5つの*番号は5つの数字を表し、数字の取値範囲と意味は以下の通りである.
   (0-59) 

   (0-23) 

   (1-31)
   (1-12) 

   (0-6)//0     

 
数字以外にもいくつかの特殊な記号が「*」、「/」と「-」、「,」、*はすべての値の範囲内の数字を表し、「/」はそれぞれの意味を表し、「*/5」は5単位ごとを表し、「-」はある数字からある数字まで、「,」はいくつかの離散した数字に分かれている.以下にいくつかの例を挙げて問題を説明します.
毎朝6時
0 6 * * * echo "Good morning." >> /tmp/test.txt

 
2時間ごと:
0 */2 * * * echo "Every 2 hours" >> /tmp/test.txt

 
夜11時から朝8時まで2時間ずつ、朝8時
0 23-7/2,8 * * * echo "Have a good dream:)" >> /tmp/test.txt

 
毎月の4日と毎週月曜日から水曜日の朝11時まで
0 11 4 * 1-3 command line

 
 
1月1日午前4時
0 4 1 1 * command line

 
 
あるユーザーのcron設定を編集するたびに、cronは自動的に/var/spool/cronの下でこのユーザーと同じ名前のファイルを生成します.このユーザーのcron情報はこのファイルに記録されます.このファイルは直接編集できません.crontab-eだけで編集できます.
 
cronが起動した後、時計ごとにこのファイルを読み、中のコマンドを実行するかどうかを確認します.そのため、このファイルが変更された後、cronサービスを再起動する必要はありません.