技术改变生活

博客园 首页 新随笔 联系 订阅 管理

 

使用rsync进行简单的数据远程备份脚本

 

一、实验环境:
1、centos-A网站服务器:192.168.0.101/24
提前准备好网站源代码和数据库
2、centos-B备份服务器:192.168.0.102/24

二、ssh客户端centos-A生成公钥和私钥对
ssh-keygen -t rsa 命令生成一个文件对 (非对称加密算法)
id_rsa 私钥文件
id_rsa.pub 公钥文件

三、把centos-A上公钥传输一份到centos-B服务器
把id_rsa.pub传到centos-B服务器
ssh-copy-id -i .ssh/id_rsa.pub 192.168.0.102

四、无口令登陆测试
ssh 192.168.0.102


五、使用rsync借助ssh无口令远程备份到centos-B服务器上指定目录
rsync -e ssh -avz /mnt 192.168.0.102:/home/webserver
[root@x112 software]# rsync -e ssh -avz Discuz_7.2_FULL_SC_UTF8.zip root@192.168.0.101:/home/webserver

#!/bin/bash
#description for rsync to backup data
#到目标服务器102已经做了ssh免密登陆

#常用变量
time=`date +%Y-%m-%d`
backdir="/mnt/${time}"
back_webdir="${backdir}/web"
back_datadir="${backdir}/data"
webdir="/usr/local/apache/htdocs/myshop"
mysql_conn="/usr/local/mysql/bin/mysqldump -uroot -p123 myshop"
#创建目录
mkdir -p ${back_webdir}
mkdir -p ${back_datadir}
#复制网站目录
rsync -r ${webdir} ${back_webdir} &> /dev/null
#导出数据库sql语句
${mysql_conn} > "${back_datadir}/myshop.sql" &>/dev/null
#目标目录压缩完成
zip -r ${backdir}.zip ${backdir} &>/dev/null
#源目录删除完成
rm -rf ${backdir}
#把数据远程传输到Centos-B服务器指定目录下完成
rsync -e ssh -az ${backdir}.zip  192.168.0.102:/mnt

  

posted on 2020-09-08 12:46  小阿峰  阅读(319)  评论(0编辑  收藏  举报