rsync 服务器的安装配置
我的配置环境(CentOS 5.5两台)
服务器端IP 192.168.63.30
客户机端IP 192.168.64.103
(注:这里我用的是局域网的两台机器)
一:服务器端的配置:
----------------------------------------------------------------------------------------------------------------------
1:首先我们来编译安装rsync。
Rsync的主页地址为http://rsync.samba.org/,这里下载的版本为rsync-3.0.9。下面进行编译安装。
[root@localhostsoftware]# cd rsync-3.0.9
[[email protected]]#./configure --prefix=/data/rsync/
[[email protected]]#make
[[email protected]]#make install
2:关闭防火墙,这个防火墙固然很好,但是因为他也没少给我们的配置工作惹麻烦所以呢,我们还是关闭防火墙为好。
service iptables stop
3:首先编辑/etc/rsync.conf内容如下:
[注:安装完成后rsync系统并不会自动创建此配置文件,需要我们自己手动创建。]
uid = nobody 模块传输文件时守护进程的用户ID,默认值是nobody。
gid = nobody 模块传输文件时守护进程的用户组ID,默认值是nobody。
use chroot = false
(如果"use chroot"指定为true,那么rsync在传输文件以前首先chroot到path参数所指定的目录下。这样做的原因是实现额外的安全防护,但是缺点是需要以roots权限,并且不能备份指向外部的符号连接所指向的目录文件。默认情况下chroot值为true.但是这个一般不需要,我选择false)
max connections = 10 最大连接数
strict modes = yes 指定是否检查口令文件的权限。如果为yes,密码文件的权限必须为root用户权限。
timeout = 600 (覆盖客户指定的IP超时时间,也就是说rsync服务器不会永远等待一个崩溃的客户端。)
pid file =/var/run/rsyncd.pid pid文件的存放位置
lock file =/var/run/rsync.lock 锁文件的存放位置
log file =/var/log/rsyncd.log 日志文件的存放位置
[backup] 这里是认证模块名
path = /data/nginx 指定需要备份的文件或目录
ignore errors 可以忽略一些无关的IO错误
read only = no 设为no表示客户端可以上传文件,设为yes表示只读。
write only = no 设置为no表示客户端可以下载文件,设为yes表示不能下载。
list = false不允许列清单
hosts allow =192.168.0.7
(单个IP地址,例如:192.167.0.1整个网段,例如:192.168.0.0/24,也可以是192.168.0.0/255.255.255.0 “*”则表示所有,默认是允许所有主机连接)
hosts deny =0.0.0.0/32
(指定不允许连接rsync服务器的机器,可以使用hosts allow的定义方式来进行定义。默认是没有hosts deny定义。)
auth users = rsync 认证的用户名
secrets file = /data/rsync/passwd/rsync.passwd 密码文件存放地址
注:对于secrets file文件,系统默认是没有这个文件的,需要自己手动创建。
4上面的工作完成后,查看/etc/rsyncd.conf配置文件内容。
uid = nobody
gid = nobody
use chroot =no
maxconnections = 10
strict modes= yes
pid file =/data/rsync/logs/rsyncd.pid
lock file =/data/rsync/logs/rsync.lock
log file = /data/rsync/logs/rsyncd.log
[103backup]
path =/data/rsync/backup/
comment =/ixdba file
ignore errors
read only =no
write only =no
hosts allow =*
list = false
uid = root
gid = root
auth users = rsync
secrets file =/data/rsync/passwd/rsync.passwd
启动rsync服务器上的rsync守护进程:
/data/rsync/bin/rsync --daemon
1:[103backup] 这里是认证模块名
path = /data/rsync/backup/ 这里是参与同步的目录。
这里的path大家要记好了,这里不要随便的一设置就直接完事,要知道这里是认证模块的,以后从客户机备份的数据会存储在这里。
2:auth users = rsync认证的用户名
这个名字是服务器端实实在在存在用户,大家不要直接跟步骤走却忽略了这点,如果服务器端少了这个的话我估计你的数据同步就实现不了,我也曾经在这里栽过跟头,大家要谨记。
3:path = /data/rsync/backup/这里是参与同步的目录
这个稍后自己要在根目录下自己建
cd /data/rsync/
mkdir backup
chmod –R 777 /data/rsync/backup
(这个对应path = /data/rsync/backup/)
echo “rsync:rsync123”> /data/rsync/passwd/rsync.passwd
为了安全期间我设置他的权限为600
chmod 600 /data/rsync/passwd/rsync.passwd
下面我们来安装xinnetd包这个包在默认状况下是没有安装的在CentOS里面
yum install xinetd
安装完成后我们来做如下的操作:
echo “/user/bin/rysnc --daemon” >> /etc/rc.local
service xinetd restart 重启rsync服务
ps -ef| grep rsync 查看运行进程
netstat -anp | greprsync 查看运行状态
---------------------------------------------------------------------------------------------------------
二:客户端配置:
rpm –qa|grep rsync
echo “rsync123” > /data/chenbo/rsync.passwd 在客户端密码文件rsync.passwd下保存rsync123密码(注意:服务器端需要用户名和密码,客户端保存密码即可)
chmod 600 /data/chenbo/rsync.passwd 给rsync.passwd权限
cat /data/chenbo/rsync.passwd 查看rsync.passwd下是否有rsync123密码
再次到客户端:我们做如下的操作:
rsync –av [email protected]::103backup /data/chenbo/databackup/
将服务器里认证模块的数据备份到客户机的/data/chenbo/databackup/目录下
反过来我们将本地文件备份到服务器端:
[root@103 ~]# rsync -av /data/chenbo/ [email protected]::103backup
在客户端设置定时任务(使用crontab –e打开编辑)
30 15 * * * rsync -vzrtopg --delete --progress /data/chenbo [email protected]::103backup --password-file=/data/chenbo/rsync.passwd
意思是在每天下午的15点半自动把客户端/data/chenbo目录同步到192.168.63.30服务端,
--delete选项指定以rsync服务端为基准进行数据镜像同步,也就是要保持rsync服务端目录与客户端目录的完全一致。
--progress选项用于显示数据镜像同步的过程。
--password-file选项用来指定客户端上存放密码文件的位置,这样在同步数据时不用输入交互密码。