linux使用scp+ssh实现自动远程备份数据库

1、首先备份数据库到本地

#!/bin/bash
mysql_pwd=”123456″
mysql_dump=”/usr/bin/mysqldump”
cur_year=$(date +”%Y”)
cur_month=$(date +”%m”)
cur_day=$(date +”%d”)
dump_path=”/data/backup/abc/$cur_year-$cur_month”
if [ ! -d “$dump_path” ]; then
mkdir -p “$dump_path”
fi
$mysql_dump -uroot -p$mysql_pwd –socket=/data/mysql_data/mysql.sock –opt abc_2018 | gzip > $dump_path/abc-$cur_day.sql.gz

2、将本地备份文件同步到远程服务器

具体操作:

要求:把192.168.0.2机上的test.tar拷贝到192.168.0.3机器的上

192.168.0.2服务器上:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa -P “” -f ~/.ssh/id_rsa

192.168.0.3服务器上:
mkdir -p ~/.ssh

在192.168.0.3建立好.ssh目录后,从192.168.0.2拷贝~/.ssh/id_rsa.pub到192.168.0.3中~/.ssh目录下:
scp ~/.ssh/id_rsa.pub root@192.168.0.3:~/.ssh)。

把从192.168.0.2拷贝过来的id_rsa.pub重命名为authorized_keys(cp id_rsa.pub authorized_keys)

chmod 600 ~/.ssh/authorized_keys

此时拷贝就不需要输入密码:scp test.tar root@192.168.0.3:/var/www

下面就可以把此命令放到计划任务中而自动执行了­:
crontab -e
50 04 * * * /data/backup.sh

发表评论

电子邮件地址不会被公开。 必填项已用*标注