需求
备份主数据库
- Linux定时任务执行脚本,备份数据库,删除超时备份文件
异地容灾
需要备份数据库服务器
创建存放备份文件目录
mkdir -p /data/mysql/backup/
mkdir -p /data/mysql/backup/back_dir/
touch /data/mysql/backup/backup.sh
vim /data/mysql/backup/backup.sh
backup.sh
echo backup start!
docker exec -i mysql容器id/名 /usr/bin/mysqldump --all-databases --set-gtid-purged=OFF --single-transaction --source-data=2 --triggers --routines --events -u数据库账号 -p数据库密码 > /data/mysql/backup/back_dir/all_databases_`date +\%F`.sql;
scp /data/mysql/backup/back_dir/all_databases_`date +\%F`.sql 目标服务器账号@目标服务器ip:/data/mysql/backup/back_dir/
find /data/mysql/backup/back_dir -mtime +7 -name "*.sql" -exec rm -Rf {} \;
echo backup end!
手动执行脚本验证
chmod +x backup.sh
sh backup.sh
配置Linux定时任务
crontab -e
30 1 * * * sh /data/mysql/backup/backup.sh
crontab -l
service crond reload
配置ssh免密登录
需要备份数据库服务器
ssh-keygen -t rsa
需要免密上传备份文件服务器
mkdir -p /home/用户目录/.ssh/
touch authorized_keys
vim authorized_keys
测试免密登录
ssh 目标服务器ip
配置好免密登录,仍然需要密码登录,修改权限
chmod 755 /home/xxx 或者 chmod 700 /home/xxx
chmod 700 /home/xxx/.ssh
chmod 700 /home/xxx/.ssh/authorized_keys
需要免密上传备份文件服务器
创建存放备份文件目录
mkdir -p /data/mysql/backup/
mkdir -p /data/mysql/backup/back_dir/
touch /data/mysql/backup/clear_backup.sh
vim /data/mysql/backup/clear_backup.sh
clear_backup.sh
echo clear_backup start!
find /data/mysql/backup/back_dir/ -mtime +7 -name "*.sql" -exec rm -Rf {} \;
echo clear_backup end!
手动执行脚本验证
chmod +x clear_backup.sh
sh clear_backup.sh
配置Linux定时任务
crontab -e
30 1 * * * sh /data/mysql/backup/clear_backup.sh
crontab -l
service crond reload
参考博客