1.建立挂载目录
mkdir /data/backups/nas-backup
2.安装cifs库
yum install cifs-utils
3.挂载NAS共享目录
mount -t cifs //101.30.50.209/backups/ch-backup /data/backups/nas-backup -o username=ch-backup,password=Bk@2024,domain=
4.创建数据库备份用户
CREATE USER 'backupuser'@'%' IDENTIFIED BY 'abc@qwedsa';
GRANT Select ON manage_portal.* TO 'backupuser'@'%';
GRANT Show view ON manage_portal.* TO 'backupuser'@'%';
GRANT References ON manage_portal.* TO 'backupuser'@'%';
GRANT Lock tables ON manage_portal.* TO 'backupuser'@'%';
GRANT Select ON xxl_job.* TO 'backupuser'@'%';
GRANT References ON xxl_job.* TO 'backupuser'@'%';
GRANT Show view ON xxl_job.* TO 'backupuser'@'%';
GRANT Lock tables ON xxl_job.* TO 'backupuser'@'%';
GRANT Process ON . TO 'backupuser'@'%';
4.数据库备份脚本参考
backup-ch-portal.sh
echo "`date +%y%m%d%H%M%S` start backup of mysql..."
backup_path=/data/backups/mysql-backup/data/
db_user=backupuser
db_pswd=abc@qwedsa
db_host=127.0.0.1
db_port=3306
db_param=--skip-extended-insert
db_name=manage_portal
docker exec ch-mysql mysqldump $db_param -u$db_user -p$db_pswd -h$db_host -P$db_port $db_name > "$backup_path`date +%y%m%d%H`_$db_name.sql"
db_name=xxl_job
docker exec ch-mysql mysqldump $db_param -u$db_user -p$db_pswd -h$db_host -P$db_port $db_name > "$backup_path`date +%y%m%d%H`_$db_name.sql"
echo "`date +%y%m%d%H%M%S` backup finished."
echo "`date +%y%m%d%H%M%S` start compress sql file to tar.gz.."
find $backup_path -name "*.sql" -type f -exec tar -zcvf {}.tar.gz {} --remove-files \;
echo "`date +%y%m%d%H%M%S` compress finished."
echo "`date +%y%m%d%H%M%S` start clean N days before backups."
ls -t $backup_path*.tar.gz | awk 'NR>60' | xargs rm -rf
echo "`date +%y%m%d%H%M%S` clean finished."
echo "`date +%y%m%d%H%M%S` list current backups files:."
ls -lth $backup_path*.tar.gz
cp $backup_path`date +%y%m%d%H`_ch_*.sql.tar.gz /data/backups/nas-backup/portal/
6.创建linux定时器
5 12,22 * /data/backups/mysql-backup/backup-ch-portal.sh >> /data/backups/mysql-backup/log-backup-ch-portal.log
注意事项:
可配置开机挂载NAS目录:
//nas_server_ip/nas_share_name /mnt/nas_mount cifs username=your_username,password=your_password,domain=your_domain 0 0