环境:

二台主机:pc1:risesmbserver  ip:192.168.0.18

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

4954


ip:192.168.0.19

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

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



转载于:https://blog.51cto.com/11937277/1834985