一、创建备份目录 {#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 echodate "+%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 echodate "+%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