51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

【扩展类】数据库定时备份

一、创建备份目录 {#heading-1}

mkdir -p /opt/fit2cloud/db_backup

二、创建备份脚本文件并授权 {#heading-2}

touch /opt/fit2cloud/db_backup/f2c_backup.sh
chmod +x /opt/fit2cloud/db_backup/f2c_backup.sh

三、 编辑备份脚本 {#heading-3}

vi /opt/fit2cloud/db_backup/f2c_backup.sh
#!/bin/sh
#备份 ce 数据库 ,打成tar包,并清理旧的备份
#最多存放最近 7 天备份文件
#backupDir 为备份目录
#每天晚上 11:30 执行备份
#Usage:
#bash f2c_backup.sh

#设置 mysql 的登录用户名和密码 mysql_user="root" mysql_password="xxxxx" mysql_host="xxxxx" mysql_port="xxxxx"

#变量定义 LOG=/var/log/f2c-db-backup.log backupDir=/opt/fit2cloud/db_backup/backup/

#检测备份目录是否存在 if [ ! -d $backupDir ];then mkdir -p $backupDir fi

currentTime=date +%Y%m%d%H%M ce_backupTarFileName=ce-db-backup-$currentTime.tar ce_dumpFilePath=ce-db-backup-$currentTime.sql

#开始执行备份 echo date "+%Y-%m-%d %H:%M:%S"":-------------------------------------------------" >> $LOG echo date "+%Y-%m-%d %H:%M:%S"": Start backup..." >> $LOG cd $backupDir

#docker 部署 mysql (这里默认数据库名称是 ce) docker exec mysql bash -c "/usr/bin/mysqldump --default-character-set=utf8mb4 -u$mysql_user -p$mysql_password -R --databases ce" > ce.sql #如果数据库采用单独部署方式,请注释上一行命令,打开下一行命令 #/usr/bin/mysqldump --default-character-set=utf8mb4 -u$mysql_user -p$mysql_password ce > ce.sql

#上传最新的数据库备份文件到腾讯云存储 #/usr/bin/coscmd upload ./ce.sql f2c-east-partner-wiki/lite12.5/

#修改文件名称 mv ce.sql $ce_dumpFilePath

#压缩文件,减少磁盘占用 tar -cvf $ce_backupTarFileName $ce_dumpFilePath >/dev/null 2>&1 rm -rf $ce_dumpFilePath echo date "+%Y-%m-%d %H:%M:%S"": End backup..." >> $LOG echo date "+%Y-%m-%d %H:%M:%S"": Local backup"du -sh $backupDir >>$LOG

#备份文件本机保留天数 keepBackupNum=7 ceBackupNum=ls -lrt $backupDir | grep ce | wc -l

#删除历史备份文件 if [ $ceBackupNum -gt $keepBackupNum ];then ls -lrt | grep ce | awk '{print $9}' | head -n 1 | xargs rm -rf fi


四、设置定时备份 {#heading-4}

设置每天晚上 23:30 定时执行备份脚本。

echo "30 23 * * * root /opt/fit2cloud/dbbackup/f2c_backup.sh" >> /etc/crontab
systemctl restart crond.service



赞(1)
未经允许不得转载:工具盒子 » 【扩展类】数据库定时备份