记录一些常用的函数和瞎折腾的过程……

Linux自动打包文件并发送邮件备份

提醒:本文最后更新于 1789 天前,文中所描述的信息可能已发生改变,请谨慎使用。

服务器上安装了个密码管理的工具,为了实现定时备份并发送到我邮箱里,参考网上资料,整理了以下脚本,方便实用,有需要的可以参考。

#!/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