Rsync 安装
安装环境:FreeBSD 6.0-RELEASE
所需软件:rsync-3.0.7.tar.gz
安装路径:/usr/local/rsync
下载地址:
wget http://samba.org/ftp/rsync/src/rsync-3.0.7.tar.gz
安装过程:
tar xvzf rsync-3.0.7.tar.gz
cd rsync-3.0.7
./configure --prefix=/usr/local/rsync
make
make install
参数说明:--prefix 指定rsync要安装的目录.
至此,安装过程就结束了
Rsync配置
/etc/rsyncd.conf (默认是没有的,可以手工创建)
#全局选项
strict modes =yes #是否检查口令文件的权限
port = 873 #默认端口873
log file = /var/log/rsyncd.log #日志记录文件
#pid file = /usr/local/rsync/rsyncd.pid #运行进程的ID写到哪里
#模块选项
[test] # 这里是认证的模块名,在client端需要指定
max connections = 5 #客户端最大连接数,默认0(没限制)
uid = livedoorcn #指定该模块传输文件时守护进程应该具有的uid
gid = livedoorcn #指定该模块传输文件时守护进程应该具有的gid
path = /home/rsync_test # 需要做备份的目录
ignore errors # 可以忽略一些无关的IO错误
read only = no #no客户端可上传文件,yes只读
write only = no #no客户端可下载文件,yes不能下载
hosts allow = * #充许任何主机连接
hosts deny = 10.5.3.77 #禁止指定的主机连接
auth users = livedoorcn # 认证的用户名,如果没有这行,则表明是匿名
secrets file = /usr/local/rsync/rsyncd.scrt # 指定认证口令文件位置
生成rsync密码文件
在server端生成一个密码文件/usr/local/rsync/rsyncd.scrt
vi rsyncd.scrt
---------content----------
livedoorcn:******
----------end-------------
注意:密码文件的权限,是由rsyncd.conf里的参数
strict modes =yes/no 来决定
Rsync 的启动
rsycn 的启动方式有多种,我们在这里介绍以下几种:
●. 守护进程方式:
/usr/local/rsync/bin/rsync --daemon
●.inetd方式:
在/etc/services中加入:
rsync 873/tcp # rsync
rsync 873/udp # rsync
然后在/etc/inetd.conf中加入:
rsync stream tcp nowait root /usr/local/bin/rsync rsyncd --daemon
●.加入rc.local(FreeBSD)
编辑/etc/rc.d/rc.local,在最后添加:
/usr/local/rsync/bin/rsync --daemon
验证启动是否成功
ps aux | grep rsync
root 59120 0.0 0.2 1460 972 ?? Ss 5:20PM 0:00.00 /usr/local/rsync/bin/rsync –daemon
netstat -an | grep 873
tcp4 0 0 *.873 *.* LISTEN
--------------------------------------------------------------------------
Rsync 客户端安装(我这里server和client是同一台机器)
安装环境:FreeBSD 6.0-RELEASE
所需软件:rsync-3.0.7.tar.gz
安装路径:/usr/local/rsync
下载地址:
http://rsync.samba.org/ftp/rsync/rsync-3.0.7.tar.gz安装过程:
tar xvzf rsync-3.0.7.tar.gz
cd rsync-3.0.7
./configure --prefix=/usr/local/rsync
make
make install
参数说明:--prefix 指定rsync要安装的目录.
至此,安装过程就结束了
实例演示
cd /usr/local/rsync/bin
下载文件
./rsync -vzrtopg --progress --delete livedoorcn@10.5.3.98::test /tmp/rsync
上传文件
./rsync -vzrtopg --progress --delete /tmp/rsync livedoorcn@10.5.3.98::test
/usr/local/rsync/bin/rsync -avzP --password-file=/etc/rsync.scrt --delete n3cuser@202.153.165.32::test /home/test
--password-file=/etc/rsync.scrt 密码从此文件读取,不用再输入密码。
--delete rsync客户端和服务端同步的目录完全一致,客户端要同步的目标目录如果在服务器端没有的文件目录将被删除。
Linux下使用rsync最快速删除海量文件的方法:
1、先安装rsync:
yum install rsync
2、建立一个空的文件夹:
mkdir /tmp/test
3、用rsync删除目标目录:
rsync --delete-before -a -H -v --progress --stats /tmp/test/ log/
这样我们要删除的log目录就会被清空了,删除的速度会非常快。rsync实际上用的是替换原理,处理数十万个文件也是秒删。
格式:
rsync --delete-before -a -H -v --progress --stats
选项:
--delete-before 接收者在传输之前进行删除操作
--progress 在传输时显示传输过程
-a 归档模式 表示以递归方式传输文件,并保持所有文件属性
-r 对子目录以递归方式处理
-H 保持硬连接的文件
-v 详细输出模式
--stats 给出某些文件的传输状态
如果是紧急情况需要立马删除的话,可以用mv命令移动到其它目录,以后再慢慢删除。
##################
# Linux To Linux #
##################
1、架构
服务端192.168.1.82 centos 6.2 x64
客户端192.168.1.10 centos 6.2 x64
2、安装
yum -y install rsync
3、配置
(1)服务端
A,配置文件
[root@server /root]#vim /etc/rsyncd.conf
uid = root
gid = root
use chroot = no
max connections = 5
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[test]
path=/tmp/test
#exclude = wap/
comment = test
ignore errors
read only = no
list = no
hosts allow = 192.168.1.0/255.255.0.0
auth users = root
uid = root
gid = root
secrets file = /etc/rsyncd.secrets
B,创建密码文件并设置权限
[root]#vim /etc/rsyncd.secrets
123456
root:123456
C,调整权限
[root]#chmod 0600 /etc/rsyncd.secrets
D,启动
[root]#rsync --daemon
(2)客户端
A,创建密码文件设置权限
[root]#vim /etc/rsyncd.secrets
123456
root:123456
[root]#chmod 0600 /etc/rsyncd.secrets
B,同步命令
[root]#/usr/bin/rsync -auzv --progress --delete --password-file=/etc/rsyncd.secrets root@192.168.1.82::test /data/test
####################
# Linux To windows #
####################
1、架构
服务端192.168.1.82 centos 6.2 x64
客户端192.168.0.28 Windows 2003
服务器配置同上,参考不变
2,客户端安装客户端文件 cwRsync
默认安装到C:\Program Files\cwRsync\目录下,然后再C:\Program Files\cwRsync\bin目录下简历test.bat的文件:
rsync -vzrtopg --progress --password-file="/cygdrive/f/user/rsyncd.secrets" root@192.168.1.82::dbbak /cygdrive/f/dbbak/weborcbak
命令说明:
--password-file="/cygdrive/f/user/rsyncd.secrets"
##在f:\user目录下建文件rsyncd.secrets,写入文件内容同服务器,可直接建立计划任务调用同步。
调用192.168.1.82服务器的dbbak 同步到192.168.0.28的f:\dbbak\weborcbak