내 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
루트로 실행하는 것을 잊지 마세요.