同过Linux邮件备份bitwalute的密钥data文件
背景:aws上部署了bitwalute,里面的db文件就是所有的密码,为了保障db文件的安全,需要定期备份。决定使用脚本把db文件打包,并通过邮件发送到QQmail,实现定期备份。
步骤
mutt 是一个邮件客户端,支持各种协议,有25年历史
安装
以ubuntu为例
sudo apt-get update
sudo apt-get install mutt
配置
这里只需要发送邮件,配置SMTP即可
新建.muttrc
root@aws:~# cat .muttrc
set from = "dyq94310@foxmail.com"
# 来信者名称
set realname = "aws use smtp"
set smtp_url = "smtps://dyq94310@smtp.qq.com"
set smtp_pass = "去生成smtp授权码"
发送邮件
发送纯文本:
-s
: 邮件标题
echo "Body Message" | mutt -s "$(date +%Y%m%d) Testing Email from mutt " dyq94310@foxmail.com
这边可以看到是收到了
发送带附件的文件
-a
可以带上自己的文件
echo "aws backup file" | mutt -s "$(date +%Y%m%d) aws backup file" dyq94310@foxmail.com -a myip
通过邮件发送备份data文件
先把我们需要的文件生成临时tar,发送邮件带上此附件
tar -czf /tmp/vaults.tar.gz --exclude="icon_cache" /root/docker/vaults-compose/data 2>/dev/null && echo "aws backup file" | mutt -s "$(date +%Y%m%d) aws backup file" dyq94310@foxmail.com -a /tmp/vaults.tar.gz
写成定时任务,每天定时发送
# 新建一个发送邮件shell脚本,供定时任务调用
root@aws:~/bin# cat sendmail.sh
#!/bin/sh
tar -czf /tmp/vaults.tar.gz --exclude="icon_cache" /root/docker/vaults-compose/data 2>/dev/null && echo "aws backup file" | mutt -s "$(date +%Y%m%d) aws backup file" dyq94310@foxmail.com -a /tmp/vaults.tar.gz
root@aws:~/bin# crontab -l
33 03 * * * sh /root/bin/sendmail.sh
后记
原本想把vaults的文件推动到OneDrive等网盘,单都比较麻烦,最后使用STMP发送到邮件解决,简单又实用。