我编写了一个简短的脚本来将日志上传到我的 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
记住以 root 身份运行。