提示:以下操作都在数据库所在服务器创建和操作,备份服务器目录创建好即可
yum -y install sshpass
没有SSHPass 的安装一下
1.编写备份数据库脚本:
进入到 opt :
mkdir backup
cd backup
mkdir data
创建: vim backup.sh
#!/bin/bash
db_name='数据库名'
backup_dir='/opt/backup/data'
current_time=$(date +'%Y-%m-%d_%H%M%S')
filepath=$backup_dir$current_time'.sql.gz'
echo '开始导出数据库...'
mysqldump --defaults-extra-file=/opt/backup/my_mysql.cnf $db_name --net-buffer-length=10m | gzip > $filepath
echo '导出成功,文件名为: '$filepath
echo '开始传输数据到备份服务器'
sshpass -p 备份服务器密码 scp $filepath root@备份服务器ip:备份服务器目录(我是/opt/data/back)
echo '备份成功'
2.编写数据库访问密码:
vim my_mysql.cnf
[mysqldump]
max_allowed_packet = 400M
host=127.0.0.1
user=root
password='root'
[mysql]
host=127.0.0.1
user=root
password='root'
授权:
chmod +x ./backup.sh
执行命令:./backup.sh
查看目标服务器:
定时任务:
crontab -e
# 粘贴下面的内容, 数据库自动备份
0 0 12,23 * * ? * /opt/backup/backup.sh # 每天23点,中午12点备份一次数据