环境:

二台主机:pc1:risesmbserver  ip:192.168.0.18

                 SSHD端口默认为22,最好开启

                  新增SSHD端口4954


      PC2:risesmbback  ip:192.168.0.19

                 SSHD端口默认为22,最好开启

                   新增SSHD端口1103



一.pc1数据同步到pc2上


1.客户端和服务端增加sshd端口的方法:

vim /etc/ssh/sshd_config

port 22 前面的#去掉

下一行添加 Port 1103

....


2.客户端和服务端重启sshd服务

service sshd restart


方法:

同步文件


使用默认端口把pc1的/home/123下的文件拷贝到远程的pc2的/home/123


rsync -avPz /home/123 192.168.0.19:/home/123 输入pc2的密码即可同步


如果pc1更新了文件,pc2如何同步,使用u参数即可把更新的内容同步


rsync -avPzu /home/xingzheng 192.168.0.19:/home/xingzheng 输入pc2的密码即可同步




二.rsync配合计划任务来实现自动同步数据


在配置服务器之前要先生成密钥


1.服务器操作:

cd /root/.ssh

ssh-keygen -t rsa,生成密钥如下:

输入三次回车,密码设置为空


2.拷贝文件


scp id_rsa.pub root@192.168.0.19:/root/.ssh/authorized_keys


输入密码:xxxx



3.客户端操作


cd /root/.ssh

ssh-keygen -t rsa,生成密钥如下:

输入三次回车,密码设置为空


4.拷贝文件


scp id_rsa.pub root@192.168.0.18:/root/.ssh/authorized_keys


输入密码:xxxx


5.服务端:

服务端:vi /etc/sery.pass


输入内容:

root:xxxx (用户名:密码)


文件设置权限:

chmod 600 /etc/sery.pass



6.客服端:

vi /etc/sery_client.pass


输入内容


xxxx(密码)  


文件设置权限:

chmod 600 /etc/sery_client.pass


7.以下为服务端操作


vi /etc/rsyncd.conf


输入内容


[global]

 uid = root           #root用户访问(我这里用ROOT用户,也可以用其他新建的用户)


 gid = root           #root组用户访问


 use chroot = no      #不能使用chroot


 max connections = 10  #最大连接数


 list = yes           #允许列出文件清单


 pid file = /var/run/rsyncd.pid


 lock file = /var/run/rsyncd.lock


 log file = /var/log/rsyncd.log


 hosts allow  = 192.168.0.19      #只允许这个主机访问


[data]


  path = /webapps/IDManage         #发布的路径


  ignore errors


  read only = yes            #只读


  auth users = root                #认证用户为root


  secrets file = /etc/sery.pass    #密码文件



8.启动文件


rsync --daemon --config=/etc/rsyncd.conf


9.查看进程


ps -ef |grep rsync


10.查看


yum install -y lsof


vim /etc/ssh/sshd_config可以查看开启的端口


lsof -i:1103



11.客户端操作


yum install -y telnet


telnet 192.168.0.18 1103


按ctrl+]即可进入Telnet,按q可以退出


12.服务端操作,把rsync加入自动启动


echo "/usr/bin/rsync --daemon --config=/etc/rsyncd.conf" >>/etc/rc.local


13.配置客户端


只要安装rsync软件



三.如何自实rsync客户端自动与rsync服务器端同步呢?这里我们用到计划任务命令:crontab;


1.服务端做一个shell脚本


vi /tmp/rsyncd.sh


#!/bin/bash

remotedir=/home/soft/ #备份到远程主机的目录

basedir=/home/soft/ # 本地需要备份的目录

host=192.168.0.19 #备份到远程主机

id=root

rsync -avPu -e ssh $basedir ${id}@${host}:${remotedir}

2.设置 crontab -e计划任务


每周一运行一次计划任务


0 9 * * 1 /tmp/rsyncd.sh


每一分钟运行一次计划任务


*/1 * * * * /tmp/rsyncd.sh