每日自动本机备份数据库,以及异机互备.脚本内容:/home/backup.sh
一. 建立SSH双机免密码互信登陆:
数据库服务器:10.10.111.2:
ssh-keygen -t rsa
scp -r id_rsa.pub 10.10.111.4:/root/.ssh/authorized_keys
数据库服务器:10.10.111.4
ssh-keygen -t rsa
scp -r id_rsa.pub 10.10.111.2:/root/.ssh/authorized_keys
二.mysql备份脚本bakup.sh
数据库服务器:10.10.111.2:
#!/bin/bash
port="3306 3308"
DATE=`date "+%Y%m%d"`
local_id=`/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
remote_id=10.10.111.4
for p in $port
do
if [ $p == 3306 ]
then
socket="/tmp/mysql.sock"
else
socket="/home/data/mysql_${p}/mysql.sock"
fi
/usr/local/mysql/bin/mysqldump -uroot -pbnh1923 -S${socket} --opt --all-databases > /home/backup/${local_id}_${DATE}_${p}.sql
rm -rf /home/backup/${local_id}_$(date -d -15day)_${p}.sql
scp /home/backup/${local_id}_${DATE}_${p}.sql root@${remote_id}:/home/backup/
done数据库服务器:10.10.111.4:
#!/bin/bash
port="3306 3307 3308"
DATE=`date "+%Y%m%d"`
local_id=`/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
remote_id=10.10.111.2
for p in $port
do
if [ $p == 3306 ]
then
socket="/tmp/mysql.sock"
else
socket="/home/data/mysql_${p}/mysql${p}.sock"
fi
/usr/local/mysql/bin/mysqldump -uroot -pbnh1923 -S${socket} --opt --all-databases > /home/backup/${local_id}_${DATE}_${p}.sql
rm -rf /home/backup/${local_id}_$(date -d -15day)_${p}.sql
scp /home/backup/${local_id}_${DATE}_${p}.sql root@${remote_id}:/home/backup/
done三.验证备份数据:
cd /home && ls
10.10.111.2_20180412_3306.sql -> 正常
10.10.111.4_20180412_3306.sql -> 正常
四.添加系统计划任务:
chmod +x /admin/backup.sh
crontab –e # 添加以下任务
00 03 * * * /admin/backup.sh
签名:这个人很懒,什么也没有留下!