上野家のホームページ
ナーマル,マリン,ココ
[
新規
|
一覧
|
検索
|
最新
|
ヘルプ
]
PC/Linux/cron
をテンプレートにして作成
資料室
PC/Linux/cron をテンプレートにして作成
[
差分
|
バックアップ
|
リロード
]
[ ]
開始行:
* cron
''cron''は,Unix系OS(Linuxのような)で使用される,ジョブ...
Linuxや各種のサーバーで管理を行なう場合,ログのローテート...
このように,定期的に実行されるジョブは''crond''というデー...
** crontab
crontab(クロンタブ)は,cronで管理される定時実行のスケジ...
crontabには,各ユーザ毎の個人用の物と,システム全体用のも...
crontabファイルの各行は,空白またはタブで区切られたフィー...
*** 特殊記号
フィールド中で複数の値を指定するには,いくつかの方法があ...
- コンマ(,)で値のリストを指定する~
例)"1,3,4,7,8"
- ダッシュ(-)で値の範囲を指定する~
例)"1-6"("1,2,3,4,5,6"という指定と同じ意味になる)
- アスタリスク(*)でそのフィールドで取りうる全ての値を表...
例)時をあらわすフィールドでは「毎時」という意味となる。
cron実装によっては,いくつかの追加拡張をおこなっているも...
- スラッシュ(/)で一定値ごとの間隔を表現する
例)時フィールドで"*/3"指定は,"0,3,6,9,12,15,18,21"と同...
つまり,"*"の場合は毎時をあらわすが,"/3"を指定すると,*...
*** フィールド
# (行頭の # マークはコメント行を示す)
# +------------ 分 (0 - 59)
# | +---------- 時 (0 - 23)
# | | +-------- 日 (1 - 31)
# | | | +------ 月 (1 - 12)
# | | | | +---- 曜日 (0 - 6) (日曜日=0)
# | | | | |
# * * * * * 実行されるコマンド
第6フィールド以降の行の残りの箇所に,実行すべきコマンドを...
- 注意すること~
--「曜日」(第5フィールド)では,0,7の両方とも日曜日にな...
--「日」(第3フィールド)および「曜日」(第5フィールド)...
-- コマンド指定において,「%」を使う場合は,エスケープ処...
1 2 3 4 5 touch ~/error_`date "+%Y%m%d"`.txt
これは,間違った指定である。~
1 2 3 4 5 touch ~/right_$(date +\%Y\%m\%d).txt
のようにする。
-- 曜日と時間の指定ミス~
夏時間移行時に備えるために以下のように記述してみた。
59 1 1-7 4 0 /root/shift_my_times.sh
上記は,4月第一日曜日の午前1時59分にコマンド''shift_my_ti...
4月1日から4月7日までの毎日,および,4月中の日曜日全てで,...
これを正しく実行されるようにするには,以下のようにする。
59 1 1-7 4 * test `date +\%w` = 0 && /root/shift_my_time...
-- 2時間毎にジョブを実行しようとした場合~
* 0,2,4,6,8,10,12,14,16,18,20,22 * * * date >> /var/log/...
と記述すると,各偶数時に''毎分''実行されてしまう。~
0 0,2,4,6,8,10,12,14,16,18,20,22 * * * date >> /var/log/...
にすれば,意図したように動作する。
0 */2 * * * date >> /var/log/date.log
これでも,OK.
** /etc/crontabと/etc/cron.d/
''/etc/crontab''と,''/etc/cron.d''以下のものは,どちらも...
特徴は,前半の部分に実行時の環境変数を設定し,その後スケ...
デフォルトは以下のようになっている。
''/etc/crontab''~
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR s...
# | | | | |
# * * * * * user-name command to be executed
環境変数設定部分と,コマンドのスケジュールの部分とに分か...
注意することとして,環境変数,特にPATHを設定していること...
ログイン後のPATHに,実行PATHをいくら設定しておいても''/et...
*** 設定内容
- 環境変数~
-- SHELL~
cronで使用されるシェルを設定する。
-- PATH~
cronに教える,パスの設定をする。~
ここで設定されていないパス上にあるコマンドを実行させる場...
-- MAILTO~
cronの実行結果を送るユーザまたはメールアドレスを指定する。~
メールを送信したくない場合は,''MAILTO=””''と設定する。
-- HOME~
cronが実行される,カレントディレクトリとなる。 ~
-- その他の環境変数~
環境変数を設定したい場合は,任意で設定することが可能。(...
環境変数COMMANDに,logger cornd-testを設定して,それをス...
#!/bin/sh
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
COMMAND=logger cron.d-test
*/3 * * * * root $COMMAND
*/15 * * * * root $COMMAND
18 * * * * root $COMMAND
長いコマンドは,このように環境変数に設定することができる...
*** /etc/cron.dディレクトリ内の書き方
''/etc/crontab''と同じようにすればOK。
注意する点は,
- パーミッションは644~
- 所有者はrootにする
** 各ユーザー用のcron
各ユーザー毎の設定は,ユーザーで路銀した後''crontab -e''...
ユーザー毎のcrontabは,''/var/spool/cron''にユーザー名で...
** うまく動かない場合
cronが動かない場合は,下記のことをチェックする。
- ログを確認~
- メールの確認~
- ファイルのパーミッション・所有者の確認~
- パスの確認~
- 改行コードの確認~
- crondが動作しているか確認~
終了行:
* cron
''cron''は,Unix系OS(Linuxのような)で使用される,ジョブ...
Linuxや各種のサーバーで管理を行なう場合,ログのローテート...
このように,定期的に実行されるジョブは''crond''というデー...
** crontab
crontab(クロンタブ)は,cronで管理される定時実行のスケジ...
crontabには,各ユーザ毎の個人用の物と,システム全体用のも...
crontabファイルの各行は,空白またはタブで区切られたフィー...
*** 特殊記号
フィールド中で複数の値を指定するには,いくつかの方法があ...
- コンマ(,)で値のリストを指定する~
例)"1,3,4,7,8"
- ダッシュ(-)で値の範囲を指定する~
例)"1-6"("1,2,3,4,5,6"という指定と同じ意味になる)
- アスタリスク(*)でそのフィールドで取りうる全ての値を表...
例)時をあらわすフィールドでは「毎時」という意味となる。
cron実装によっては,いくつかの追加拡張をおこなっているも...
- スラッシュ(/)で一定値ごとの間隔を表現する
例)時フィールドで"*/3"指定は,"0,3,6,9,12,15,18,21"と同...
つまり,"*"の場合は毎時をあらわすが,"/3"を指定すると,*...
*** フィールド
# (行頭の # マークはコメント行を示す)
# +------------ 分 (0 - 59)
# | +---------- 時 (0 - 23)
# | | +-------- 日 (1 - 31)
# | | | +------ 月 (1 - 12)
# | | | | +---- 曜日 (0 - 6) (日曜日=0)
# | | | | |
# * * * * * 実行されるコマンド
第6フィールド以降の行の残りの箇所に,実行すべきコマンドを...
- 注意すること~
--「曜日」(第5フィールド)では,0,7の両方とも日曜日にな...
--「日」(第3フィールド)および「曜日」(第5フィールド)...
-- コマンド指定において,「%」を使う場合は,エスケープ処...
1 2 3 4 5 touch ~/error_`date "+%Y%m%d"`.txt
これは,間違った指定である。~
1 2 3 4 5 touch ~/right_$(date +\%Y\%m\%d).txt
のようにする。
-- 曜日と時間の指定ミス~
夏時間移行時に備えるために以下のように記述してみた。
59 1 1-7 4 0 /root/shift_my_times.sh
上記は,4月第一日曜日の午前1時59分にコマンド''shift_my_ti...
4月1日から4月7日までの毎日,および,4月中の日曜日全てで,...
これを正しく実行されるようにするには,以下のようにする。
59 1 1-7 4 * test `date +\%w` = 0 && /root/shift_my_time...
-- 2時間毎にジョブを実行しようとした場合~
* 0,2,4,6,8,10,12,14,16,18,20,22 * * * date >> /var/log/...
と記述すると,各偶数時に''毎分''実行されてしまう。~
0 0,2,4,6,8,10,12,14,16,18,20,22 * * * date >> /var/log/...
にすれば,意図したように動作する。
0 */2 * * * date >> /var/log/date.log
これでも,OK.
** /etc/crontabと/etc/cron.d/
''/etc/crontab''と,''/etc/cron.d''以下のものは,どちらも...
特徴は,前半の部分に実行時の環境変数を設定し,その後スケ...
デフォルトは以下のようになっている。
''/etc/crontab''~
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR s...
# | | | | |
# * * * * * user-name command to be executed
環境変数設定部分と,コマンドのスケジュールの部分とに分か...
注意することとして,環境変数,特にPATHを設定していること...
ログイン後のPATHに,実行PATHをいくら設定しておいても''/et...
*** 設定内容
- 環境変数~
-- SHELL~
cronで使用されるシェルを設定する。
-- PATH~
cronに教える,パスの設定をする。~
ここで設定されていないパス上にあるコマンドを実行させる場...
-- MAILTO~
cronの実行結果を送るユーザまたはメールアドレスを指定する。~
メールを送信したくない場合は,''MAILTO=””''と設定する。
-- HOME~
cronが実行される,カレントディレクトリとなる。 ~
-- その他の環境変数~
環境変数を設定したい場合は,任意で設定することが可能。(...
環境変数COMMANDに,logger cornd-testを設定して,それをス...
#!/bin/sh
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
COMMAND=logger cron.d-test
*/3 * * * * root $COMMAND
*/15 * * * * root $COMMAND
18 * * * * root $COMMAND
長いコマンドは,このように環境変数に設定することができる...
*** /etc/cron.dディレクトリ内の書き方
''/etc/crontab''と同じようにすればOK。
注意する点は,
- パーミッションは644~
- 所有者はrootにする
** 各ユーザー用のcron
各ユーザー毎の設定は,ユーザーで路銀した後''crontab -e''...
ユーザー毎のcrontabは,''/var/spool/cron''にユーザー名で...
** うまく動かない場合
cronが動かない場合は,下記のことをチェックする。
- ログを確認~
- メールの確認~
- ファイルのパーミッション・所有者の確認~
- パスの確認~
- 改行コードの確認~
- crondが動作しているか確認~
ページ名:
Counter: 0, today: 0, yesterday: 0
Copyright©2008 Yuji Ueno All Rights Reserved.
ログイン
ユーザ名:
パスワード:
IDとパスワードを記憶
パスワード紛失
メインメニュー
ホーム
でぶlog
資料室
最新ページ一覧
全ページ一覧
ヘルプ
フォーラム
お問い合わせ