Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> Linux Crontabの基本チュートリアル

Linux Crontabの基本チュートリアル

  
 

cronはギリシャ語のchronos( "time"を意味する)から来ています。これは、指定されたタスクを自動的に実行するLinuxシステムの次のプログラムです。たとえば、毎晩の睡眠中に特定のファイルまたはフォルダのバックアップを作成したい場合は、cronを使用してそれを自動化できます。

サービスの開始と停止

cronサービスはLinux用の組み込みサービスですが、自動的には起動しません。次のコマンドでサービスを開始および停止できます。

 /sbin /service crond start 
 /sbin /service crond stop 
 /sbin /service crond restart 
 /sbin /service crond reload 

上記の1〜4行は、サービスの開始、停止、再起動、および設定の再読み込みです。

起動時にcronを自動的に起動するように設定するには、/etc /rc.d /rc.localスクリプトに/sbin /service crond startを追加します。

表示、編集、および削除

cronはコマンドラインをcrontab(cronテーブル)ファイルに保存します。このファイルは通常/etcディレクトリにあります。各システムユーザーは自分自身のcrontab(/var /spool /cron /の下)を持つことができます。現在のユーザーのcrontabを表示するには、crontab -lと入力し、crontabを編集するにはcrontab -eと入力し、crontabを削除するにはcrontab -rと入力します。現在rootの場合、ユーザーのcrontabを表示/編集/削除/表示するには、適切なコマンドに-u USERNAME(crontab -e -u USERNAMEなど)を追加するだけです。 crontabファイルのデフォルトエディタはviです。デフォルトのエディタを変更するには、export VISUAL =’ editor’と入力します。

cronサービスは、毎分/var /spool /cronディレクトリ内のすべてのファイルを読み取るだけでなく、/etc /crontabファイルも読み取ります。このファイルを設定することでcronはタスクを実行することができます。 crontabコマンドの使用はユーザーレベルのタスクの設定ですが、/etc /crontabファイルの編集はシステムレベルのタスクの設定です。

構文の説明

以下は、(/etc /crontabファイル内の)2つのcronステートメントの例です。前者は夜に/etcディレクトリをバックアップするために使用され、後者はサーバー統計を処理するためにAnalogプログラムを実行します。

 12 3 * * * root tar czf /usr/local/backups/daily/etc.tar.gz /etc>> /dev /null 2>& 1 
 52 5 * * * root /usr/local/src/analog-5.32-lh/analog>> /dev /null 2> 1< 1< 1< p>次に、cronステートメントのフィールドとその説明を示します。

説明1分(0〜59)2時間(2〜24)3日付(1〜31)4月(1〜12、または英語の短縮形1月、2月など)5週間(日曜日は0〜6、0。 6ユーザー名(コマンド実行時のユーザーとして)7実行するコマンド(パス)

最初の行を見てください。

 12 3 * * * root tar czf /usr/local/backups/daily/etc.tar.gz /etc>> /dev /null 2&g t;& 1 

このステートメントは、 12 am(03:12)にtar czf /usr/local/backups/daily/etc.tar.gz /etcを実行します。コマンド>> /dev /null 2> 1はすべての標準出力を/dev /null(Linuxのごみ箱)に、標準エラー出力(2)を標準出力(1)と同じ場所に送信することを意味します。それは/dev /nullです。この行のコマンドを実行しても何も出力されません。

この文はもう少し複雑になります。

 30 15 13 6 1 * root tar czf /usr/local/backups/daily/etc.tar.gz /etc>> /dev /null 2>& 1 

6月13日月曜日の15:30にtar czf /usr/local/backups/daily/etc.tar.gz /etcが実行されます。
コマンド

次の文を使用しても同じ効果が得られます。

 30 15 13 Mon月* root tar czf /usr/local/backups/daily/etc.tar.gz /etc> /> Dev /null 2>& 1 

プログラムをユーザーjoey 1時間あたり15分
として実行する場合は、次のコマンドを使用できます。

 15 * * * * Joey /usr /bin /somecommand>> /dev /null 2>& 1 

アスタリスク(*)はワイルドカードで、cronがこのフィールドを無視することを示します。

2時間ごとにプログラムを実行する場合は、[時間]フィールドに* /2を使用できます。 2時、4時、6時、…… 22ポイント、24時に実行されます。具体的なステートメントは次のとおりです。

 0 * /2 * * * joey /usr /bin /somecommand>> /dev /null 2> 1 

cronステートメントでもカンマ(、)を使用できます。複数回指定します。たとえば、 15ポイント、1時間あたり30分でプログラムを実行する場合は、分のフィールドに15,30を使用できます。

 15,30 * * * * joey /usr /bin /somecommand>> /dev /null 2> 1< 1< p> 1か月の最初の週のにプログラムを実行する場合(毎日1から7)
日付フィールドには1〜7を使用できます。
 15,30 * /2 1〜7 * * joey /usr /bin /somecommand>> /dev /null 2> 1 

このステートメントは、毎時15時間30分(<02> 15、02:30…… 22:15、22:30など)に実行されます。 Usr /bin /somecommandコマンド。

毎日 16:18にスクリプトコレクションを実行する場合は、実行するすべてのスクリプトをディレクトリ(/home /username /cronなど)に置くことができます。 :

 18 16 * * * rootの実行部分/home /username /cron>> /dev /null 2>& 1 

プログラムの出力を保存したい場合は、 >> /dev /null 2> 1を>> /home/user/somecommand.log 2> 1に置き換えます。

概要

  • 現在のユーザーのcron設定を表示するには、crontabを使用します。-l
  • 現在のユーザーのcron設定を編集するには、crontab -eを使用します。
  • 現在のユーザーのcron設定を削除し、rootとしてユーザーのcron設定を表示/編集/削除します。コマンドの後に-u USERNAME
  • を追加して、システムレベルのタスクを設定します。 /etc /crontabファイルを編集します。

  • Copyright © Windowsの知識 All Rights Reserved