备份脚本已挂起

玩世不恭

我有一个备份脚本,可以作为cron作业运行,并创建/ var / log / messages /的每日备份。请注意,此脚本比实际应用更多的是为了学习经验。我已经添加了if / else语句,以在执行tar命令后检查退出代码。该脚本之前运行良好,但是在我添加了此功能后,该脚本挂起了。代码如下:

#!/bin/bash

admin="[email protected]"
of=messages-backup-$(date +%Y%m%d).tgz

cd /var/log/

tar -czvf $of messages

if [ $? -eq 0 ]; then
  mail -s "Backup of /var/log/messages was successful!" $admin
  exit 0
else
  mail -s "Backup of /var/log/messages has failed!" $admin
  exit 1
fi

cp $of /home/user/
rm -rf $of

输出:

[root@nidesant2 Scripts]# ./backup.sh 
messages
^C
(Interrupt -- one more to kill letter)
迈克

改变

mail -s "Backup of /var/log/messages was successful!" $admin

echo hello | mail -s "Backup of /var/log/messages was successful!" $admin

或者

mail -s "Backup of /var/log/messages was successful!" $admin < /dev/null

第一种选择是,您可以在邮件正文中使用所需的任何文本。第二个选项将发送带有空消息正文的电子邮件。对第二封电子邮件命令重复相同的更改,以确保备份失败。

出于学习目的,应在确定成功之前检查创建tar文件,复制和删除该文件的成功完成。为此,您可以这样做。

改变

tar -czvf $of messages

tar -czvf $of messages && cp $of /home/user/ && rm -rf $of

而且,这种变化,你会移除cp $of /home/user/rm -rf $of从剧本的结尾。

然后,您的if / else将基于所有三个命令的成功完成或该字符串中三个命令中的任何一个命令的不成功执行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章