跳转到内容
KN郑某某

MySQL定时全库备份

在文件夹 下创建脚本文件 , 数据库账号是,密码是, 表示要保留的备份文件数量,备份 db_1,db_2,db_3三个数据库

Linux 1 分钟阅读

在文件夹 /home/zqyu/database_bak 下创建脚本文件 db-backup.sh, 数据库账号是root,密码是123456, backupSize表示要保留的备份文件数量,备份 db_1,db_2,db_3三个数据库

#!/bin/bash
set -e
mhome=/home/zqyu/database_bak
today=$(date "+%Y%m%d_%H%M%S")
db_names=(db_1 db_2 db_3)
for db in ${db_names[@]}
do
echo '备份数据库 '${db}' 中...'
mkdir -p ${mhome}/${db}
cd ${mhome}/${db}
mysqldump -u root --password='123456' ${db} | gzip > ${mhome}/${db}/${today}.sql.tar.gz
backupSize=30
index=0
for bak in $(ls -r)
do
if [ ${index} -ge ${backupSize} ]; then
rm -f ${bak}
# echo ${bak}
fi
index=$(expr ${index} + 1)
done
done

$ crontab -e

添加定时任务,ESC:wq保存

# 每天02:05备份一次数据库
05 02 * * * bash /home/zqyu/database_bak/db-backup.sh

评论