Linux下rsync同步配置

安装:

Ubuntu

sudo apt-get install rsync

Cent os

yum install rsync

 

配置:(建立三个文件,这里我放在/etc/rsyncy/,分别是rsyncd.conf,rsyncd.secrets,rsyncd.motd)

#chmod 600 /etc/rsyncd/rsyncd.secrets  //首先将rsyncd.secrets权限设置为root,否则会报错。

#vim /etc/rsyncd/rsyncd.conf   //编辑rsyncd.conf文件

uid = root/nobody

gid = root/nobody

use chroot = no

timeout = 300

port = 873                               

max connections = 30                    

pid file = /var/log/rsyncd.pid            

lock file = /var/run/rsyncd.lock           

log file = /var/log/rsyncd.log           

log format = %t %a %m %f %b

 

[backup]  //模块名                              

path = 要同步的目录                     

comment =test                           

read only = no                           

write only = no                          

list = no                               

ignore errors                          

hosts allow = 192.168.1.0/24     

hosts deny =  *                          

auth users = root                   

secrets file=/etc/rsyncd/rsyncd.secrets

 

PS:这里需要说明一下,配置这些东西,主要是在服务器端,客户端不用这样弄的,下面会说到客户端的配置方式。

 

配置rsyncd.secrets

#vim /etc/rsyncd/rsyncd.secrets    //编辑rsyncd.secrets文件

root:密码   //这里的root,要和前面配置rsyncd.conf里的auth users一样,后面是密码

#chmod 777 要同步的目录  //修改要同步的目录的权限,否则会报错

 

启动

#/usr/bin/rsync –daemon –config=/etc/rsyncd.conf

关闭

#lsof –i :873  //这里可以得到PID号

#kill -9 pid

我给的网址里面有更加详细和好的关闭方法,可以去看看

 

客户端配置:

先安装好rsync

启动

#touch /etc/rsyncd.conf  //这里必须建立这个文件,不然无法启动rsync

#/usr/bin/rsync –daemon

#touch /etc/rsyncd/rsyncd.secrets

#vim /etc/rsyncd/rsyncd.secrets

密码  //这里的密码和服务器端的密码一样

 

注意事项:

这里必须保证服务器端和客户端能互相通信

我们将两台电脑的873端口要打开,不然会报错

#vim /etc/sysconfig/iptables

加入

-A INPUT –m –state NEW –m tcp –p tcp –dport873 –j ACCEPT

注意这里两台电脑都要加入,不然会报错。

 

同步:

rsync –vzrtopg –delete 客户端要同步到服务器的目录 配置文件中的auth users@ip地址::模块名--password-flie=/etc/rsyncd.secrets


这里是将客户端的同步到服务器上,--delete表示差异同步,没有的会被删除掉,服务器端和客户端保持一致,如果不需要这样就将—delete删除

 

rsync –avzP –delete  配置文件中的authusers @ip地址::模块名–password-file=/etc/rsyncd.secrets


这里是将服务器的同步到客户端上,和上面的同理

 

下面是通过ssh将远程服务器同步到本地


下面是通过ssh将本地同步到远程服务器


下面是一些rsync一些参数的用法,在百度知道中有更加详细的参数用法

ps:2018年7月2日

没想到会再次用到这个博客。再次遇到了很多坑,这里记录一下,rsync的conf有一定的顺序问题,顺序恰当可以免密码直接开始同步。

这样子配置就不会输入密码,不用带--password-file这个参数,也不用在客户端里创建secrets文件。


上面这个图中如果auth user在上面这个位置就不用输入密码,如果在我下面的注释的这个位置就需要输入密码

rsync中的参数

 

  -r 是递归

  -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;

  -z 传输时压缩;

  -P 传输进度;

  -v 传输时的进度等信息,和-P有点关系,自己试试。可以看文档;

  -e ssh的参数建立起加密的连接。

  -u只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时

  --progress是指显示出详细的进度情况

  --delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致

  --password-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。

 

可能中间可能会出现一些错误,可以参看错误处理。下面是网址和我参看的一些资料

详情可参考:http://www.linuxidc.com/Linux/2012-12/75995.htm#实现同步

                        http://www.poluoluo.com/server/201309/241711.html#错误处理

                        http://www.cnblogs.com/itech/archive/2009/08/10/1542945.html#较全的命令使用方法

                        http://baike.baidu.com/link?url=smupHxVM9_iLiklLEFRNb-lUPaoB_E5qG8tdM-ZO4RuTwulnSBE-260ZhGBZpEiRnv5EgCuMcYItYJ4q-30fF_  #百度知道


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章