LINUX忘却録-リナックス(主にdebian)の覚書や、解説を書いています。
[14]  [15]  [16]  [17]  [18]  [19]  [20]  [21]  [22

細胞を取り出して、同じものを複製するクローン技術・・ではありません。
Linuxでクローンというと、cronの事を言い、毎分毎や毎日何時など、決められた時間に定期的に処理をさせるサービスの事を言います。

Windowsで言うところのスケジューラに近いサービスで、私は非常によく使います。
毎日のログの更新や、システムの監視や定期的なプログラムの実行等、様々な用途で使えます。

このクローンは、基本的なサービスなので、ほとんどのディストリビューションで最初からインストールされています。

cronの使い方は、2種類あってシステムが主に使用している
/etc/crontab で宣言されている以下のフォルダに、実行スクリプトを置く方法と

/etc/cron.hourly 毎時間
/etc/cron.daily 毎日
/etc/cron.quarter-daily 6時間毎
/etc/cron.weekly 毎週
/etc/cron.monthly 毎月

crontab -e コマンドを使用して、実行スクリプトを指定する方法があります。

通常時間が細かく設定できる後者を使用することが多いのでcrontab -eを利用したクローンの使用方法を掲載します。

crontab -eを実行して、クローンが定期的に実行できるスクリプトを設定します。

# crontab -e
ユーザー毎に設定することが可能で、実行されるスクリプトは、設定したユーザ権限で実行されます。

crontab ファイルの書き方は、
  1. 分 0-59
  2. 時 0-23
  3. 日 0-31
  4. 月 0-12
  5. 曜日 0-7 (0と7は日曜日)
  6. 実行ファイル名

フィールドには、アスタリスク(*)も指定できます。
数値の範囲も指定できる。範囲は二つの数をハイフンでつなげる。指定数値も領域に含まれる。例えば「時」に 8-11 を指定すると、 8時, 9時, 10時, 11時に実行することになる。

リストもできる。リストはコンマで区切られた数値 (または範囲) のセットである。例:``1,2,5,9'', ``0-4,8-12''

間隔値を範囲とともに指定することもできる。範囲の後に ``/<number>'' と指定すると、範囲内で指定数値ずつ飛ばすことになる。例えば「時」フィールドに ``0-23/2'' と指定すると、コマンドは 2 時間おきに実行される (V7 標準の別形式で書けば ``0,2,4,6,8,10,12,14,16,18,20,22'') 間隔はアスタリスクの後にも指定できる。「2 時間おき」といいたければ ``*/2''とする。

「月」フィールドや「曜日」フィールドには名前を使用することもできる。その日または月の最初の3文字を用いる (大文字小文字は問わない)。範囲やリストを名前に対して用いることはできない。

「第 6」フィールド (行の残りの部分) には実行されるコマンドを指定する。その行のコマンド部 (改行文字または % 文字まで) が /bin/sh (またはその crontab ファイルの SHELL 環境変数で指定されたシェル) によって実行される。コマンド中にパーセント記号 (%) がバックスラッシュ (\) によってエスケープされずに置かれていると、改行文字に置き換えられ、最初に現れた % 以降の全てのデータは標準入力としてコマンドに送られる。

注意: コマンド実行の日は 2 つのフィールドで指定できる --- 月内日および曜日である。もし両方のフィールドが制限指定 (* 以外) であると、 いずれかのフィールドが現在時刻と合った時にコマンドが実行される。例えば、
``30 4 1,15 * 5''
とすると、毎月 1 日と 15 日および毎週金曜日の午前 4:30 にコマンドが実行される。


また、オプションとして、先頭に以下の指定が出来ます。
SHELL=/bin/bash
MAILTO=""
PATH=/sbin:/bin:/usr/sbin:/usr/bin
HOME=/
SHELLを指定すると、(/etc/passwd)の指定に関わらず、コマンド実行に/bin/bashを使用します。
MAILTOを指定すると、crontabの所有者に関わらず指定した所有者に実行した出力結果をメールします。
SHELLは、余り使いませんが、MAILTOは、crontabの実行の度にメールが送られてくるのもウザイので、通常送らないように指定します。
そこで、MAILTO=""を指定することで、メールを送らないようにすることが出来ます。
他に、PATHや、HOMEを指定する事も出来ます。

cronの例をいくつか書いておきます。
17 06 * * * 06:17に実行
30 23 * * * 23:30に実行
0 10 * * * 10:00に実行
0 10 * * 1 毎週月曜の10:00に実行
0,30 06 * 0,2,3 毎週日、火、水曜の6:00と6:30に実行
0-10 17 1 * * 毎月1日の17:00~17:10の1分おきに実行
0 0 *1,10,20 * 1 毎月1日と10日と20日と月曜日に実行
20 06 1 * * 毎月1日の6:20に実行
0 06 * * 1-6 月曜~土曜までの6:00に実行
0,10,20,30,40,50 * * * * 10分おきに実行
*/10 * * * * 10分おきに実行
* 06 * * * 6:00~6:59まで一分おきに実行
0 * * * * 毎時0分に1時間おきに実行
10 8-20/3 * * * 8:10,11:10,14:10,17:10,20:10に実行


捕捉
crontab の標準のエディタをdebianで変更する方法

update-alternatives --config editor
PR
フリーエリア
Copyright © LINUX忘却録 All Rights Reserved.