rsync工具简介
rysnc是一个数据镜像及备份工具,具有可使本地和远程两台主机的文件,目录之间,快速同步镜像,远程数据备份等功能。在同步过程中,
rsync是根据自己独特的算法,只同步有变化的文件,甚至在一个文件里只同步有变化的部分,所以可以实现快速的同步数据的功能。
两台机器都需要安装软件包,这里不罗嗦了。
rysnc一般是通过
xinetd进行启动的。
修改
/etc/xinetd.d/rsync,只修改一个地方
# default: off
# description: The rsync server is a good addition to am ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = yes 修改为disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
加入rc.local
编辑/etc/rc.d/rc.local,在最后添加:
/usr/local/bin/rsync –daemon
接下来编辑配置文件,手动创建rsyncd.conf
uid = nobody
gid = nobody
use chroot = no #最好不使用
chroot
max connections = 9 #最大连接数
list = yes #允许列出文件清单
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
hosts allow = 192.168.0.2 #只允许这个主机访问
[html] #发布项
path = /var/www/html/ #发布的路径
ignore errors
read only = yes #只读
auth users = backup #认证用户为root
secrets file = /etc/sery.pass #密码文件
下面是密码文件
cat /etc/sery.pass
backup:123456
权限为
600
首次启动
rsync
rsync –daemon –config=/etc/rsyncd.conf
如果提示
failed to create pid file /var/run/rsyncd.pid: File exists
使用指令
rm -rf /var/run/rsyncd.pid
重启已经在运行的rsync
ps -ef | grep rsync
root 27284 1 0 10:26 ? 00:00:00 rsync –daemon –config=/etc/rsyncd.conf
root 30516 29986 0 18:35 pts/3 00:00:00 grep rsync
kill -9 27284
rsync –daemon –config=/etc/rsyncd.conf
服务器端配置完成,客户端只需要安装
rsync包即可
接下来创建密码文件
[root@mailsvr ~] # cat /etc/sery.pass
123456 #这里只需要输入服务器端密码文件中定义的密码即可。
设置权限为只读600
使用命令开始同步
rsync -vzrtopg –progress –delete –password-file=/etc/sery.pass
[email protected]::html /home/
解释:
--password-file=/etc/sery.pass 这段是密码文件,如果不加这段,需要手动输入服务器端定义好的密码。
如果文件比较大,可以使用nohup将进城放在后台执行,加上&
上面的表示将远程机器192.168.0.2机器上发布的html目录,同步到本地机器的/home/目录下。
解决错误
用户密码错误
@ERROR: auth failed on module ***
rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]
检查服务器端存储密码文件和客服端密码文件。
- 服务器密码文件 /etc/rsyncd.secrets 格式为: username:password
- 客服端密码文件 password.rsync 格式为:password
文件权限错误
password file must not be other-accessible
continuing without password file
检查服务器存储密码文件和客服端密码文件。
- 服务器密码文件 /etc/rsyncd.secrets 权限为600: chmod 600
- 客服端密码文件 password.rsync 权限为600:chmod 600