rysnc的主页地址为:
http://rsync.samba.org/
目前最新版本为3.0.6。可以选择从原始网站下载:
http://rsync.samba.org/ftp/rsync/
也可以选择从本站下载:rsync 3.0.6
一、下载、安装rsync
#tar zxvf rsync-3.0.6.tar.gz
#cd rsync-3.0.6
#./configure --prefix=/usr/local/rsync
#make
#make install
**** 正常安装RH的时候是带RSYNC的,运行文件放在/usr/bin/rsync
二、配置rsync server
1.启动rsync
[[email protected] ~]# vim /etc/xinetd.d/rsync
把 disable = no 把yes改为NO
#default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = no
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
随系统启动rsync
[[email protected] ~]# chkconfig rsync on
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
注释:下面这些文件是安装完RSYNC服务后自动生成的文件
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
模块参数
[caiwubeifen] //这里是认证的模块名,在client端需要指定
comment= backup caiwu //这个模块的注释信息。
path=/home/backup //需要要备份镜像的目录路径,必不可少
ignore errors //忽视一些无关的IO错误
read only = no //用yes,只能从service端啦数据,无法向service端推数据。
auth users = caiwu //认证的用户名,如果没有这行则表明是匿名,此用户与系统无关
secrets file= /etc/rsync.pas //密码和用户名对比表,密码文件自己生成
#hosts allow=172.16.78.0/22 //允许主机
#hosts deny = 0.0.0.0/0 //禁止主机
3、配置rsync密码(在上边的配置文件中已经写好路径) /etc/rsync.pas(名字随便写,只要和上边配置文件里的一致即可),格式(一行一个用户)
账号:密码
[[email protected] ~]# vim /etc/rsyncd.pas
caiwu:123456
权限:因为rsync.pas存储了rsync服务的用户名和密码,所以非常重要。要将rsync.pas设置为root拥有, 且权限为600。
[[email protected] ~]# cd /etc/
[[email protected] etc]# chown root.root rsync.pas
[[email protected] etc]# chmod 600 rsync.pas
[[email protected] etc]# ll rsync.pas
-rw-------. 1 root root 13 4月 13 02:51 rsync.pas
3.rsyncd.motd(配置欢迎信息,可有可无)信息输入内容随意。
[[email protected] etc]# vim /etc/rsync.motd
Welcome to use the lecaicaiwu rsync services!
4、让配置生效
[[email protected] ~]# service xinetd restart
停止 xinetd: [确定]
正在启动 xinetd: [确定]
三、启动rsync server
RSYNC服务端启动的两种方法
1、启动rsync服务端(独立启动)
#/usr/bin/rsync –daemon
2、启动rsync服务端 (有xinetd超级进程启动)
# /etc/rc.d/init.d/xinetd reload
例子:
[[email protected] ~]# /etc/rc.d/init.d/xinetd reload
重新载入配置: [确定]
四:加入rc.local
在各种操作系统中,rc文件存放位置不尽相同,可以修改使系统启动时把rsync --daemon加载进去
[[email protected] ~]# vim /etc/rc.local
加入一行/usr/bin/rsync --daemon
例子:
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don‘t
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
/usr/bin/rsync --daemon
五.检查 rsync
[[email protected] ~]# netstat -a | grep rsync
tcp 0 0 *:rsync *:* LISTEN
[[email protected] ~]# lsof -i:873
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
xinetd 4189 root 5u IPv6 233004 0t0 TCP *:rsync (LISTEN)
服务端的文件:
[[email protected] home]# cd /home/backup/
[[email protected] backup]# ll
总用量 4
-rw-r--r--. 1 root root 0 4月 16 00:03 test
drwxr-xr-x. 2 root root 4096 4月 16 00:04 test1
六.关闭防火墙和通信限制selinux
[[email protected] home]# vi /etc/selinux/config
SELINUX=disabled 改为disabled 是就不要改了
[[email protected] home]# setenforce 0 更改完selinux 不重启,文件生效
[[email protected] home]# service iptables stop 有需求可选择永久关闭
七.配置 rsync client
1.设定密码
[[email protected] ~]# vi /etc/rsync.pas
[[email protected] etc]# cat /etc/rsync.pas
123456
[[email protected] etc]# cd /etc/
[[email protected] etc]# ll rsync.pas
-rw------- 1 root root 7 Apr 15 00:57 rsync.pas
[[email protected] etc]# chown root.root rsync.pas
[[email protected] etc]# chmod 600 rsync.pas
同样关闭防火墙和通信限制selinux。
从SERVER端取文件
2[[email protected] home]# /usr/bin/rsync -vzrtopg --progress --delete [email protected]::caiwubeifen /home/backup --password-file=/etc/rsync.pas
receiving incremental file list
sent 63 bytes received 126 bytes 378.00 bytes/sec
total size is 0 speedup is 0.00
[[email protected] home]# cd backup/
[[email protected] backup]# ll
total 4
-rw-r--r-- 1 root root 0 Apr 15 2015 test
drwxr-xr-x 2 root root 4096 Apr 15 2015 test1
向SERVER端上传文件
[[email protected] backup]# /usr/bin/rsync -vzrtopg --progress --password-file=/etc/rsync.pas /home/backup [email protected]::caiwubeifen
sending incremental file list
backup/
backup/test
0 100% 0.00kB/s 0:00:00 (xfer#1, to-check=2/4)
backup/jiangwei/
backup/test1/
sent 140 bytes received 39 bytes 119.33 bytes/sec
total size is 0 speedup is 0.00
rsync命令参数
-v表示verbose详细显示
-z表示压缩
-r表示recursive递归
-t表示保持原文件创建时间
-o表示保持原文件属主
-p表示保持原文件的参数
-g表示保持原文件的所属组
-a存档模式
-P表示代替-partial和-progress两者的选项功能
-e ssh建立起加密的连接。
--partial阻止rsync在传输中断时删除已拷贝的部分(如果在拷贝文件的过程中,传输被中断,rsync的默认操作是撤消前操作,即从目标机上
删除已拷贝的部分文件。)
--progress是指显示出详细的进度情况
--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。
--exclude不包含/ins目录
--size-only 这个参数用在两个文件夹中的差别仅是源文件夹中有一些新文件,不存在重名且被修改过的文件,因为这种文件有可能会因为内容被修改可大小一样,而被略过。这个参数可以大大地提高同步的效率,因为它不需要检查同名文件的内容是否相同。
--password-file来指定密码文件,内容包含server端指定认证用户的密码。
这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。
[email protected]::caiwubeifen
caiwu是指server端指定认证的用户
172.16.22.141是指服务器端的ip
::caiwubeifen 表示服务器端需要同步的模块名称;
八、自动运行
vi /root/time.sh
内容:
/usr/bin/rsync -vzrtopg --progress --delete [email protected]::caiwubeifen /home/backup --password-file=/etc/rsync.pas
2) crontab -e
10 * * * * /root/time.sh 测试