Archive

Posts Tagged ‘rsync安装’

RSYNC安装使用详解

March 3rd, 2009 No comments

使用rsync来实现文件同步

部分参考 www.xfocus.net/articles/200107/214.html
www.sinzy.net/Blog/Read.asp?ID=10&BID=6900
blogger.org.cn/blog/more.asp?name=lhwork&id=21039
cmuch.com/article.asp?id=87

先对这个dd进行简介,当你的网站访问量大了,一台服务器承受不住了
那好,这个时候,rsync来了。

rsync ->>> remote synchronize
呵呵,不用解释了吧,还是解释一下吧,文件同步的意思的说。。。

第一步,先来下载这个免费的软件。

rsync.samba.org/ 或者 samba.anu.edu.au/rsync

PS:一定要去官方网站下载最新的版本,
因为2.6.1之前的版本有配置模块路径穿越漏洞。。。

解压缩后,编译很简单
./configure –prefix=/usr/local/rsync && make && make install

然后先来配置服务端吧

先来编辑服务端配置文件

#vi /etc/rsyncd.conf

#全局配置
uid = root
gid = root
hosts allow = 192.168.0.0/24
#hosts deny = 0.0.0.0/32

use chroot = no # 不使用chroot
max connections = 10 # 最大连接数为10
#motd file = /etc/rsyncd.motd #欢迎信息文件名称和存放位置(此文件没有,可以自行添加)
pid file = /var/run/rsyncd.pid #指定rsync的pid文件
lock file = /var/run/rsync.lock #指定支持max connections参数的锁文件,默认值是/var/run/rsyncd.lock
log file = /var/log/rsyncd.log #指定rsync的日志文件,而不将日志发送给syslog

#下面就是每个模块的配置了
[rsync_module_name1] # 这里是认证的模块名,在client端需要指定
path = /rsync_path/dir1 # 需要做镜像的目录
comment = rsync files
ignore errors # 可以忽略一些无关的IO错误
read only = yes # 只读
list = no # 不允许列文件
auth users = rsync_user # 认证的用户名,如果没有这行,则表明是匿名,多个用户用,分隔
secrets file = /etc/rsyncd.pas # 认证文件名
#pid file = /var/run/rsyncd.pid
#log file = /var/log/rsyncd.log
#lock file = /var/run/rsync.lock

[rsync_module_name2]
……

其中,个人认为,没项配置都可以既在全局配置,也可以在模块内部配置,其中如果模块内部如果有与全局相同的配置,
则模块内部的配置覆盖全局的配置。

然后编辑你上面指定的认证文件,我这里是: /etc/rsyncd.pas

#vi /etc/rsyncd.pas
格式为: username:password
rsync_user:rsyncofpass

安全起见,更改认证文件属性
#chmod 0600 /etc/rsyncd.pas

ok,现在启动下试试看吧。

#/usr/local/rsync/bin/rsync –daemon
你也可以指定rsync运行的端口
#/usr/local/rsync/bin/rsync –daemon –port=873

如果要在启动时把服务起来,有几种不同的方法,比如:

加入inetd.conf
编辑/etc/services,加入rsync 873/tcp,指定rsync的服务端口是873
编辑/etc/inetd.conf,加入rsync stream tcp nowait root /bin/rsync rsync –daemon

加入rc.local

在各种操作系统中,rc文件存放位置不尽相同,可以修改使系统启动时rsync –daemon加载进去。

我这里是直接加入 /etc/rc.local
/usr/local/rsync/bin/rsync –daemon –port=873
873就是rsync的默认端口号。

记得配置防火墙,允许你rsync端口的tcp和udp协议。
873:tcp 873:udp

下面开始配置客户端

下面这个命令行中-vzrtopg里的v是verbose,
z是压缩传输,
r是recursive,
topg都是保持文件原有属性如属主、时间的参数。
u是只同步已经更新的文件,避免没有更新的文件被重复更新一次,不过要注意两者机器的时钟的同步。
–progress是指显示出详细的进度情况,
–delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。
后面的rsync_user@192.168.0.2::rsync_module_name1中,之后的rsync_module_name1是模块名,也就是在/etc/rsyncd.conf中自定义的名称,rsync_user是指定模块中指定的可以同步的用户名。
最后的/tmp是备份到本地的目录名。
在这里面,还可以用-e ssh的参数建立起加密的连接。
可以用–password-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。

#/usr/local/rsync/bin/rsync -vzrtopg –progress –delete rsync_user@192.168.0.2::rsync_module_name1 /tmp/
Password:
或者你也可以制定password文件
由于需要系统crontab执行,所以这里采用读入密码文件的方式,
这个时候就成功了。

#vi /etc/rsyncd.pas
加入
rsync_user:rsyncofpass
注意,客户端的密码文件只需要密码,而不需要用户名!

rsyncofpass

更改文件权限:
#chmod 0600 /etc/rsyncd.pas

#/usr/local/rsync/bin/rsync -vzrtopgu –progress –delete –password-file=/etc/rsyncd.pas rsync_user@192.168.0.2::rsync_module_name1 /tmp/
不知道为什么,总是提示下面的认证错误
@ERROR: auth failed on module rsync_module_name1
rsync error: error starting client-server protocol (code 5) at main.c(1383) [receiver=2.6.9]
郁闷了,怎么都搞不定,还希望有经验的朋友给提供一下支持。。。

在今天在客户端密码文件只输入密码后,终于成功了 :)

以后有时间再研究认证问题吧,时间紧,任务急,把验证先绕过。

 

 

 

转载来源 http://www.taoer.com/2006/04/30/linux-rsync-file-sync/

 

 

 

 

RSYNC软件介绍

rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。它的特性如下:
可以镜像保存整个目录树和文件系统。
可以很容易做到保持原来文件的权限、时间、软硬链接等等。
无须特殊权限即可安装。
优化的流程,文件传输效率高。
可以使用rcpssh等方式来传输文件,当然也可以通过直接的socket连接。
支持匿名传输,以方便进行网站镜象。
软件下载
rysnc
的主页地址为:
http://rsync.samba.org/
目前最新版本为2.4.6。可以选择从原始网站下载:http://rsync.samba.org/ftp/rsync/。也可以选择从本站下载:rsync 2.4.6

 

 

一、下载、安装rsync

#tar zxvf rsync-2.6.9.tar.gz

#cd rsync-2.6.9

#./configure –prefix=/usr/local/rsync

#make

#make install

**** 正常安装RH的时候是带RSYNC的,运行文件放在/usr/bin/rsync

二、配置rsync server

 

1、启动RSYNC

#vi /etc/xinetd.d/rsync

  把原来的YES改成NO

service rsync

{

        disable = no

        socket_type     = stream

        wait            = no

        user            = root

        server          = /usr/bin/rsync

        server_args     = –daemon

        log_on_failure  += USERID

}

 随系统启动RSYNC

     #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

         

模块参数

[backup]                   //这里是认证的模块名,在client端需要指定

path = /home/backup/        //需要做镜像的目录,不可缺少!

comment = This is a test       //这个模块的注释信息

ignore errors                //可以忽略一些无关的IO错误

read only = yes              // 只读

list = no                   //不允许列文件

auth users = hening             //认证的用户名,如果没有这行则表明是匿名,此用户与系统无关

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

3.rsyncd.motd(配置欢迎信息,可有可无)

# vi /etc/rsyncd.motd

rsyncd.motd记录了rsync服务的欢迎信息,你可以在其中输入任何文本信息,如:

Welcome to use the rsync services!

 4、让配置生效

#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

修改权限

#cd /etc

#chown root.root rsync.pas

#chmod 600 rsync.pas

 

2client连接SERVER

  SERVER端取文件

/usr/bin/rsync -vzrtopg –progress –delete hening@192.168.0.217::backup /home/backup –password-file=/etc/rsync.pas

 

  SERVER端上传文件

   /usr/bin/rsync -vzrtopg –progress –password-file=/root/rsync.pas  /home/backup hening@192.168.0.217::backup

 

    这个命令将把本地机器/home/backup目录下的所有文件(含子目录)全部备份到RSYNC SERVER172.20.0.6)的backup模块的设定的备份目录下。

请注意如果路径结束后面带有“/”,表示备份该目录下的东东,但不会创建该目录,如不带“/”则创建该目录。

RSYNC用法:

       rsync [OPTION]… [USER@]HOST::SRC  [DEST]              #RSYNC SERVER备份文件到本地机器

    rsync [OPTION]… SRC [SRC]…      [USER@]HOST::DEST   #从本地机器备份文件到RSYNC SERVER

 

3、自动运行

 1vi /usr/local/rsync/time.sh     //制作脚本文件

把下边的内容复制进去

#!/bin/bash

/usr/bin/rsync -vzrtopg –progress –delete hening@192.168.0.217::backup /home/backup –password-file=/etc/rsync.pass

2) crontab -e

加入55 * * * * /usr/local/rsync/time.sh        //55分运行一次time.sh脚本文件

 

iptables

iptables -A INPUT -p tcp -s ! 11.22.33.44 –dport 873 -j DROP

如此, 只有 11.22.33.44 这个 client IP 能进入这台 rsync server.

 

命令介绍:-rvlHpogDtS

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端指定认证用户的密码。

这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。

hening@192.168.0.217::backup

hening是指server端指定认证的用户

192.168.0.217是指服务器端的ip

::backup 表示服务器端需要同步的模块名称;

/home/quack/backup/$DATE是同步后的文件指存放在本机的目录地址。

/var/log/rsync.$DATE是同步后的日志文件存放在本机的目录地址。

 

注意

不放/  则目录名也包含mirror,放 / 则只有目录里面的东西mirror

不知道为什么,总是给我报这样的错误:
@ERROR: auth failed on module sync_files
rsync error: error starting client-server protocol (code 5) at main.c(1171)

应该是你的配置文件里有特殊字符。把那些注释全部去掉,或者是重新自己手工再输一份rsyncd.conf, 不要把网上的直接copy过来。

转载来源 http://blog.chinaunix.net/u/17257/showart_460674.html

  • Share/Bookmark

用rsync对网站进行镜像备份

December 26th, 2008 No comments

Linux系统下超强远程同步备份工具Rsync使用详解

服务器之间常常要保持些文件或目录的一致,比如一些大的软件下载网站,它们通常使用多台服务器来提供下载服务。当一台服务器上的文件更新后,其它的服务器也需要更新,而且 在更新的时候应该是只对新增或是修改过的文件进行更新,否则会造成网络带宽和时间的浪费。rsync就是能有效的保持文件及目录的一致的优秀软件
  rsync,remote synchronize
  顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息,而且可以通过ssh方式来传输文件,这样其保密性也非常好,另外它还是免费的软件。rysnc的官方网站:::URL::http://rsync.samba.org/,可以从上面得到最新的版本。当然,因为rsync是一款如此有用的软件,所以很多Linux发行版本都将它收录在内了。你的Linux里并没有安装rsync,你可以按以下的安法自行安装:

  一、安装过程
  1.下载rsync
  目前(2003年9月)最新的rsync版本是2.5.6,从rysnc的官方网站上下载一个回来:
  # wget ::URL::http://ftp.samba.org/ftp/rsync/rsync-2.5.6.tar.gz

  2.解压
  # tar -xzpvf rsync-2.5.6.tar.gz

  3.编译安装
  # cd rsync-2.5.6/
  # ./configure –prefix=/usr/local/rsync
  # make
  # make install
  以上过程没有出现的话就安装好了,现在就有rsync命令可以用了,rsync命令放在
/usr/local/rsync/bin。用rsync命令可以去运行有rsync服务的服务器上抓取资料。
  如果要把当前的机器变成一台rsync服务器的话,就需要继续进行一些配置了。

  二、配置rsync服务
  配置一个简单的rsync服务并不复杂,你需要修改或建立一些配置文件。
  1.rsyncd.conf
  # vi /etc/rsyncd.motd
  rsyncd.con是rsync服务的主要配置文件,它控制rsync服务的各种属性,下面给出一个
rsyncd.conf文件的例子:
  #先定义整体变量
  secrets file = /etc/rsyncd.secrets
  motd file = /etc/rsyncd.motd
  read only = yes
  list = yes
  uid = nobody
  gid = nobody
  hosts allow = 192.168.100.90 #哪些电脑可以访问rsync服务
  hosts deny = 192.168.100.0/24 #哪些电脑不可以访问rsync服务
  max connections = 2
  log file = /var/log/rsyncd.log
  pid file = /var/run/rsyncd.pid
  lock file = /var/run/rsync.lock
  #再定义要rsync目录
  [terry]
  comment = Terry ‘s directory from 192.168.100.21
  path = /home/terry
  auth users = terry,rsync
  [test]
  comment = test rsync
  path = /home/test
  在上面的配置文件中,限定了192.168.100.0/24这个子网中,只有192.168.100.90的机器可以来访问这台rsync服务器的 rsync服务。配置文件的后面部分定义了两个rsync的目录,terry目录是只有知道terry、rsync两个账号的人才能使用的,而text目录是无需账号就可以访问的。rsync在定义目录时还提供了一些其它选项,可以作更严格的控制。

  2.rsyncd.secrets
  # vi /etc/rsyncd.secrets
  rsyncd.secrets是存储rsync服务的用户名和密码的,它是一个明文的文本文件,下面给出一个rsyncd.secrets文件的例子:
  terry:12345
  rsync:abcde
  因为rsyncd.secrets存储了rsync服务的用户名和密码,所以非常重要,因此文件的属性必须
设为600,只有所有者可以读写:
  # chmod 600 /etc/rsyncd.secrets

  3.rsyncd.motd
  # vi /etc/rsyncd.motd
  rsyncd.motd记录了rsync服务的欢迎信息,你可以在其中输入任何文本信息,如:
  Welcome to use the rsync services!

  4.services
  # vi /etc/services
  services并不是rsync的配置文件,这一步也可以不做。而修改了services文件的好处就在于
系统知道873端口对就的服务名为rsync。修改services的方法就是确保services中有如下两行,
没有的话就自行加入:
  rsync  873/tcp  # rsync
  rsync  873/udp  # rsync
  5./etc/xinetd.d/rsync
  # vi /etc/xinetd.d/rsync
  建立一个名为/etc/xinetd.d/rsync文件,输入以下内容:
  service rsync
  {
    disable = no
    socket_type  = stream
    wait      = no
    user      = root
    server     = /usr/local/rsync/bin/rsync
    server_args  = –daemon
    log_on_failure += USERID
  }
  保存后,就可以运行rsync服务了。输入以下命令:
  # /etc/rc.d/init.d/xinetd reload
  这样rsync服务就在这台机器上(192.168.100.21)运行起来了,接下来就是如何来使用它了。

  三、rsync命令的用法
  在配置完rsync服务器后,就可以从客户端发出rsync命令来实现各种同步的操作。rsync有很
多功能选项,下面就对介绍一下常用的选项:
  rsync的命令格式可以为:
  1. rsync [OPTION]… SRC [SRC]… [USER@]HOST : DEST]
  2. rsync [OPTION]… [USER@]HOST:SRC DEST]
  3. rsync [OPTION]… SRC [SRC]… DEST]
  4. rsync [OPTION]… [USER@]HOST::SRC [DEST]
  5. rsync [OPTION]… SRC [SRC]… [USER@]HOST :: DEST]
  6. rsync [OPTION]… rsync://[USER@]HOST[:PORT]/SRC [DEST]

rsync有六种不同的工作模式:
  1. 拷贝本地文件;当SRC和DES路径信息都不包含有单个冒号”:”分隔符时就启动这种工作模式。
  2.使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST
路径地址包含单个冒号”:”分隔符时启动该模式。
  3.使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC
地址路径包含单个冒号”:”分隔符时启动该模式。
  4. 从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含”::”分隔符时启动该模式。
  5. 从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含”::”分隔符时启动该模式。
  6. 列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。
  下面以实例来说明:
  # rsync -vazu -progress terry@192.168.100.21:/terry/ /home
  v详细提示
  a以archive模式操作,复制目录、符号连接
  z压缩
  u只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时
  -progress指显示
  以上命令是保持客户机192.168.100.90上的/home/terry目录和rsync服务器上的terry目录同
步。该命令执行同步之前会要求你输入terry账号的密码,这个账号是我们前面在rsyncd.secrets
文件中定义的。如果想将这条命令写到一个脚本中,然后定时执行它的话,可以使用–password-file
选项,具体命令如下:
  # rsync -vazu -progress –password-file=/etc/rsync.secret
  terry@192.168.100.21:/terry/ /home
  要使用–password-file选项,就得先建立一个存放密码的文件,这里指定为/etc/rsync.secret。
其内容很简单,如下:
  terry:12345
  同样要修改文件属性如下:
  # chmod 600 /etc/rsyncd.secrets

  四、利用rsync保持Linux服务器间的文件同步实例
  现在假设有两台Linux服务器A(192.168.100.21)和B(192.168.100.90),服务器A中的
/home/terry和服务器B中的/home/terry这两个目录需要保持同步,也就是当服务器A中文件发生
改变后,服务器B中的文件也要对应去改变。
  我们按上面的方法,在服务器A上安装rsync,并将其配置为一台rsync服务器,并将/home/terry
目录配置成rsync共享出的目录。然后在服务器B上安装rsync,因为B只做客户端,所以无需配置。
然后在服务器B,建立以下脚本:
  #!/bin/bash
  /usr/loca/rsync/bin/rsync -vazu -progress –delete
  –password-file=/etc/rsync.secret terry@192.168.100.21:/terry/ /home
  将这个脚本保存为AtoB.sh,并加上可执行属性:
  # chmod 755 /root/AtoB.sh
  然后,通过crontab设定,让这个脚本每30分钟运行一次。执行命令:
  # crontab -e
  输入以下一行:
  0,30 * * * * /root/AtoB.sh
  保存退出,这样服务器B每个小时的0分和30分时都会自动运行一次AtoB.sh,AtoB.sh是负责
保持服务器B和服务器A同步的。这样就保证了服务器A的所有更新在30钟后,服务器B也一样取
得了和服务器A一样的最新的资料。

  五、其它应用
  rsync除了同步文件及目录之外,还可以利用它来实现对远程网站的远程备份。如果再结合脚本和Crontab就能实现定时自动远程备份。其可以实现与商业化的备份和镜象产品的类似效果,但完全免费。

附:rsync有六种不同的工作模式:
  1. 拷贝本地文件;当SRC和DES路径信息都不包含有单个冒号”:”分隔符时就启动这种工作模式。
  2.使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST
路径地址包含单个冒号”:”分隔符时启动该模式。
  3.使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC
地址路径包含单个冒号”:”分隔符时启动该模式。
  4. 从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含”::”分隔符时启动该模式。
  5. 从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含”::”分隔符时启动该模式。
  6. 列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。

转载来源 http://qzone.qq.com/blog/286708518-1214758196

之前一直没有机会接触rsync,更没有想过要自己做这个东东,今天正好有个小需求用这个做,我就自己练习了一把,配置起来还算简单,下面把配置过程写出来,也是对自己的一个总结,更希望给别人也带来方便
我的系统:
vmware跑两个centos4.4,ip分别是153.129和153.130
使用的系统自带的rsync
目的:通过脚本把129上/tmp/·date +%Y`/`date +%m`/`date +%d`/目录下的所有文件同步到130的相同文件夹下,即把/tmp/2008/06/25下的文件同步到130上/tmp/2008/06/25下
实现过程:
先是129上的配置
vi /etc/rsyncd.conf
uid = daemon      
gid = daemon
use chroot = no
max connections = 4      客户端最多连接数;
log file = /var/log/rsyncd.log   日志存放位置
pid file = /var/run/rsyncd.pid   注:告诉进程写到 /var/run/rsyncd.pid 文件中
lock file = /var/run/rsyncd.lock  
read only = yes  read only 是只读选择,也就是说,不让客户端上传文件到服务器上。
secrets file = /etc/rsyncd.secrets    密码存放文件

[file]    

注:模块,它为我们提供了一个链接的名字,链接到哪呢,在本模块中,链接到了/tmp
        path=/tmp  

注:服务器端传输文件时,要发哪个用户和用户组来执行,默认是nobody。 如果用nobody 用户和用户组,可能遇到权限问题,有些文件从服务器上拉不下来。所以我就偷懒,为了方便,用了root 。不过您可以在定义要同步的目录时定义的模块中指定用户来解决权限的问题。

注:用chroot,在传输文件之前,服务器守护程序在将chroot 到文件系统中的目录中,这样做的好处是可能保护系统被安装漏洞侵袭的可能。缺点是需要超级用户权限。另外对符号链接文件,将会排除在外。也就是说,你在 rsync服务器上,如果有符号链接,你在备份服务器上运行客户端的同步数据时,只会把符号链接名同步下来,并不会同步符号链接的内容;这个需要自己来尝试;

接下来执行
echo “daemon:12345678″ >>/etc/rsyncd.secrets
创建密码文件,其中daemon是linux真实存在的用户,”:“后面的是这个帐户的密码,只要不是真实密码就行
然后执行
rsync –daemon
启动服务,到此129上的配置就完成了
然后是130client端的使用了
在130上执行
rsync -rulpogRv daemon@192.168.153.129::file/`date +%Y`/`date +%m`/`date +%d`/ /tmp/
下面来解释参数
r, –recursive 对子目录以递归模式处理
-R, –relative 使用相对路径信息
rsync foo/bar/foo.c remote:/tmp/
则在/tmp目录下创建foo.c文件,而如果使用-R参数:
rsync -R foo/bar/foo.c remote:/tmp/
则会创建文件/tmp/foo/bar/foo.c,也就是会保持完全路径信息。-u, –update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
-l, –links 保留软链结
-p, –perms 保持文件权限
-o, –owner 保持文件属主信息
-g, –group 保持文件属组信息
-v, –verbose 详细模式输出
执行上条命令后会看到如下输出

receiving file list … done
2008/06/
2008/06/25/
2008/06/25/php-5.2.6.tar.gz
2008/06/25/squid-2.7.STABLE2.tar.gz

sent 117 bytes received 13825070 bytes 3950053.43 bytes/sec
total size is 13823105 speedup is 1.00
并且并没有需要输入密码,这样就可以写出脚本并添加到crontab中自动执行了
这个我们可以结合crontab来自动备份我们重要的数据啦!

转载来源 http://qzone.qq.com/blog/286708518-1214758196

  • Share/Bookmark