0

レポートを実行し、結果をユーザーの〜/.bashrcファイルで定義されたアドレスに電子メールで送信するcronジョブを作成しようとしています。これはFedoraで完全に機能していましたが、Ubuntuに切り替えると、ソリューションが機能しなくなりました。私のcronジョブが現在実行しているコマンドは次のとおりです。

. /home/myuser/.bashrc; /home/myuser/bin/runreport

そのコマンドを手動で実行するか、Gnome-Scheduleを介して開始すると、完全に機能しますが、実行されないようです。これが実行されるのを妨げるUbuntuに固有の何かがありますか?

crontab -lの出力:

0 8 * * * . /home/myuser/.bashrc; /home/myuser/bin/runreport # JOB_ID_1

grep -i cron / var / log / syslogの出力:

Aug  4 08:00:00 localhost CRON[23234]: (myuser) CMD (. /home/myuser/.bashrc; /home/myuser/bin/runreport # JOB_ID_1)
4

1 に答える 1

3

がスクリプトの場合/home/myuser/bin/runreportは、次の 2 行を先頭に追加します。

env
set -x

crontab行を次のように変更します。

. /home/myuser/.bashrc ; /home/myuser/bin/runreport >/tmp/qq 2>&1

次に、実行すると、すべての環境変数と実行されたコマンドが/tmp/qqファイルに含まれているはずです。

スクリプトでない場合は、それを呼び出すスクリプトを作成し、それにenv行を追加します。これにより、少なくとも実行している環境が得られます。

于 2010-08-04T12:41:03.630 に答える