Hatena::Groupmylinux

今日も元気にlinux

2008-12-08

[][]crontabで設定したタスク実行時に、メールを送信しないようにする。 09:39 crontabで設定したタスク実行時に、メールを送信しないようにする。 - 今日も元気にlinux を含むブックマーク はてなブックマーク - crontabで設定したタスク実行時に、メールを送信しないようにする。 - 今日も元気にlinux crontabで設定したタスク実行時に、メールを送信しないようにする。 - 今日も元気にlinux のブックマークコメント

crontab -e で30分に1回タスクを動かしてるんだが、30分に1回メールが飛んできてウザい!cronの設定でメールを飛ばさないようにしたい!と思い、/etc/crontabファイルを編集。

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
#MAILTO=root
MAILTO=""
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

cronは1分に1回設定ファイルを見ているらしいから、これでメール来なくなるよね…と思いきや引き続き来る。念のため service crond restart したけれどそれでも来る。こりゃおかしいと思いいろいろ調べると/etc/anacrontabというファイルがあり、そっちの設定を変更しなければいけない様子。

no title

上記サイトの説明では、結局cronからanacronが呼ばれるので、anacronの設定ファイルを編集しないといけないみたい。

# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=""

1       65      cron.daily              run-parts /etc/cron.daily
7       70      cron.weekly             run-parts /etc/cron.weekly
30      75      cron.monthly            run-parts /etc/cron.monthly

上記のようにMAILTOを編集したところ、めでたくメールが来なくなりました…と言いたい所だけどまだ来る!なんで!?

実はcrontab -e で設定するのでした。

どうやらcronには2つの動かし方があるらしく。

1./etc/crontabに記載されている以下のディレクトリスクリプトを設置し、時次、日次、週次、月次タスクとして動かす。この場合は/etc/crontabのMAILTOオプションが有効になる。

  • /etc/cron.hourly
  • /etc/cron.daily
  • /etc/cron.weekly
  • /etc/cron.monthly

2.crontab -eで設定ファイルを呼び出し、自分の好きな時間にcronを実行するようにする。この場合、スクリプトの標準出力がcrontabを設定したユーザーにメール送信される。そしてcrontab -eの設定ファイルは**/var/spool/cron/user**にある。なんと分かりにくい…。

ということで、以下のように標準出力をブラックホールに投げてやればメールは来なくなる。

crontabコマンドの使い方: UNIX/Linuxの部屋

# 標準出力のみメールしない場合
* * * * * command 1> /dev/null

# 標準エラーもメールしない場合
* * * * * command >/dev/null 2>&1

HappyHappy2011/10/18 12:32With all these silly wsebites, such a great page keeps my internet hope alive.

jfebneptjfebnept2011/10/19 02:32atANJv <a href="http://xyolhhpmxqxp.com/">xyolhhpmxqxp</a>

yyxgssmbajtyyxgssmbajt2011/10/20 23:48Eq5Orf , [url=http://jbiviyjgtyqg.com/]jbiviyjgtyqg[/url], [link=http://hfqppleurjoo.com/]hfqppleurjoo[/link], http://mbakfxwtkrxp.com/

DanylloDanyllo2012/08/24 17:30I rcoekn you are quite dead on with that.

hpzvijhpzvij2012/08/27 00:04uWzk4f <a href="http://rgxaozfhlnhn.com/">rgxaozfhlnhn</a>

eymppwloxeymppwlox2012/08/27 22:21G5QhMn , [url=http://cdnwloxejnvq.com/]cdnwloxejnvq[/url], [link=http://oywytudxzawt.com/]oywytudxzawt[/link], http://iyaefsvminzy.com/

2008-09-10

[][]CentOSでのcronの使い方。 22:13 CentOSでのcronの使い方。 - 今日も元気にlinux を含むブックマーク はてなブックマーク - CentOSでのcronの使い方。 - 今日も元気にlinux CentOSでのcronの使い方。 - 今日も元気にlinux のブックマークコメント

3ヶ月くらい放置していたわりにはコマンド結構覚えててびっくり、もとい良かった。

あるタスクを決まった周期で実行するためのコマンドとして、Windowsではschtasksがあるように

Linuxではcronというやつがあります。

crontab -e

で、現在のスケジュール定義を規定のエディタで開く。そこに

*/30 * * * * ruby /home/samba/scr/get_rootip.rb

と書いてやる。時間の単位は5段階あって右から

分 時 日 月 曜日

となる。アスタリスクを使用した単位は毎分/毎時/毎日/毎月/毎曜日となり

なんらかの数字を入力した単位は、その通りのタイミングで動作する。詳しくは以下の通り。

ページが見つかりませんでした –  Dream Seed

分:0~59で指定します。*(ワイルドカード)も使用可能です。 
時:0~23で指定します。*(ワイルドカード)も使用可能です。 
日:1~31で指定します。*(ワイルドカード)も使用可能です。 
月:1~12で指定します。*(ワイルドカード)も使用可能です。また、月の名前の最初の3文字で指定することもできます。jun、julなど。 
曜日:0~7で指定します。*(ワイルドカード)も使用可能です。0と7が日曜日で6が土曜日です。また、sun等の名前で指定することもできます。 
コマンド:cronが実行するコマンドです。当然実行可能なものでなければいけません。
日付、時間の部分は範囲指定が可能です。例えば1時、2時、3時なら
時間のフィールドに「1,2,3」と書く代わりに「1-3」と書けます。
また、何分おき(あるいは何時間おき)という場合は「*/」の後に書きます。
2時間おきなら「*/2」です。「1,4,7,10」は「1-10/3」と書くこともできます。

今回は自宅ルータIPFTPサーバにアップするスクリプトを30分毎に動かすように設定しました。

ちなみに設定ファイルは"/var/spool/cron"以下に作られ、

cronのログは"cat var/log/cron"で閲覧できるので覚えておこう。

システムが使用する定期処理用のディレクトリ

/etc/crontabはシステムが使用するcronリストです。

  • /etc/cron.hourly
  • /etc/cron.daily
  • /etc/cron.weekly
  • /etc/cron.montyly

に詳しい設定内容が書かれています。

※"主にシステムが使用する"だけで、自分でここに設定を書いてしまってもいいです。

ただ一般的には前出の crontab -e でユーザー定義を呼び出して設定するみたいです。