mkdir -p /data/mysql_backup/auto_backup
#########mysql backup####################
db_user="root"
db_passwd="password"
db_host="173.16.1.1"
db_port="3306"
MYSQL="/usr/bin/mysql"
MYSQLDUMP="/usr/bin/mysqldump"
##########code & res backup####################
backup_dir="/data/mysql_backup/auto_backup"
time="$(date +"%d-%m-%Y")"
MKDIR="/bin/mkdir"
RM="/bin/rm"
MV="/bin/mv"
GZIP="/bin/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/backup.0/" && $MKDIR "$backup_dir/backup.0/"
# get all databases
databases=(gdkf
message
nsfx)
for db in ${databases[*]}
do
#备份指定库
$MYSQLDUMP -u$db_user -h$db_host -p$db_passwd -P$db_port $db --single-transaction | $GZIP -9 > "$backup_dir/backup.0/$time.$db.gz"
#备份存储过程、触发器、函数等
$MYSQLDUMP -u$db_user -h$db_host -p$db_passwd -P$db_port -n -t -d -R $db --single-transaction | $GZIP -9 > "$backup_dir/backup.0/$time.proc_$db.gz"
done
####滚动清理历史备份
test -d "$backup_dir/backup.5/" && $RM -rf "$backup_dir/backup.5"
for int in 4 3 2 1 0
do
if(test -d "$backup_dir"/backup."$int")
then
next_int=`expr $int + 1`
$MV "$backup_dir"/backup."$int" "$backup_dir"/backup."$next_int"
fi
done
exit 0;
mysql备份脚本
于 2021-08-09 15:14:29 首次发布