Linux自动打包文件并发送邮件备份
服务器上安装了个密码管理的工具,为了实现定时备份并发送到我邮箱里,参考网上资料,整理了以下脚本,方便实用,有需要的可以参考。
#!/bin/sh
#保存时间(天)
save_days=1
#删除指定目录中大于指定时间的.tar.gz文件(用以删除上次打包的备份)
find /root/Vault*.tar.gz -mtime +$save_days -exec rm -rf {} \;
#构建数据库文件名称
d=`date "+%Y-%m-%d"`
#注意-c参数,到/mnt/bitwarden目录下打包data文件夹,并将打包的文件保存到/root/目录下
tar -czvPf /root/Vault-$d.tar.gz -c /mnt/bitwarden data
#发送邮件的标题和内容
title="Vault-Backup-$d"
content="Hello,Master!Vault backup has been completed!Backup Time:$d"
#用自带的mail发邮件,需要配置/etc/mail.rc,在最后添加smtp信息,需要使用25端口
echo "$content" | mail -s "$title" -a /root/Vault_$d.tar.gz i@iyuren.com
#退出当前脚本
exit
注意:linux使用邮件的配置和详细设置请参考《Linux通过配置第三方smtp来发送邮件》。
注意:如果需要排除dada目录下某个目录,可以使用--exclude参数,比如要排除data目录下logs目录:
tar -czvPf /root/Vault-$d.tar.gz -c /mnt/bitwarden --exclude=data/logs data
排除多个data目录下的多个目录,如logs,ico这两个目录:
tar -czvPf /root/Vault-$d.tar.gz -c /mnt/bitwarden --exclude=data/logs --exclude=data/ico data