Ticket #26416

シェルサーバの cron ジョブ

Open Date: 2011-09-28 13:16 Last Update: 2011-09-29 12:21

Reporter:
Owner:
(None)
Type:
Status:
Closed
Component:
MileStone:
(None)
Priority:
1 - Lowest
Severity:
1 - Lowest
Resolution:
Works For Me
File:
None

Details

お世話になっております。

shell.sourceforge.jp 上のユーザ haradats の crontab により 一時間に一度 svn update がかかるようになっている筈ですが、 昨日から一度も実行されていないように見えます。

お手数ですがご確認願えますでしょうか?

Ticket History (3/5 Histories)

2011-09-28 13:16 Updated by: kumaneko
  • New Ticket "シェルサーバの cron ジョブ" created
2011-09-28 13:48 Updated by: ishikawa
  • Resolution Update from None to Works For Me
  • Status Update from Open to Closed
  • Ticket Close date is changed to 2011-09-28 13:48
Comment

cron のログを確認しましたが、おそらく以下の job のことだと思われますが cron job 自体は実行されています。

(本日分のみ抜粋)

Sep 28 00:45:01 sf-usr-shell /USR/SBIN/CRON[32730]: (haradats) CMD (/home/users/h/ha/haradats/bin/updaterepos.sh)
Sep 28 01:45:01 sf-usr-shell /USR/SBIN/CRON[4127]: (haradats) CMD (/home/users/h/ha/haradats/bin/updaterepos.sh)
Sep 28 02:45:01 sf-usr-shell /USR/SBIN/CRON[6819]: (haradats) CMD (/home/users/h/ha/haradats/bin/updaterepos.sh)
Sep 28 03:45:01 sf-usr-shell /USR/SBIN/CRON[9184]: (haradats) CMD (/home/users/h/ha/haradats/bin/updaterepos.sh)
Sep 28 04:45:01 sf-usr-shell /USR/SBIN/CRON[12102]: (haradats) CMD (/home/users/h/ha/haradats/bin/updaterepos.sh)
Sep 28 05:45:01 sf-usr-shell /USR/SBIN/CRON[14914]: (haradats) CMD (/home/users/h/ha/haradats/bin/updaterepos.sh)
Sep 28 06:45:01 sf-usr-shell /USR/SBIN/CRON[21844]: (haradats) CMD (/home/users/h/ha/haradats/bin/updaterepos.sh)
Sep 28 07:45:01 sf-usr-shell /USR/SBIN/CRON[28580]: (haradats) CMD (/home/users/h/ha/haradats/bin/updaterepos.sh)
Sep 28 08:45:01 sf-usr-shell /USR/SBIN/CRON[2954]: (haradats) CMD (/home/users/h/ha/haradats/bin/updaterepos.sh)
Sep 28 09:45:01 sf-usr-shell /USR/SBIN/CRON[9769]: (haradats) CMD (/home/users/h/ha/haradats/bin/updaterepos.sh)
Sep 28 10:45:02 sf-usr-shell /USR/SBIN/CRON[17028]: (haradats) CMD (/home/users/h/ha/haradats/bin/updaterepos.sh)
Sep 28 11:45:01 sf-usr-shell /USR/SBIN/CRON[23221]: (haradats) CMD (/home/users/h/ha/haradats/bin/updaterepos.sh)
Sep 28 12:45:01 sf-usr-shell /USR/SBIN/CRON[30094]: (haradats) CMD (/home/users/h/ha/haradats/bin/updaterepos.sh)

システム的には異常はない状態ですので、実行しているスクリプトがなんらかエラーになっていないかご確認ください。

2011-09-28 14:21 Updated by: kumaneko
Comment

手動で実行したらエラーなく動作したとのことです。 もう少し様子を見てみることにします。

ありがとうございました。

2011-09-29 12:11 Updated by: kumaneko
Comment

手動で実行したらエラーなく動作したとのことです。

手動で実行したのは updaterepos.sh ではなくて svn update だったそうです。

updaterepos.sh 内に

svn -q update >&/dev/null

という行があり、つい先日までは正常に動いていたそうです。

しかし、手動で updaterepos.sh を実行してみたところ、 Syntax error: Bad fd number というエラーが出るようになっていたそうです。

今まで正常に動作していた >&/dev/null が突然 Syntax error: Bad fd number という エラーになった理由は不明ですが、 >&/dev/null を > /dev/null に修正することで 正常に動作するようになったとのことです。

ありがとうございました。

2011-09-29 12:21 Updated by: ishikawa
Comment

kumaneko への返信

手動で実行したらエラーなく動作したとのことです。

手動で実行したのは updaterepos.sh ではなくて svn update だったそうです。 updaterepos.sh 内に svn -q update >&/dev/null という行があり、つい先日までは正常に動いていたそうです。 しかし、手動で updaterepos.sh を実行してみたところ、 Syntax error: Bad fd number というエラーが出るようになっていたそうです。 今まで正常に動作していた >&/dev/null が突然 Syntax error: Bad fd number という エラーになった理由は不明ですが、 >&/dev/null を > /dev/null に修正することで 正常に動作するようになったとのことです。

OSのアップグレードのアナウンスにも書きましたが、/bin/sh が bash から dash に変更されています。

「>& のみ」の redirect は bash では syntax 的に許容されているようですが、厳密には posix sh の構文上は 許容されてない(定義されてないが正解かもしれません)ですので #!/bin/sh なスクリプトでは他の環境 (dash以外のposix sh互換環境)でもエラーになる可能性があります。

bash 拡張を利用したスクリプト(bashでの利用を想定したスクリプト)を利用する場合は、スクリプトの先頭は

  1. #!/bin/bash

と明示的にbashを指定してください。

Attachment File List

No attachments

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login