一、服务器端配置:
# yum -y安装xinetd
# vi /etc/xinetd.d/rsync
代码如下
服务同步
{
禁用=是
套接字类型=流
等待=否
用户=root
server=/usr/bin/rsync
server _ args=daemon
登录失败=用户标识
}
将中的禁用=是更改为禁用=否
然后启动xinetd。
# /etc/init.d/xinetd start或service xinetd restart
注意:如果服务器上安装了防火墙,记得打开端口。默认端口是873。
#远程登录873
正在尝试127.0.0.1.
telnet:连接到地址127.0.0.1:连接被拒绝
# iptables -A输入-s 192 . 168 . 0 . 0/255 . 255 . 255 . 0-p TCP-m TCP-dport 873-j接受
# iptables-A INPUT-p TCP-m TCP-dport 873-j DROP
# vi /etc/rsyncd.conf(如果该文件不存在,请自己创建)
#全局设置
Uid=root #以什么身份运行rsync
gid=root
Use chroot=no #不要使用chroot。
最大连接数=20 #最大连接数
secrets file=/etc/rsyncd . secrets #密码文件位置、认证文件设置、用户名和密码设置。
Log=/var/log/rsyncd.log #指定rsync的日志文件,而不是将日志发送到syslog。
Pid file=/var/run/rsyncd.pid #指定rsync的Pid文件
锁文件=/var/run/rsync.lock #指定支持最大连接数参数的锁文件。默认值是/var/run/rsyncd.lock。
评论=hello world
#motd file=/etc/rsyncd.motd #欢迎信息文件名和存储位置(该文件不可用,可自行添加)
【备份】#这里是认证的模块名,需要在客户端指定。
Path=/titan24/www/repos #要镜像的目录
Users=rsync #授权帐号。经过身份验证的用户名,如果没有这样的行,则表明它是匿名的,多个用户用。
只读=否#是,只读值为否,表示读写模式。否用于数据恢复。
HostAllow=192.168.3.128 #允许访问的服务器IP
Hostdeny=* #黑名单
List=true #允许列文件
# ignorerrors #可以忽略一些不相关的IO错误。
#exclude=cache/111/cache/222/#忽略的目录
# vi /etc/rsyncd.secrets(设置用于访问(身份验证)的用户名和密码)
Rsync: 11111 #用户名:密码
给予文件正确的权限。
# chown root:root/etc/rsyncd . secrets
# chmod 600 /etc/rsyncd.secrets#(必须是600)
第二,客户端同步。
客户端似乎默认安装了rsync,如果没有,安装:
# yum -y安装同步
执行异步同步操作:
/usr/bin/rsync-avz-progress rsync @ 192 . 168 . 3 . 191:backup/www
# crontab -e #(您可以定期每三分钟同步一次文件)
*/3 * * * * rsync-avz-progress rsync @ 192 . 168 . 3 . 191:backup/www
以下命令已完成:
#vi /etc/rsyncd.pas
添加密码
rsyncofpass
注意,客户端的密码文件只需要密码,不需要用户名!
更改文件权限:
#chmod 0600 /etc/rsyncd.pas
# rsync-vzrtopgu-progress-delete-password-file=/etc/rsyncd . pas rsync _ user @ 192 . 168 . 0 . 2:rsync _ module _ name 1/www/
该命令行中的-vzrtopg中的v是冗长的,
z是压缩传输,
这是递归的,
g是一个保持文件原始属性的参数,比如所有权和时间。
u只同步已经更新的文件,防止没有更新的文件重复更新一次,但是要注意两机时钟的同步。
进度意味着显示详细的进度,
-delete意味着如果服务器删除了该文件,那么客户端也会相应地删除该文件,从而保持真正的一致性。
在rsync_user @ 192 . 168 . 0 . 2:rsync_module_name1中,下面的rsync _ module _ name 1是模块名,即在/etc/rsyncd.conf中定义的名称,rsync _ user是在可以同步的指定模块中指定的用户名。
最后一个/www是本地备份的目录名。
在这种情况下,您还可以使用参数-e ssh来建立加密连接。
您可以使用password-file=/password/path/file来指定密码文件,以便可以在脚本中使用该文件,而无需交互输入验证密码。这里应该注意的是,这个密码文件的permission属性应该设置为只有所有者才可读。
#/usr/local/rsync/bin/rsync-vzrtopgprogressdeletersync _ user @ 192 . 168 . 0 . 2:rsync _ module _ name 1/tmp/
密码:
或者您可以创建一个密码文件。
因为crontab需要由系统执行,所以在这里读入密码文件。
这一次成功了。
请进入下一页:同步命令说明。
-同步命令描述:-
1显示目录的内容。
命令
——
a) rsync
rsync -r
c) rsync插孔@192.168.0.1:
d) rsync ssh_user@192.168.0.1:
命令描述
———
a)显示目录的内容(第一层)
b)递归显示目录的内容。
c)显示远程主机目录的内容。
*注1:端口模式,基于rsync用户的身份验证
*注2:2:rsync服务器上的目录必须拥有xx7的权限。
d)检查远程主机目录的内容。
*注1:远程shell模式,基于通过ssh连接的系统本地用户的身份验证。
*注2:这里只使用了一个冒号(:)。同时用户名是远程主机的ssh用户,密码也是ssh用户对应的密码。
*注3:如果使用''将列出文件夹本身的信息。要列出文件夹内容,应该使用“/”。
参数描述
———
-r对目录的递归操作
2本地目录之间的同步
命令
——
A a) rsync -av -progress/***注意(/) * * *
b)rsync-av进度
c)rsync-avu进度删除/
d)rsync-avprogresstemp-dir=/tmp/
命令描述
———
a)将src-dir目录中的所有文件同步到dst-dir目录
b)将src-dir目录中的所有文件同步到dst-dir/src-dir目录
c)将src-dir目录的内容按差异更新到dst-dir目录,如有增加/更新则添加和替换,如有减少则删除。
d)大于a)temp-dir=/tmp,即/tmp指定为临时交换区,可以避免由于目标目录空间不足导致文件无法同步的错误。
参数描述
———
-a相当于-rlptgoD的集合。
-u相当于- update,如果目标文件比源文件新,则不更新。
-v显示同步文件
进度显示文件同步过程中的进度百分比和传输速率。
-delete删除目标目录中的文件比源目录中的文件多。
3不同主机之间的同步
命令
——
a)rsync-avz进度插孔@192.168.0.1:/
b)rsync-avzprogress jack @ 192 . 168 . 0 . 1:/password-file=/home/jack/rsync . jack
c)rsync-avuz进度删除jack @ 192 . 168 . 0 . 1:/password-file=/home/jack/rsync . jack
d)rsync-avz进度插孔@192.168.0.1:/
命令描述
———
a)将本地目录的内容同步到远程主机192.168.0.1的目录。jack是一个rsync数据库用户(参见3。/etc/rsync.secrets)
b)通过自动读取用户密码实现非交互登录文件同步。
c)比b)有更多的-u和- delete
d)将远程主机内容同步到本地目录。