一、服务器端配置:
yum -y install xinetd rsync
vi /etc/xinetd.d/rsync
将如下代码:
service rsync
{
disable = yes
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = –daemon
log_on_failure += USERID
}
中的 disable = yes
改成 disable = no
.
然后启动 xinetd:
/etc/init.d/xinetd start
注意:如果服务器上装有防火墙记得要打开端口,默认端口是873.
telnet 127.0.0.1 873
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
设置防火墙规则:
iptables -A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 873 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 873 -j DROP
编辑配置文件:
vi /etc/rsyncd.conf (这个文件如果不存在自己创建)
#Global Settings
uid = root
gid = root
use chroot = no
max connections = 20
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
comment = hello world
#motd file = /etc/rsyncd.motd
[backup]
path = /titan24/www/repos
auth users = rsync
secrets file = /etc/rsyncd.secrets
read only = no
hosts allow = 192.168.3.128
hosts deny = *
list = true
#ignore errors
#exclude = cache/111/ cache/222/
修改:
vi /etc/rsyncd.secrets
rsync:111111
给文件正确的权限
chown root:root /etc/rsyncd.secrets
chmod 600 /etc/rsyncd.secrets
二、client 端进行同步
客户端默认好像已经装了rsync,没有的话装下:
yum -y install rsync
执行异步同步操作:
/usr/bin/rsync -avz --progress [email protected]::backup /www
crontab -e #(可以定时每三分钟同步一次文件)
*/3 * * * * rsync -avz --progress [email protected]::backup /www
下面这个命令完整一点:
vi /etc/rsyncd.pas
加入密码:
rsyncofpass
注意,客户端的密码文件只需要密码,而不需要用户名!
更改文件权限:
chmod 0600 /etc/rsyncd.pas
rsync -vzrtopgu --progress --delete --password-file=/etc/rsyncd.pas [email protected]::rsync_module_name1 /www/
这个命令行中-vzrtopg里的v是verbose.
z是压缩传输,
r是recursive,
topg都是保持文件原有属性如属主、时间的参数.
u是只同步已经更新的文件,避免没有更新的文件被重复更新一次,不过要注意两者机器的时钟的同步.
–progress是指显示出详细的进度情况,
–delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致.
后面的[email protected]::rsync_module_name1中,之后的rsync_module_name1是模块名, 也就是在/etc/rsyncd.conf
中自定义的名称,rsync_user是指定模块中指定的可以同步的用户名.
最后的/www是备份到本地的目录名.
在这里面,还可以用-e ssh的参数建立起加密的连接.
可以用–password-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读.
/usr/local/rsync/bin/rsync -vzrtopg –progress –delete [email protected]::rsync_module_name1 /tmp/
或者你也可以制定password文件.
由于需要系统crontab执行,所以这里采用读入密码文件的方式,这个时候就成功了.
如若转载,请注明出处:https://www.ozabc.com/jianzhan/24427.html