cronでclamscanを実行するためのログファイルを生成するためにbashスクリプトを有効にするにはどうすればよいですか?

cronでclamscanを実行するためのログファイルを生成するためにbashスクリプトを有効にするにはどうすればよいですか?

clamscanbashでカスタム()を生成し、clamavそれをシェルで実行するとすべては問題ありませんが、aで実行するとcronログファイルの生成に失敗します。

エラーは次のとおりです。

  1. /root/Scripts/clamscan: 行 9: /var/log/clamscan/weekly/clamscan-Test-2014-09-16.log: そのファイルやディレクトリはありません。
  2. /bin/bash: /root/Scripts/clamscan: 権限が拒否されました。
  3. 私もcronから電子メールを受け取りました。メッセージ本文が空であることを願っています。
  4. 「できれば」メールを受信する前に、メッセージのない空のメールを受信しました。

シェルでスクリプトを実行すると、問題なくログファイルが生成されます。

質問:

  1. bash script適切なファイルに書き込むにはどうすればよいですか?
  2. これらのエラーが発生するのはなぜですか?

スクリプトは次のとおりです。

#!/bin/bash
FILENAMEDATE=$(date +"%F")

/usr/bin/clamscan -i -r --log=/var/log/clamscan/weekly/clamscan-Test-$FILENAMEDATE.log /home/Username/Downloads >/dev/null 2>/dev/null

if [ $? -gt 0 ];
then
SUBJECT="Virus Report for `uname -n`, `date +%m-%d-%Y`"
mail -s "$SUBJECT" 'Email' < /var/log/clamscan/weekly/clamscan-Test-$FILENAMEDATE.log
fi

これは/etc/crontabです:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO="Email"

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
 56 13  *  *  * root  /bin/bash /root/Scripts/clamscan

ベストアンサー1

clamscanが出力にログファイルを生成しないようです。 scan.logを変更しclamscan blah blah >/dev/null 2>/dev/nullclamscan blah blah &>/tmp/scan.log確認してください。ヒントがあるかもしれません。

おすすめ記事