Bashスクリプトでサービスを再起動するには?

Bashスクリプトでサービスを再起動するには?

私の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

ルートとして実行することを忘れないでください。

関連情報