Solaris cronがある日を境に突然実行されなくなった
- 2009.01.13
- Solaris
Cronから呼ばれるスクリプトが動いていない。昨年までは普通に動いていたのに…。年が明けて、2008年になったので年度処理が上手くいっていないと思ったが、スクリプト自体は手動で問題なく動く。
で、調べたところ原因は実行ユーザーのパスワードが期限切れだった。
■rootユーザで、cronのログを監視する
rootユーザでtailコマンドを実行して、cronの動作状況をリアルタイムで監視する。
# tail -f /var/cron/log
■cronの実行ユーザでログインして、cronを実行る
別のターミナルで、普段cronを実行しているユーザでログインする。
crontab -l で、実行時間を調べる。
たいていの場合、夜中にスクリプトを実行するんだけど、それまで待っていられません。
1〜2分後に起動するように dateコマンドで、現在時刻を調べてcrontabのスクリプトが1〜2分後に起動するようにする。
■cronのログを監視する
# tail -f /var/cron/log > CMD: /export/home/foo/Scripts/Test.sh > foo 7689 c Tue Jan 13 02:42:00 2009 ! user (foo) password has expired Tue Jan 13 02:42:00 2009 < foo 7689 c Tue Jan 13 02:42:00 2009 rc=1
なんと、パスワードが期限切れということが発覚!
なんでこんなことになったかというと、パワーブローカーなるもので最初にrootでログインするサーバだったので、普段直接fooでログインすることが無いので気づかなかったのです。
ウチの場合、サーバのセットアップ等は、米国のITの管理部門が行うので自分ではいじれないのが悲しい。
まぁ、こういう状況の人って少ないと思う。
ちなみに passwd -s ユーザ名 で有効期限が分かる。
passwd -x -1 ユーザ名 で有効期限を解除できる。
-
前の記事
ZABBIXのインストール-1 サーバ編(SQLite) 2008.12.31
-
次の記事
Solaris ユーザーのパスワード有効期限を解除、無効にする 2009.01.13