0

おそらく簡単な質問ですが、私は混乱しています:

次のスクリプトを手動で実行すると、正常に動作します。このスクリプトをユーザーgitとして実行しているのではなく、ユーザーXIとして、gitユーザーのホームディレクトリに適用されるlsコマンドとduコマンドを使用できます。このスクリプトをcronジョブで実行しようとすると、これら2つのコマンドは定期的に呼び出されません。理由はわかりません。cmd-fileの最初の「extern」呼び出しは、どちらの場合も完全に機能し、通常の出力を生成します。

私が気づいたこと:./ runbackup.shを使用してユーザーXとしてスクリプトを実行することができ、ユーザーのホームディレクトリに保存されます。

CronはユーザーXの特権で実行されます。

紛らわしい...:/ ...何かアイデアはありますか?

スクリプト:runbackup.sh:

#!/bin/bash

/cygdrive/e/xp-batches/backup.cmd > info.log
echo "### CURRENT HOMEDIR ###" >> info.log
ls -gh --block-size=K /home/git >> info.log
echo "### SIZE ###" >> info.log
du -hs /home/git >> info.log
email -s "Backup Status" dum@dio.com < info.log
4

1 に答える 1

1

cronが提供する環境については何も想定しない方がよいでしょう。フルパスを使用します。

/ bin / ls -gh --block-size = K / home / git >> info.log

単なる「ls」の代わりに。

ああ、おそらくinfo.logの代わりに絶対パスを使用することもできます。

于 2012-05-18T22:52:34.977 に答える