1

私はUbuntuServer10を持っています。

ルートcronには、毎日同じ時間に実行するスクリプトがあります。

スクリプトを手動で実行すると正常に実行されますが、cronでは実行されません。

syslogで私はこれを手に入れました:

Aug 23 09:22:01 database CRON[6884]: (root) CMD (./bkp.sh >> /tmp/bkp.log)
Aug 23 09:22:01 database CRON[6883]: (CRON) error (grandchild #6884 failed with exit status 2)

問題の考えられる原因を見つけました。スクリプトにいくつかのログ(エコー)を追加しました...

スクリプトの実行中に、「関数」定義で終了します。

コマンド「function」にアクセスできないようです

どうすればこれを解決できますか?

4

3 に答える 3

0

これは、「cron環境変数」をグーグルで検索しているときに取得したリンクです。それは役立つかもしれません。それのような他の多くがあります:)

于 2012-08-23T12:55:29.480 に答える
0

によって起動されるシェルスクリプトは、cron実行されている環境を注意深く指定する必要があります。実行されるシェルはcron非対話型になります。つまり、通常設定されている/etc/profile場所では読み取りが行われません。$PATHこれは、スクリプトで呼び出されるすべての実行可能ファイルへのパスを指定する必要があることを意味します。

多くのcronスクリプトを実行する場合は、スクリプト内で使用される環境変数を定義およびエクスポートする小さなシェルスクリプトを作成することをお勧めします$PATH

于 2012-08-23T12:43:43.257 に答える
0

次のディレクトリ内にスクリプトを配置すると、毎日実行されます。

/etc/cron.daily/
于 2012-08-23T14:27:17.640 に答える