mysql备份脚本且只保留5天(已经经过测试)
#!/bin/bash
#mysql_bask.sh: backup mysql databases and keep newst 5 days backup.
#------------------------------------------
db_user="root"
db_passwd="123456"
db_host="localhost"
#the directory for story your backup file.
backup_dir="/back"
#date format for backup file (dd-mm-yy)
time="$(date +"%d-%m-%Y")"
#mysql,mysldump and some other bin's path
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
MKDIR="$(which mkdir)"
RM="$(which rm)"
MV="$(which mv)"
GZIP="$(which gzip)"
#check the directory for store backup is writeable
test ! -w $backup_dir && echo "Error: $backup_dir is un-writeable." && exit 0
#the directory for story the newest backup
test ! -d "$backup_dir" && $MKDIR "$backup_dir"
#get all databases
#$MYSQLDUMP -u $db_user -h $db_host -p$db_passwd -A --events | $GZIP -9 > "$backup_dir/$time.$db.gz"
#each libaray separately backup
all_db="$($MYSQL -u $db_user -h $db_host -p$db_passwd -Bse 'show databases')"
for db in $all_db
do
$MYSQLDUMP -u $db_user -h $db_host -p$db_passwd $db | $GZIP -9 > "$backup_dir/$time.$db.gz"
done
#delete the oldest backup 30days age
find $backup_dir -name "*.gz" -mtime +30 | xargs rm -rf
exit 0;
本文转自 zhuxtqw 51CTO博客,原文链接:http://blog.51cto.com/1054054/1703243,如需转载请自行联系原作者