如何解决rsync备份脚本在失败时报告成功退出代码等
我正在运行一个脚本,该脚本可以将2个MySQL转储和3个rsync从不同的源发送到不同的目标
在测试的过程中,我一直在不停地退出脚本,因为我仍然很在意它,脚本应该已经生成了退出代码1,但是当我收到脚本时,有时会生成退出代码0。成功电子邮件。
有没有一种方法可以将rsync作为一个命令运行,因为这可能无济于事,或者每个“任务”都可以分开,因此有自己的退出代码?
是否可以将整个脚本的所有输出记录到日志文件中,而不是在rsync命令中写入不同的日志?
#!/bin/bash
LOGFILE="/root/b.log"
SENDER="root@x.x.com"
RECIPIENT="x@x.com"
echo "Running ... MySQL Dump"
mysqldump ...
echo "Running ... MySQL Dump"
mysqldump ...
echo "Running Apache Rsync"
rsync -a /var/www/ DESTINATION --no-compress --password-file=/root/p --progress >> /root/b1.log 2>&1
echo "Running folder1/ Rsync"
rsync -a /usr/local/folder/ DESTINATION --no-compress --password-file=/root/p --progress >> /root/b2.log 2>&1
echo "Running folder2 Rsync"
rsync -a /usr/local/folder2/ DESTINATION --no-compress --password-file=/root/p --progress >> /root/b3.log 2>&1
if [[ $? -eq 0 ]]; then
SUBJECT="x- Daily Rsync Report - SUCCESS"
echo "Backup Process was Successful"
echo "Sending Email..."
echo "$(cat /root/b1.log) $(cat /root/b2.log) $(cat /root/b3.log)" | mail -s "$SUBJECT" -r "$SENDER" -a "$LOGFILE" "$RECIPIENT"
echo "Email Sent."
rm /root/b.log
else
SUBJECT="x- Daily Rsync Report - FAILED"
echo "Backup Process was UNSUCCESSFUL"
echo "Sending Email..."
echo "$(cat /root/b1.log) $(cat /root/b2.log) $(cat /root/b3.log)" | mail -s "$SUBJECT" -r "$SENDER" -a "$LOGFILE" "$RECIPIENT"
echo "Email Sent."
rm /root/b.log
exit 1
fi
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。