一、什么是rsync

二、rsync的功能特性

三、编译安装rsync软件

四、rsync的应用模式

五、rsync 借助ssh通道技术案例

六、企业案例一:搭建远程容灾备份系统

练习一推送文件方式同步并排除指定的目录和文件

练习二测试主机之间数据完全同步(无差异同步)

练习三rsync多目录多模块同步

配置防火墙允许rsync服务

附加一:rsync服务端部署流程回顾

附加二:rsync自我模拟排错思路及实战

附加三rsync生产排错整理我的FAQ

inotify介绍

企业应用案例:利用rsync+inotify搭建实时同步系统。-------------------------------------

Rsync服务器配置,安装、配置、实例以及原理详解。

5.3.6 企业应用案例:利用rsync+inotify搭建实时同步系统

===================rsync 简介=======================

一、什么是rsync

rsync简介、传统的数据备份方式有cp命令和wget命令

cp命令是源文件和目标文件都在本地。

该命令仅实现对文件的一种完整复制,如果要复制的数据量巨大,那么备份的时间就会变得很长,

wget命令通过网络进行备份,它不支持增量备份,每次都需要将所有的数据重新在网络上传输一遍,

而不考虑哪些文件是更新过来,因此该命令的效率比较点。

我们今天就介绍一个款实用的工具rsync,

借助于这个工具能轻松实现数据的本地镜像和远程备份。

什么是rsync

rsync是linux 系统下的文件同步和数据传输工具,它采用rsync算数。使一个客户机和远程文件服务器

之间的文件同步,通过rsync可以将同一个服务器的数据从一个分区备份到另一个分区,也可以将本地系统的数据

通知网络传输方式备份到任何一个远程主机上;rsync可以在中断之后恢复传输;rsync只传输源文件和目标

文件之间不一致的部分;rsync可以执行完整备份或增量备份。


二、rsync的功能特性

rsync即remote sync,从软件名称上就可以看出它所实现的功能,rsync有如下特性:

·可以镜像保存整个目录树和文件系统。

·可以增量同步数据,文件传输效率高,因而同步时间很短。

·可以保持原有文件的权限、时间等属性。

·加密传输数据,保证了数据的安全性。

·可以使用rcp、ssh等方式来传输文件,当然也可以直接通过socket连接传输文件。

支持匿名传输。

-v 告诉rsync详细说明正在发生什么

-a 告诉rsync从源目录 复制所有文件和目录

-z 告诉rsync压缩数据以使网络传输更快(在进入线缆前我们的数据将被加密和压缩)

-e ssh 告诉rsync使用我们的SSH shell来执行网络传输,你可以通过设置RSYNC_RSH shell环境变量来避免每次输入rsync命令时都需要加上这个参数,参考rsync的man手册获得详细信息。

--delete 告诉rsync删除备用服务器上文件,如果它们在主服务器已经不存在的话(这个选项不会移除任何主或源数据)。

/www/ 这是SSH客户端上源目录,它后面带有斜线,如果你想要rsync复制整个目录以及它下面的内容,这个斜线就是必需的

10.1.1.2:/www 这是目标ip地址和目标目录


三、编译安装rsync软件

[root@director rsync-3.0.4]# tar zxvf rsync-3.0.4.tar.gz

[root@director rsync-3.0.4]# cd rsync-3.0.4

[root@director rsync-3.0.4]# ./configure

config.status: creating popt/dummy

config.status: creating shconfig

config.status: creating config.h

rsync 3.0.4 configuration successful

[root@director rsync-3.0.4]#

[root@director rsync-3.0.4]# make

[root@director rsync-3.0.4]# make install


四、rsync的应用模式

rsync有4种应用模式,第一种是shell应用模式,也叫本地模式,

第二种是远程shell模式,它是利用ssh执行底层连接和加密传输;

第三种是查询模式,与ls命令实现的功能类似。

第四种是服务器模式,平时所说的搭建rsync服务器就是指这种模式。

1、本地shell模式

本地shell主要用于复制制定目录到另一个目录,例如:

[root@director src]# rsync -av rsync-3.0.4 /tmp

------------省略--------------

rsync-3.0.4/zlib/zlib.h

rsync-3.0.4/zlib/zutil.c

rsync-3.0.4/zlib/zutil.h

rsync-3.0.4/zlib/zutil.o

sent 5472930 bytes received 5190 bytes 10956240.00 bytes/sec

[root@director src]# rsync -av rsync-3.0.4/ /tmp

sent 5472780 bytes received 5189 bytes 10955938.00 bytes/sec

total size is 5454825 speedup is 1.00

[root@director src]#

rsync -av rsync-3.0.4 /tmp和rsync -av rsync-3.0.4/ /tmp 两个命令是有点差距的。

明显差距就是源参数末尾的斜杠,如果源参数的末尾没有斜杠,就将指定的源目录复制到制定的目录;

如果源参数末尾有斜杠,就会复制制定源目录中的内容到目录中。

命令中:“-a” 即为“--archive”(归档模式),表示以递归方式传输文件,并保持所有文件属性;

“-v”即为“--verbose” 表示输出详细模式信息。

启动rsync服务

以守护进程方式启动rsync服务:

rsync --daemon #-----daemon表示以守护进程的方式启动rsync服务

拓展:rsync的进程参数选项:

--daemon #-----daemon表示以守护进程的方式启动rsync服务

--addrss #-----绑定指定ip地址提供服务。

--config=FILE #---更改配置文件路径,而不是默认的/etc/rsyncd.conf

--prot=PORT #---更改其它端口号提供服务,而不是默认的873端口。

提示:以上几个选项为了解内容,生产场景使用的不多。

操作过程

#rsync --daemon

lsof -i tcp:873

===================rsync 借助ssh通道技术案例=======================

#rsync -avzP /etc/hosts -e "ssh -p30000" lianglab@192.168.1.110:/tmp/

意思:把本地/etc/hosts文件推送到远端ip为192.168.110tmp目录下,SSH端口号为30000

#rsync -avzP -e "ssh -p30000" lianglab@192.168.1.110:/tmp/hosts .

意思:从远端的ip把这个文件拉到本地来。

我们解释一下拉取案例的语法:

rsync -avzP -e "ssh -p 22" lianglab@192.168.1.110:/opt /tmp

说明:

1、-avz相当于-vzrtopgD1,表示同步时文件和目录属性不变。

2、-P显示同步的过程,可以用--progress替换。

3、-e "ssh -p 22" 表示通过ssh的通道传输数据,-p 22可省略。

4、lianglab@192.168.1.110:/opt 远程的主机系统用户,地址,路径

5、/tmp本地的路径。

实例:通过root用户从192。168.1.110的opt目录(包含目录本身)把数据拉到本地的/tmp目录。

推送案例:

raync -vzrtopP -e "ssh -p 22" /etc lianglab@192.168.1.110:/tmp

实例:通过root用户把本地的/tmp目录(不包括目录本身)推送到192.168.1.100的/opt目录。

#rsync -vzrtopP -e 'ssh -p 22' /tmp root@192.168.1.100:/opt

#和拉取的例子几乎一样,只是把源和目的调换一下即可。

password:输入连接主机密码即可。

特别说明:

1上文的数据同步都是通过加密传输,因为通过了ssh通道进行传输,

2、在传输前需要进行连接用户(一般为系统用户)密码验证,需要手工输入密码,这里我们借助前面章节的ssh

key 密钥免登陆验证的方式来实现,无交互验证数据传输。

3、rsync软件必须安装在本地及远程所有机器上。

借助ssh key密钥实现数据免登陆验证加密传输

   说明,如果事先设置了ssh key密钥免登陆验证,即可以用rsync 通过ssh方式免登陆验证同步传输数据,

这是生产场景常用的方法之一。

配置ssh key密钥实现数据免登陆验证。

使用ssh通道批量传输数据脚本

vi lianglab.sh

#!/bin/sh

./etc/init.d/functions

if [$# -ne 1];then

   echo "Usage:$0 argv"

   exit

fi

for ip in 17 18

do

   #scp -P30000 $1 lianglab@192.168.1.$ip:~ >&/dev/null&&\

   #ssh -p30000 -t lianglab@192.168.1.$ip sudo rsync ~/$1 /etc >&/dev/null

   rsync -avzP $1 -e "ssh -p 30000" lianglab@192.168.1.$ip:~ >&/dev/null

   ssh -p30000 -t lianglab@192.168.1.$ip sudo rsync ~/$1 /etc >&/dev/null

   if [ $? -eq 0 ];then

       action "liang $1 successful." /bin/true

   else

       action "liang $1 failure." /bin/false

       fi

   done

===================rsync 借助ssh通道技术案例=======================

 ===================企业案例一:搭建远程容灾备份系统 =======================

spacer.gif

实战练习:

某公司有一台web服务器,里面的数据很重要,但是如果硬盘坏了,数据就会丢失,现在领导要求你把数据在其他机器上做

一个周期性定时备份。要求如下:

每天晚上00点整在web服务器A上打包备份网站程序目录并通过rsync命令推送到服务器B上备份保留(备份思路可以是先在本地按日期

打包,然后在推到备份服务器上)

具体操作如下:

1、web服务器A和备份服务器B的备份目录必须都为/backup

2、web服务器站点目录假定为(/var/www/html)

定时备份脚本

cd /var/www &&\

tar zcf /backup/192.168.1.110/html_$(date +%F).tar.gz./html &&\

cd /backup/ &&\

rsync -az . rsync_backup@192.168.1.100::backup --password-file=/etc/rsync.password >&/dev/null

find /backup --type f -name "*.gz" -mtime +7|xargs rm -f

部署前的准备工作,三台机器最佳

A>查看一下系统内核版本

[root@director src]# cat /etc/redhat-release

Red Hat Enterprise Linux Server release 5.4 (Tikanga)

[root@director src]# uname -r

2.6.18-164.el5

[root@director src]# lsb_release -a

LSB Version:    :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch

Distributor ID: RedHatEnterpriseServer

Description:    Red Hat Enterprise Linux Server release 5.4 (Tikanga)

Release:        5.4

Codename:       Tikanga

[root@director src]#

B>主机网络参数设置

主机名        网卡eth0    默认网关    用途

A-server    192.168.1.100   192.168.1.254    rsync服务器

B-server    192.168.1.110   192.168.1.254   rsync节点服务器

C-server    192.168.1.120   192.168.1.254    rsync节点服务器

提示:子网掩码均为255.255.255.0

具体需求:

要求在A-server上以rsync守护进程的方式部署rsync服务,使得所有rsync节点客户端主机,

可以把本地数据通过rsync的方式备份到rsync服务器A-server上。

本例的客户端为B-server、C-server。

开始部署rsync------rsync服务器端操作过程:

配置rsyncd.conf


1、配置rsyncd.conf

首先确认软件是否安装:

[root@director src]# rpm -aq rsync   5.5默认版本是2.6

rsync-2.6.8-3.1

[root@c-server ~]# rpm -aq rsync    5.8版本的centos默认安装是3.0版本

rsync-3.0.6-4.el5_7.1


2、rsync的配置文件为/etc/rsyncd.conf 在安装完rsync时,默认没有这个文件,需要手动建立一个即可,rsyncd.conf文件由一个或多个模块结构组成,

包括全局参数和模块参数,配置内容如下:

vi /etc/rsyncd.conf

#rsync_config______start

#created by lianglab 21:55   2013-6-13

#QQ 865362365

#花名:瀚亮

#Blog http://hi.baidu.com/zll56281688 http://zll56281688.blog.51cto.com

## rsyncd.conf start ##

uid = rsync

gid = rsync

use chroot = no

max connections = 100

strict modes = yes

timout = 300

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log

[lianglab]

path = /lianglab

comment = lianglab file

ignore errors

read only = no

write only = no

host allow = *

host deny = 192.168.1.111

list = false

auth users =backup

secrets file = /etc/rsync.password

上面每个选项解释:

1##uid此选项指定当该模块传输文件时守护进程应该具有的用户ID,默认为nobody。

2##gid此选项指定当该模块传输文件时守护进程应该具有的用户主ID,默认nobody。

3##use chroot如果为true 在给客户端传输文件前 “chroot to the path”这是rsync安全配置,因为我们大多数都是在内网使用,所以不配也可以。

4##max connections指定模块的最大并发连接数,超过限制的连接请求将被暂时限制,默认为0,没有限制。

5##strict modes指定是否检查口令文件的权限,yes为检查口令文件权限。如果设置为yes,密码文件的权限必须为root用户权限。

6##timeout 默认为0

7##pid file 指定rsync守护进程对应的PID文件路径

8##lock file指定支持max connections的锁文件,默认值是/var/run/rsync.lock

9##log file 指定了rsync的日志输出文件路径

10##[lianglab] 表示定义一个模块的开始,lianglab就是对应的模块名称。

11##path此选项用来指定需要备份的文件和目录,是必须设置的项,

12##ignore errors 表示可以忽略一些无关的I/O错误

13##read only 设置为no表示客户端可以上传文件,设置为yes表示只读

14##write only 设置为no表示客户端可下载文件,设置为yes表示不能下载。

15##host allow设置可以连接rsync服务器的主机,“*”表示允许任何连接的主机。

16##host deny 设置禁止连接rsync服务器的主机地址。

17##list,选项用来设定当客户请求可以使用的模块列表时,该模块是否被列出,默认true

18##auth users  用来定义可以连接该模块的用户名,

19## secrets file 此选项用于指定一个包含“用户名:密码”格式的文件,用户名就是auth users选项定义的用户,密码可以随便指定。


3、 dos2unix /etc/rsyncd.conf

[root@rsync ~]# dos2unix /etc/rsyncd.conf

dos2unix: converting file /etc/rsyncd.conf to UNIX format ...

[root@rsync ~]#

4、创建一个对外共享的目录,我们要授权lianglab这个目录的rsync权限,但是我们本机没有rsync用户,我们现在就要创建rsync这个用户。useradd rsync -s /sbin/nologin -M    ##创建一个rsync用户,拒绝登录并没有在/home下面创建rsync目录。

[root@rsync ~]# mkdir -p /lianglab

[root@rsync lianglab]# useradd rsync -s /sbin/nologin -M

[root@rsync lianglab]# chown -R rsync.rsync /lianglab     #授权操作

[root@rsync lianglab]#

5、配置用于rsync同步的账号和密码以及账号文件权限。

注意:其中backup:lianglab中的backup为同步传输用到的虚拟账号,这个账号仅为rsync的账号,不需要是系统账号,后面的lianglab为密码,不超过8位数,账号和密码中间用冒号分割。

[root@rsync lianglab]# echo "backup:lianglab" >>/etc/rsync.password

[root@rsync lianglab]# cat /etc/rsync.password

backup:lianglab

[root@rsync lianglab]#

[root@rsync lianglab]# chmod 600 /etc/rsync.password

[root@rsync lianglab]# ll /etc/rsync.password     #操作完检查是一个好习惯

-rw------- 1 root root 16 Jan 24 15:49 /etc/rsync.password

[root@rsync lianglab]#


6、启动rsync服务

以守护进程方式来启动rsync服务

rsync --daemon   #--daemon 表示以守护进程的方式启动rsync服务

rsync的进程参数其它选项解释:

--address  #----绑定指定IP地址提供服务

---config-FILE  #---更改配置文件路径,而不是默认的/etc/rsyncd.conf

--port=PORT #---更改其它端口提供服务,而不是默认的873端口

[root@rsync lianglab]# netstat -ant     #没有启动rsync的时候

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address               Foreign Address             State    

tcp        0      0 127.0.0.1:2208              0.0.0.0:*                   LISTEN    

tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN    

tcp        0      0 0.0.0.0:659                 0.0.0.0:*                   LISTEN    

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN    

tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN    

tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN    

tcp        0      0 127.0.0.1:2207              0.0.0.0:*                   LISTEN    

tcp        0      0 192.168.1.100:22            192.168.1.253:49627         ESTABLISHED

tcp        0      1 192.168.1.100:58614         192.168.1.111:21            SYN_SENT  

tcp        0      0 :::22                       :::*                        LISTEN    

tcp        0      0 ::1:631                     :::*                        LISTEN    

[root@rsync lianglab]#

[root@rsync lianglab]# lsof -i :873


---------------------------启动rsync后的检查操作--------------------------

[root@rsync lianglab]# rsync --daemon

[root@rsync lianglab]# lsof -i :873

COMMAND PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

rsync   544 root    3u  IPv6  45811      0t0  TCP *:rsync (LISTEN)

rsync   544 root    5u  IPv4  45812      0t0  TCP *:rsync (LISTEN)

[root@rsync lianglab]# netstat -lntup | grep 873

tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      544/rsync          

tcp        0      0 :::873                      :::*                        LISTEN      544/rsync          

[root@rsync lianglab]# ps -ef | grep rsync

root       544     1  0 16:05 ?        00:00:00 rsync --daemon

root       551  4404  0 16:06 pts/0    00:00:00 grep rsync

[root@rsync lianglab]#


7、设置rsync服务开启自启动操作

echo "/usr/bin/rsync --daemon" >>/etc/rc.local

注意:当然还可以用chkconfig rsync on 命令,但是要编写适合chkconfig操作的脚本。

重启rsync的命令

pkill rsync    #---关闭rsync服务

rsync --daemon #---开启rsync服务

[root@rsync lianglab]# pkill rsync  #---关闭rsync服务

[root@rsync lianglab]# ps -ef | grep rsync

root       570  4404  0 16:14 pts/0    00:00:00 grep rsync

[root@rsync lianglab]# lsof -i :873

[root@rsync lianglab]# netstat -lntup | grep 873

[root@rsync lianglab]#

[root@rsync lianglab]# rsync --daemon   #---开启rsync服务

[root@rsync lianglab]# netstat -lntup | grep 873

tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      575/rsync          

tcp        0      0 :::873                      :::*                        LISTEN      575/rsync          

[root@rsync lianglab]# lsof -i :873

COMMAND PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

rsync   575 root    3u  IPv6  46196      0t0  TCP *:rsync (LISTEN)

rsync   575 root    5u  IPv4  46197      0t0  TCP *:rsync (LISTEN)

[root@rsync lianglab]# ps -ef | grep rsync

root       575     1  0 16:15 ?        00:00:00 rsync --daemon

root       580  4404  0 16:15 pts/0    00:00:00 grep rsync

[root@rsync lianglab]#

[root@rsync lianglab]# killall rsync      #同样的作用也是杀rsync进程

[root@rsync lianglab]# killall rsync

rsync: no process killed

[root@rsync lianglab]# ps -ef | grep rsync

root       588  4404  0 16:17 pts/0    00:00:00 grep rsync

[root@rsync lianglab]# lsof -i :873

[root@rsync lianglab]# netstat -lntup | grep 873

[root@rsync lianglab]#

解释:killall有时候杀进程一下子杀不死,我们要连续杀,直到出现no process killed为止。

killall -9 rsync  是强制杀进程。

kill -9 PID

kill和killall -9 这个两个命令杀进程,如果杀了,有可能这个服务就起不来了。

我遇到过MySQL

[root@rsync lianglab]# kill -9  rsync

[root@rsync lianglab]# rsync --daemon

failed to create pid file /var/run/rsyncd.pid: File exists

[root@rsync lianglab]#

[root@rsync lianglab]# rm -f /var/run/rsyncd.pid     #解决方法

[root@rsync lianglab]# rsync --daemon

[root@rsync lianglab]#


开始部署rsync------rsync客户端操作过程:

1、客户端创建密码文件,并修改权限,另外一台也是同样的操作。

[root@b-server ~]# echo "lianglab">/etc/rsync.password

[root@b-server ~]# chmod 600 /etc/rsync.password

[root@b-server ~]# ll /etc/rsync.password

-rw------- 1 root root 9 Jan  3 10:01 /etc/rsync.password

[root@b-server ~]# cat /etc/rsync.password

lianglab

[root@b-server ~]#

[root@c-server ~]# echo "lianglab">/etc/rsync.password

[root@c-server ~]# chmod 600 /etc/rsync.password

[root@c-server ~]# ll /etc/rsync.password

-rw------- 1 root root 9 Jan 24 16:33 /etc/rsync.password

[root@c-server ~]# cat /etc/rsync.password

lianglab

[root@c-server ~]#


2、开始备份数据篇---------------------------------------------------

操作场景:备份/var/www/html目录下的文件

备份操作一般都是先打包,在备份,到我们要备份目录的上一级目录中去。

在使用tar命令打包,我们可以把它打包到指定的目录也可以是当前目录

[root@b-server html]# ll /var/www/html/

total 4

-rw-r--r-- 1 root root 29 Jan  3 10:08 index.html

[root@b-server html]#

[root@b-server html]# cd /var/www/

[root@b-server www]# ls

cgi-bin  error  html  icons  manual  usage

[root@b-server www]# tar zcvf html_$(date +%F).tar.gz ./html/

./html/

./html/index.html

[root@b-server www]# ls

cgi-bin  error  html  html_2013-01-03.tar.gz  icons  manual  usage

[root@b-server www]#

---------------------------------------------------------------------------

[root@b-server www]# rsync --avzp html_2013-01-03.tar.gz backup@192.168.1.100::lianglab

rsync: --avzp: unknown option

rsync error: syntax or usage error (code 1) at main.c(1449) [client=3.0.6]

[root@b-server www]#

我们使用telnet命令检查一下服务端的端口是否开启

[root@b-server www]# telnet 192.168.1.100 873

Trying 192.168.1.100...

telnet: connect to address 192.168.1.100: Connection refused

telnet: Unable to connect to remote host: Connection refused

[root@b-server www]# telnet 192.168.1.100 873

Trying 192.168.1.100...

Connected to 192.168.1.100 (192.168.1.100).

Escape character is '^]'.

@RSYNCD: 30.0

^]

telnet> qiu^H^H^[[3~^H^H^[[3~

?Invalid command

telnet> quit

Connection closed.

[root@b-server www]#

[root@b-server www]# rsync -avzp html_2013-01-03.tar.gz backup@192.168.1.100::lianglab

Password:    #每次都要输入密码比较烦人,我们可以指定一下我们之前设置的密码文件,就不需要输入密码了。

sending incremental file list

html_2013-01-03.tar.gz

sent 270 bytes  received 27 bytes  66.00 bytes/sec

total size is 183  speedup is 0.62

[root@b-server www]#

[root@b-server www]# rsync -avzp html_2013-01-03.tar.gz backup@192.168.1.100::lianglab --password-file=/etc/rsync.password

sending incremental file list

sent 43 bytes  received 8 bytes  102.00 bytes/sec

total size is 183  speedup is 3.59

[root@b-server www]#

我们在到rsync服务器上查看一下,文件已经被同步过来了。

[root@rsync lianglab]# ll

total 4

-rw-r--r-- 1 rsync rsync 183 Jan  3 10:12 html_2013-01-03.tar.gz

[root@rsync lianglab]#

更换一种方式推送一下文件,首先要到rsync服务端,删除已经推送过来的文件

[root@rsync lianglab]# rm html_2013-01-03.tar.gz

rm: remove regular file `html_2013-01-03.tar.gz'? y

[root@rsync lianglab]#

[root@b-server www]# rsync -avzp html_2013-01-03.tar.gz rsync://backup@192.168.1.100/lianglab --password-file=/etc/rsync.password

sending incremental file list

html_2013-01-03.tar.gz

sent 270 bytes  received 27 bytes  594.00 bytes/sec

total size is 183  speedup is 0.62

[root@b-server www]#

[root@rsync lianglab]# ll

total 4

-rw-r--r-- 1 rsync rsync 183 Jan  3 10:12 html_2013-01-03.tar.gz

我们在测试一下能不能推送到tmp目录,是不行滴。

[root@b-server www]# rsync -avzp html_2013-01-03.tar.gz rsync://backup@192.168.1.100/tmp --password-file=/etc/rsync.password

@ERROR: Unknown module 'tmp'

rsync error: error starting client-server protocol (code 5) at main.c(1530) [sender=3.0.6]

[root@b-server www]#

我们是可以往服务端lianglab这个目录下子目录推送的,但是一定要给目录授权的。

[root@rsync lianglab]# mkdir test

[root@rsync lianglab]# chown rsync test

[root@b-server www]# rsync -avzp html_2013-01-03.tar.gz rsync://backup@192.168.1.100/lianglab/test --password-file=/etc/rsync.password

sending incremental file list

html_2013-01-03.tar.gz

sent 270 bytes  received 27 bytes  594.00 bytes/sec

total size is 183  speedup is 0.62

[root@b-server www]#

[root@rsync lianglab]# cd test/

[root@rsync test]# ll

total 4

-rw-r--r-- 1 rsync rsync 183 Jan  3 10:12 html_2013-01-03.tar.gz

[root@rsync test]#

查看详细生成时间。

[root@rsync test]# ll /back/ --time-style=long-iso

[root@rsync test]# ll /back/ --time-style=full-iso

==============================================

参考文献:老男孩51CTO视频教程http://edu.51cto.com/course/course_id-875.html  

         南非蚂蚁《高性能Linux服务器构建实战》一书