Linux下通过Email定时备份数据(mutt+msmtp)
以前一直在用的备份到百度网盘的脚本前段时间不能用了,没有找到修复方案。因为自己的vps数据比较少,于是就想到可否通过邮件的方式进行备份,经过一系列的折腾终于通过mutt+msmtp的方式实现。
下面的步骤在Ubuntu20.04下测试通过。
1.安装mutt msmtp
sudo apt install mutt msmtp
2.配置msmtp
vim ~/.msmtprc
defaults
account default
host smtp.XX.com
port 465
from XX@XX.com
auth login
tls on
tls_starttls off
user XX@XX.com
password XXXXXXXXXXXXX
3.配置mutt
vim ~/.muttrc
set envelope_from=yes
set from="XX@XX.com"
set realname="XXXX"
set use_from=yes
set sendmail="/usr/bin/msmtp"
4.创建备份脚本
新建vpsbackup
文件夹,并创建vpsbackup.sh
脚本
mkdir vpsbackup
cd vpsbackup
vim vpsbackup.sh
#!/bin/sh
# 常规定义
MYSQL_USER="root"
MYSQL_PASS="password"
BACK_DIR="/root/vpsbackup/backup"
# 指定备份邮箱地址
TO_MAIL="xx@XX.com"
# 备份数据目录
NGINX_DATA="/usr/local/nginx/conf"
BACKUP_DEFAULT="/home/wwwroot"
# 定义备份文件名
mysql_DATA=mysql_$(date +%Y%m%d).tar.gz
www_DEFAULT=www_$(date +%Y%m%d).tar.gz
nginx_CONFIG=nginx_$(date +%Y%m%d).tar.gz
# 判断本地备份目录,不存在则创建
if [ ! -d $BACK_DIR ] ;
then
/bin/mkdir -p "$BACK_DIR"
fi
# 进入备份目录
cd $BACK_DIR
# 备份所有数据库
# 导出需要备份的数据库,清除不需要备份的库
mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' > $BACK_DIR/databases.db
sed -i '/performance_schema/d' $BACK_DIR/databases.db
sed -i '/information_schema/d' $BACK_DIR/databases.db
sed -i '/mysql/d' $BACK_DIR/databases.db
for db in $(cat $BACK_DIR/databases.db)
do
mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > $BACK_DIR/${db}.sql.gz
done
rm -rf databases.db
# 打包数据库
tar -zcvf $BACK_DIR/$mysql_DATA *.sql.gz --remove-files >/dev/null 2>&1
# 打包本地网站数据
tar -zcvf $BACK_DIR/$www_DEFAULT $BACKUP_DEFAULT >/dev/null 2>&1
# 打包Nginx配置文件
tar -zcvf $BACK_DIR/$nginx_CONFIG $NGINX_DATA >/dev/null 2>&1
# 发送邮件
echo "$(date +%Y-%m-%d)-backup-files!!!" | /usr/bin/mutt -s "$(date +%Y-%m-%d)-backup" -a $BACK_DIR/$nginx_CONFIG $BACK_DIR/$mysql_DATA $BACK_DIR/$www_DEFAULT -- $TO_MAIL
# 删除所有文件
#rm -rf $BACK_DIR
# 删除3天以前的文件
find *.gz -mtime +3 -print|xargs rm -f;
exit 0
5.创建计划任务
创建一个每天23点执行一次的计划任务
crontab -e
* 23 * * * /root/vpsbackup/vpsbackup.sh
enjoy it!
本文作者:Lyvnee
文章标题: Linux下通过Email定时备份数据(mutt+msmtp)
本文地址:https://lyvnee.com/post-195.html
版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
本文地址:https://lyvnee.com/post-195.html
版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。