centos系统下安装rsync实现自动同步

  • A+
所属分类:Linux

rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync
它的特性如下:
可以镜像保存整个目录树和文件系统。
可以很容易做到保持原来文件的权限、时间、软硬链接等等。
无须特殊权限即可安装。
快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。
安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
支持匿名传输,以方便进行网站镜象。

1.服务端安装rsync

yum -y install rsync

2.服务器配置

  • 添加配置并修改配置文件

# vi /etc/xinetd.d/rsync把原来的 disable = yes 改成 disable = no

配置/etc/rsyncd.conf(需要手动生成)

# vi /etc/rsyncd.conf

log file = /var/log/rsyncd.log //日志文件

pid file =/var/run/rsyncd.pid //pid文件路径

lock file = /var/run/rsyncd.lock //指定lock文件

secrets file = /etc/rsyncd.pas //指定用户密码对文件

motd file = /etc/rsyncd.motd //指定欢迎消息文件(此文件没有,可以自行添加)

read only = no //是否只读(若从客户端同步到服务器必须设置为NO)

hosts allow = 192.168.0.0/16,192.168.10.0/24 //允许的IP段

list = yes //是否允许列表

uid = nobody //rsync以什么用户身份启动

gid = nobody //rsync以什么用户组身份启动

use chroot = no //不使用chroot

max connections = 30 //最大连接数

[www] //模块

path = /var/www //模块目录

comment = www bak //描述信息,可以任意填写

auth users = root //认证的用户,服务器必须存在这个系统用户

#ignore errors # 可以忽略一些无关的IO错误
#exclude = cache/111/ cache/222/ #忽略的目录

(保存退出)

centos系统下安装rsync实现自动同步

  • 修改密码配置

# vi /etc/rsyncd.pas

输入(用户密码对文件,用“:”隔开):

root:u22e.com

修改权限

# chmod 600 /etc/rsyncd.pas //权限必须为600,否则会出错

  • 配置欢迎消息

# vi /etc/rsyncd.motd

输入

welcome to rsync u22e.com

启动rsync服务端(独立启动)

# /usr/bin/rsync --daemon

3.客户端配置

客户端默认好像已经装了rsync,没有的话装下:
# yum -y install rsync

设定密码

# vi /etc/rsyncd.pas

u22e.com

修改权限

# cd /etc

# chown root.root rsyncd.pas

# chmod 600 rsyncd.pas

client连接SERVER

  • 从SERVER端取文件

# rsync -vzrtopg --progress --delete root@192.168.10.122::www /home/rsync/ --password-file=/etc/rsyncd.pas

这个命令行中-vzrtopg里的v是verbose,
z是压缩传输,
r是recursive,
topg都是保持文件原有属性如属主、时间的参数。
u是只同步已经更新的文件,避免没有更新的文件被重复更新一次,不过要注意两者机器的时钟的同步。
--progress是指显示出详细的进度情况,
--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。
后 面的rsync_user@192.168.0.2::rsync_module_name1中,之后的rsync_module_name1是模块名, 也就是在/etc/rsyncd.conf中自定义的名称,rsync_user是指定模块中指定的可以同步的用户名。
最后的/www是备份到本地的目录名。
在这里面,还可以用-e ssh的参数建立起加密的连接。
可以用–password-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。

  • 向SERVER端上传文件

# rsync -vzrtopg --progress --password-file=/etc/rsyncd.pas /home/rsync/ root@192.168.10.122::www

rsync 常见错误及解决方法请访问如下网址

http://www.u22e.com/198.html

 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: