脚本实现的功能是,备份mysql数据库与binlog日志,存储到备份文件夹(一日期命名)。
备份条件有 备份文件保留90天。 超过九十天的文件夹 day的值与10取余
如果不能够整除,就将文件夹清理掉。如果能够整除就将文件夹,移动到longbackup(长期备份路径)。文采不好,乱喷,自己写的脚本免费分享给你们,要是这样还被喷的话,以后也就不会分享了。
#!/bin/bash
#mysql_backup.sh
#Backup database and cleanup scripts
backup_dir="/www/mysqlbackup/" #备份路径
dirname=`date +%Y%m%d` #备份文件夹名称
binlog_dir="/www/mysql/3306/" #binlog日志路径
longbackup="/www/mysqlbacup/longbackup/" #存储保存两年以上备份文件的路径
mkdir -p ${backup_dir}${dirname} #创建备份目录
/usr/local/mysql/bin/mysqldump yungou > ${backup_dir}${dirname}/mysql_${dirname}.sql #备份数据库
cp -a ${binlog_dir}/binlog.[0-9]* ${backup_dir}${dirname} #备份binlog日志文件
files=`ls -lt ${backup_dir}|tac|awk '{print $9}'` #备份路径下所有目录名以升序排列
days=`find ${backup_dir} -type d|grep -v longbackup |grep -v ''|wc -l` #备份目录下文件夹个数与91进行比较判断是否已备份够91天文件(当日文件也算)
number_day=`echo "scale=0;${days}-1"|bc` #文件数-1 是因为find命令查找出来的有一个当前路径所以-1
if [ ${number_day} -eq 91 ];then #判断是否已备份90天
dir_one=`echo ${files}|awk '{print $1}'` #取出备份目录下第一个文件夹名称
dir_day=`echo ${dir_one}|cut -c 7-8` #取出第一个文件夹创建的日期 day的值
quyv=`echo "scale=0;${dir_day}%10"|bc` #使用取出的day的值与10取于
if [ ${quyv} -gt 0 ];then
rm -rf ${backup_dir}${dir_one} #不能整除删除这个文件夹
else
mv -r ${backup_dir}${dir_one} ${longbackup} #能够整除就将这个文件夹移动到longbackup中
fi
fi
备份条件有 备份文件保留90天。 超过九十天的文件夹 day的值与10取余
如果不能够整除,就将文件夹清理掉。如果能够整除就将文件夹,移动到longbackup(长期备份路径)。文采不好,乱喷,自己写的脚本免费分享给你们,要是这样还被喷的话,以后也就不会分享了。
#!/bin/bash
#mysql_backup.sh
#Backup database and cleanup scripts
backup_dir="/www/mysqlbackup/" #备份路径
dirname=`date +%Y%m%d` #备份文件夹名称
binlog_dir="/www/mysql/3306/" #binlog日志路径
longbackup="/www/mysqlbacup/longbackup/" #存储保存两年以上备份文件的路径
mkdir -p ${backup_dir}${dirname} #创建备份目录
/usr/local/mysql/bin/mysqldump yungou > ${backup_dir}${dirname}/mysql_${dirname}.sql #备份数据库
cp -a ${binlog_dir}/binlog.[0-9]* ${backup_dir}${dirname} #备份binlog日志文件
files=`ls -lt ${backup_dir}|tac|awk '{print $9}'` #备份路径下所有目录名以升序排列
days=`find ${backup_dir} -type d|grep -v longbackup |grep -v ''|wc -l` #备份目录下文件夹个数与91进行比较判断是否已备份够91天文件(当日文件也算)
number_day=`echo "scale=0;${days}-1"|bc` #文件数-1 是因为find命令查找出来的有一个当前路径所以-1
if [ ${number_day} -eq 91 ];then #判断是否已备份90天
dir_one=`echo ${files}|awk '{print $1}'` #取出备份目录下第一个文件夹名称
dir_day=`echo ${dir_one}|cut -c 7-8` #取出第一个文件夹创建的日期 day的值
quyv=`echo "scale=0;${dir_day}%10"|bc` #使用取出的day的值与10取于
if [ ${quyv} -gt 0 ];then
rm -rf ${backup_dir}${dir_one} #不能整除删除这个文件夹
else
mv -r ${backup_dir}${dir_one} ${longbackup} #能够整除就将这个文件夹移动到longbackup中
fi
fi