毎朝10:00に、crontabはbashスクリプトでこのコマンドを実行するように設定されています(以下の日付は例であり、スクリプトでlinux dateコマンドを使用して計算されます)。
hg log -R some-repo -b some-branch --date "2012-11-28 10:00 to 2012-11-29 10:00"
上記のコマンドは、すべての開発者がコードをプッシュするリモートリポジトリを備えたサーバーで実行されます。出力は文字列に保存され、電子メールで送信されます。しかし、それは常に空です!数分後にスクリプトを手動で実行すると、期待どおりの出力が得られます。
スクリプトがcrontabによって実行される前の履歴を比較し、何かが実際にリモートリポジトリにコミット/プッシュされていることを確認しました。
上記のスクリプトを10:00以降に実行すると、10:00に実行した場合ではなく、正しい出力が得られる理由はありますか?
スクリプトでは、これを行います。
logString=$(hg log -R "$path-to-repo" -b $branch --date "$YESTERDAY to $TODAY")
if [ -z "$logString" ]; then
logString="Nothing"
fi
編集:スクリプトがcrontabによって実行される場合にのみ、hgログは空になります。
解決済み:cronが表示するには、hg(/ usr / local / bin / hg)へのフルパスを指定する必要がありました。svnへのフルパスを必要とせず、hgへのフルパスがなくても以前は正常に機能していたため、少し奇妙です。
cronがPATHに何を持っているかを確認するにはどうすればよいですか?