[原创]linux 下使用TAR分卷打包自动增量备份网站和数据库并发送到指定邮箱
#!/bin/bash
creates backups of essential files
#邮件收件人
MAIL_TO=”932256355@qq.com”
#邮件密送收件人
Mail_bcc=”tekin@163.com”
SERVER_IP=”104.128.83.51”
URL=”chuangxin.biz”
#需要备份的文件夹绝对路径
DATA_ForBakup=”/home/web/${URL}/www/“
#tar网站打包分卷大小
Tar_Size=”49m”
#邮件收件人
MAIL_TO=”932256355@qq.com”
#邮件密送收件人
Mail_bcc=”tekin@163.com”
#mysql用户名
Mysql_User=”root”
#mysql密码
Mysql_Pass=”888888”
#Mysql数据库名
MysqlName=”dbname”
MysqlBakName=Mysql${MysqlName}$(date +%Y%m%d_%H%M%S)
#mysql数据库的bin安装目录,rpm自动安装的一般都为 /usr/bin/
Mysql_Bin_Dir=”/usr/local/mysql/bin/“
Web_BackupName=${URL}$(date +%Y%m%d_%H%M%S).tgz
save_to=”/home/backup/${URL}/“
if [ ! -d $save_to ]; then
mkdir -p $save_to
fi
incremental_file=”/home/backup/${URL}_increment_file.txt”
cd ${save_to}
#删除1天前的备份文件名
rm -rf ${URL}_$(date +%Y%m%d -d “1 days ago”)*
#mysql数据库备份
${Mysql_Bin_Dir}/mysqldump -u ${Mysql_User} -p${Mysql_Pass} ${Mysql_Name} | gzip -9 - > ${save_to}/${MysqlBakName}.sql.gz
#压缩数据库数据
tar zcfP $MysqlBakName.tgz ${MysqlBakName}.sql.gz
rm -f ${MysqlBakName}.sql.gz
#tar网站增量备份
tar -g $incremental_file \
-C $DATA_ForBakup \
–exclude cache \
-cpzf - . |split -b ${Tar_Size} -d -a 1 - ${Web_Backup_Name}.
chmod -R 755 $save_to
#============ get the file name and add mutt atach var ===========
Output_file=”atachfile.txt”
#清空Output_file文件的内容
: > $Output_file
#循环读取备份的文件名
for file_a in ${save_to}${Web_Backup_Name}*; do
temp_file=basename $file_a
echo -n \ -a \ ${temp_file} >> ${Output_file}
done
#读取文件并赋值给$Att_Files
Att_Files=$(cat $Output_file)
#Mutt Sendmail 发送备份文件到邮箱
echo “ $URL 网站增量全备份完成!服务器IP:$SERVER_IP 网站备份文件名:$Web_Backup_Name 数据库备份文件名:$MysqlBakName.tgz “ | mutt $MAIL_TO -b $Mail_bcc -s “$Web_Backup_Name增量+数据库备份 $SERVER_IP “ -a $MysqlBakName.tgz $Att_Files
#查找并删除7天前的所有备份文件
find $save_to -name “.tgz.“ -type f -mtime +7 -exec rm {} \; > /dev/null 2>&1
本站原创文章,转载请注明本站链接http://blog.chuangxin.biz
最后更新: 2018年02月02日 23:25
原始链接: http://tekin.yunnan.ws/Shell编程学习/201407/05-linux-tar-split-backup-web.html