細胞を取り出して、同じものを複製するクローン技術・・ではありません。
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 ファイルの書き方は、
- 分 0-59
- 時 0-23
- 日 0-31
- 月 0-12
- 曜日 0-7 (0と7は日曜日)
- 実行ファイル名
フィールドには、アスタリスク(*)も指定できます。
数値の範囲も指定できる。範囲は二つの数をハイフンでつなげる。指定数値も領域に含まれる。例えば「時」に 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 にコマンドが実行される。
また、オプションとして、先頭に以下の指定が出来ます。
MAILTO=""
PATH=/sbin:/bin:/usr/sbin:/usr/bin
HOME=/
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