#!/bin/bash
#保留备份个数,会删除时间较早的.dump备份
number=3
#设置备份保存路径,yourpath替换成自己的备份保存路径
backup_dir=yourpath
#日期格式
dd=`date +%Y%m%d`
#备份工具
tool=mysqldump
#数据库用户名
username=root
#数据库密码,由于密码可能包含特殊字符,需要用''转义
password='yourpwd'
#将要备份的数据库名称,yourdb替换成自己要备份的数据库名,此脚本只支持备份一个数据库,多数据库mysqldump用法
database_name=yourdb$tool -u $username -p$password --databases $database_name > $backup_dir/$database_name-$dd.dump#写创建备份日志
echo "create $backup_dir/$database_name-$dd.dump" >> $backup_dir/log.txt#查询本目录下所有备份文件
#查询备份文件是按照备份文件的生成时间来计算的
FileNum=$(ls -l $backup_dir/*.dump | grep ^- | wc -l)
echo "Number of backup files:"$FileNum >> $backup_dir/log.txt
while(( $FileNum > $number ))
do#取最旧的文件,*.*可以改为指定文件类型OldFile=$(ls -rt $backup_dir/*.dump | head -1)echo "Delete File:"$backup_dir'/'$OldFile >> $backup_dir/log.txtrm -f $OldFilelet "FileNum--"
done