一、准备
版本:3.0.7
OS:RH5.4
二、下载安装
#cd /usr/local/src/tarbag/ //切换下载目录
#wget http://d3.766.com/766down/rsync-3.0.7.tar.gz //wget下载文件
#tar –xzvf rsync-3.0.7.tar.gz –C ../software/ //解压tar包到指定目录
#cd /usr/local/src/software/ rsync-3.0.7/ //切换到解压目录
#./configure –prefix=/usr/local/rsync –disable-ipv6 //配置
#make && make install //编译安装
正常安装RH的时候是带RSYNC的,运行文件放在/usr/bin/rsync
三、配置rsync server
1、启动RSYNC
#vi /etc/xinetd.d/rsync
service rsync
{
disable = no 把原来的YES改成NO
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
#chkconfig rsync on 让rsync随系统启动
2、配置/etc/rsyncd.conf(需要手动生成)
rsyncd.conf的参数写在上边就是全局参数和写在模块里的就是模块参数
#vi /etc/rsyncd.conf
全局参数
uid = root //运行RSYNC守护进程的用户
gid = root //运行RSYNC守护进程的组
use chroot = no //不使用chroot
max connections = 4 // 最大连接数为4
strict modes =yes //是否检查口令文件的权限
port = 873 //默认端口873
模块参数
[backup] //这里是认证的模块名,在client端需要指定
path = /home/backup/ //需要做镜像的目录,不可缺少!
comment = This is a test //这个模块的注释信息
ignore errors //可以忽略一些无关的IO错误
read only = yes // 只读
list = no //不允许列文件
auth users = root //认证的用户名,如果没有这行则表明是匿名,此用户与系统无关
secrets file = /etc/rsync.pas //密码和用户名对比表,密码文件自己生成
hosts allow = 192.168.1.1,10.10.10.10 //允许主机
hosts deny = 0.0.0.0/0 //禁止主机
#transfer logging = yes
注释:下面这些文件是安装完RSYNC服务后自动生成的文件
pid file = /var/run/rsyncd.pid //pid文件的存放位置
lock file = /var/run/rsync.lock //锁文件的存放位置
log file = /var/log/rsyncd.log //日志记录文件的存放位置
3、配置rsync密码(在上边的配置文件中已经写好路径) /etc/rsync.pas(名字随便写,只要和上边配置文件里的一致即可),格式(一行一个用户) 账号:密码
例子:
#vi /etc/rsync.pas
Hening:111111
权限:因为rsync.pas存储了rsync服务的用户名和密码,所以非常重要。要将rsync.pas设置为root拥有, 且权限为600。
#cd /etc
#chown root:root rsync.pas
#chmod 600 rsync.pas
4.rsyncd.motd(配置欢迎信息,可有可无)
rsyncd.motd记录了rsync服务的欢迎信息,你可以在其中输入任何文本信息,如:
# vi /etc/rsyncd.motd
Welcome to use the rsync services!
5、让配置生效
#service xinetd restart
四、启动rsync server
rsync服务端启动的两种方法
1、启动rsync服务端(独立启动)
#/usr/bin/rsync –daemon
2、启动rsync服务端 (有xinetd超级进程启动)
# /etc/rc.d/init.d/xinetd reload
五:加入rc.local
在各种操作系统中,rc文件存放位置不尽相同,可以修改使系统启动时把rsync --daemon加载进去。
#vi /etc/rc.local
加入一行/usr/local/rsync –daemon
六.检查rsync
#netstat -a | grep rsync
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN
七.配置rsync client
1、设定密码
#vi /etc/rsync.pas
111111
2、修改权限
#cd /etc
#chown root:root rsync.pas
#chmod 600 rsync.pas
3、client连接SERVER
从SERVER端取文件
/usr/bin/rsync -vzrtopg --progress --delete [email protected]::backup /home/backup --password-file=/etc/rsync.pas
向SERVER端上传文件
/usr/bin/rsync -vzrtopg --progress --password-file=/root/rsync.pas /home/backup [email protected]::backup
这个命令将把本地机器/home/backup目录下的所有文件(含子目录)全部备份到RSYNC SERVER的backup模块的设定的备份目录下。
请注意如果路径结束后面带有"/",表示备份该目录下的东东,但不会创建该目录,如不带"/"则创建该目录。
RSYNC用法:
rsync [OPTION]... [USER@]HOST::SRC [DEST] #从RSYNC SERVER备份文件到本地机器
rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST #从本地机器备份文件到RSYNC SERVER
4、自动运行
1)vi /usr/local/rsync/time.sh //制作脚本文件
把下边的内容复制进去
#!/bin/bash
/usr/bin/rsync -vzrtopg --progress --delete [email protected]::backup /home/backup --password-file=/etc/rsync.pass
2) crontab -e
加入55 * * * * /usr/local/rsync/time.sh //每55分运行一次time.sh脚本文件
解释:
--delete:backup模块中存在客户机不存在文件将被删除
--password-file:与服务器端匹配的密码文件
/ftpdata/client/:同步源目录
[email protected]::backup:同步目标模块,以及root为服务器端认证用户
注意点:
1、rsync服务器端必须存在设定的auth users的真实用户
2、客户端和服务器的rsyncd.pas文件权限必须为600
3、Secrets file 路径必须正确,否则日志中将会提示密码文件不存在
4、Uid与Gid如果为nobody,则模块的所有者和所有组必须改为nobody
5、Rsyncd.pas内的密码和系统用户的密码不同,服务器为用户密码对,而客户端仅仅是密码
6、服务器端rsyncd.pas内可以有多个用户密码对,客户端的rsyncd.pas只能有一个密码(暂)
7、有问题查看/usr/local/rsync/var/rsyncd.log内的日志
几种同步方法:
rsync –anH 本地目录 远程IP:具体目录
(回车之后提示输入root密码,相当于拷贝)
例如:
rsync –avH /usr/local/src 192.168.0.2:/bak/test/ -》把src整个目录拷到test内
rsync –avH /usr/local/src/ 192.168.0.2:/bak/test/ ->把src目录内的所有文件拷贝到test内
rsnc –anH 远程IP:具体目录 本地目录—>远程同步到本地,需要root密码
rsync –anH rsync用户@IP::模块 本地目录 -->从服务器模块同步到本地目录