私のFTPサーバーにログをアップロードするための短いスクリプトを書いています。 rsyslogを再起動する必要がある最後の行を除くすべてのエントリを無視できます。コマンドラインからコマンドを実行すると正常に動作しますが、スクリプトファイル内では機能しません。誰でも助けることができますか?
#!/bin/bash
mv /var/log/rtx8660.log /home/vocovo/RTX8660_$(date +"%Y-%m-%d-%H_%M").log
touch /var/log/rtx8660.log
cd /home/vocovo
FTPLOG=/tmp/ftplogfile
ftp -inv <<! > $FTPLOG
open SERVER
user USER PASS
cd /Wickes_Test
prompt
mput RTX*
close
quit
!
FTP_SUCCESS_MSG="226 Transfer complete"
if fgrep "$FTP_SUCCESS_MSG" $FTPLOG ;then
echo "ftp OK"
rm RTX*
else
echo "ftp Error: "$OUT
fi
exit 0
service rsyslog restart
答え1
最後の行は、以前にスクリプトを終了したため実行されません。
exit 0
スクリプトの最後の行でなければなりません。
答え2
どのバージョンのDebianにも言及していませんが、init.dに渡されたバージョンを使用していると仮定すると、次のことを試すことができます。
/etc/init.d/rsyslog restart
ルートとして実行することを忘れないでください。