使用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
为者常成,行者常至
Give me five~!