rsync只能用root用户运行rsync服务端配置吗

rsync同步服务器数据 - acooly - ITeye技术网站
博客分类:
rsync是类unix系统下的数据镜像备份工具。本文以Nexue数据备份的实践应用为案例,介绍整个应用过程。作为入门材料,rsync的高级配置和应用不在本文范畴。
官方网站:
功能及特点:(从百度抄的)
可以镜像保存整个目录树和文件系统。
可以很容易做到保持原来文件的权限、时间、软硬链接等等。
无须特殊权限即可安装。
快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。
安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
支持匿名传输,以方便进行网站镜象。
使用场景:
1、服务器数据备份
2、集群服务器中数据同步(增量是两点啊)
rsync是应用模式是标准的C/S模式,原始数据所在的服务器A作为服务器,其他备份和同步的服务器B为客户端。所以分为服务器端配置和客户端配置。方案规划如下:
服务器角色
服务器名称
备份同步目录
192.168.30.202
/data/sonatype-work
192.168.30.208
/data/sonatype-work
rsync的安装,服务器端和客户端完全相同。
# wget http://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz
# tar -xzvf rsync-3.0.9.tar.gz
# cd cd rsync-3.0.9
# ./configure --prefix=/usr
# make install
说明:编译安装需要gcc支持,如果没有安装,请先安装。我使用的是centOS6.3,所以就直接:yum install gcc.就OK了。
OK,安装完成。
服务端配置(服务器A)
服务器端的需求是通过rsync提供对/data/sonatype-work目录的同步备份服务,同时要求服务器启动自动启动服务。rsync通配置主要通过3个配置文件配置完成。如下:
[root@localhost etc]# ll rsyncd.*
-rw-r--r-- 1 root root 918 Mar
6 22:44 rsyncd.conf
-rw-r--r-- 1 root root 191 Mar
6 22:06 rsyncd.motd
-rw------- 1 root root
6 22:04 rsyncd.secrets
rsyncd.conf:主配置文件,配置rsync服务的公共参数(IP,端口,进程文件,IP限制,日志,连接超时等)和需要同步的模块(需要同步的目录及常规参数)
rsyncd.secrets:客户端请求同步时的账户安全认证文件。类似samba的模式(user:passwsord[明文哈]),这个文件的需要特别注意权限设置为宿主可访问才行(chmod 600 rsyncd.secrets)。
rsyncd.motd:该文件就是客户端请求上来的时候,立即回复的欢迎信息,就和FTP登录时显示差不多意思。
下面我们分配配置和说明这些配置文件。
rsyncd.conf
别拷贝,直接到下面下载附件的好。
# Minimal configuration file for rsync daemon
# See rsync(1) and rsyncd.conf(5) man pages for help
##################################### 以下是公共参数配置 #############################################
# This line is required by the /etc/init.d/rsyncd script
pid file = /var/run/rsyncd.pid
# 服务的端口
port = 873
# 服务的IP
address = 192.168.30.202
# 运行的宿主账户,这里为简单就root了
uid = root
gid = root
# 这个参数复杂,有空去查查。打开(yes)后有个功能是让符号链接可以同步过去(不通过符号链接对应的实际文件)
use chroot = yes
# 客户端只读
read only = yes
#limit access to private LANs
hosts allow=192.168.30.0/255.255.255.0
hosts deny=*
# 最大连接数
max connections = 5
# 欢迎信息对应的文件
motd file = /etc/rsyncd.motd
# 客户端链接的超时时间
timeout = 300
# 以下是日志相关配置,可选使用独立日志文件和系统日志,这里选择的是系统日志(/var/log/message)
# This will give you a separate log file
# log file = /var/log/rsync.log
# This will log every file transferred - up to 85,000+ per user, per sync
# transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
##################################### 同步模块配置 #############################################
# 需要同步的路径
path = /data/sonatype-work
# 客户端可以使用list命令列表显示
# 忽略错误
ignore errors
# 认证用户
auth users = root
# 认证使用的账户密码文件
secrets file = /etc/rsyncd.secrets
# 备注信息
comment = This is nexus data
# 如果有忽略的子目录,可以通过exclude定义
# exclude = easylife/
rsyncd.secrets
# 用户名:密码明文了
root:1qaz@WSX
rsyncd.motd
+++++++++++++++++++++++++++++++++++++++++++++++++++++
Welcome to Nexus rsync services
create by zhangpu
++++++++++++++++++++++++++++++++++++++++++++++++++++
如果你开启了操作系统的防火墙,请使用iptables配置873端口可用。我反反正是直接关闭了,简单点。
#/usr/bin/rsync --daemon
--config=/etc/rsyncd.conf  #--config用于指定rsyncd.conf的位置,如果在/etc下可以不写
xinetd方式
如果没有安装xinet,请先安装,对应本系统(CentOS),我直接 yum install xinet 就OK了
在rsync默认安装完成后,安装程序会自动在建立/etc/xinetd.d/rsync文件,但是默认情况是disable = yes(也就是不可用的),需要修改为disable=no 即可
然后,我们通过xinet启动rsync:
# service xinetd start/restart
测试下,可以查看进程,端口监听等,我还是喜欢最笨最原始的方式:telnet,哈哈
# telnet 192.168.30.202 873
Trying 192.168.30.202...
Connected to 192.168.30.202 (192.168.30.202).
Escape character is '^]'.
@RSYNCD: 30.0
+++++++++++++++++++++++++++++++++++++++++++++++++++++
Welcome to Nexus rsync services
create by zhangpu
++++++++++++++++++++++++++++++++++++++++++++++++++++
都看到欢迎界面了,肯定服务起来了。
客户端配置(服务器B)
客户端是备份服务器,负责使用rsync命令从服务器备份或同步数据到本地指定目录。这里使用crontab+rsync实现定时自动增量同步的功能。
我决定在/data/rsync下建立一个脚本来实现启动rsync同步的功能,然后再使用crontab来实现定时调度。
[root@localhost rsync]# ll /data/rsync
-rwxr-xr-x 1 root root 177 Mar
6 15:27 rsync_client_nexus.sh
-rwx------ 1 root root
6 15:17 rsyncd.secrets
rsync_client_nexus.sh
# backup 192.168.30.202 nexus data with rysnc
# 参数说明:
# -avzP表示归档,压缩并显示进度;
# --delete表示如果服务端删除的文件,客户端也需要删除;
# --password-file: 指定用户密码文件,不用用户交互输入。
# root@192.168.30.202::nexus 表示:使用root用户访问192.168.30.202的nexus模块,‘::’表示从服务器端拷贝数据
# /data/sonatype-work : 本地保存同步文件的目录。
/usr/bin/rsync -avzP --delete --password-file=/data/rsync/rsyncd.secrets root@192.168.30.202::nexus /data/sonatype-work
rsyncd.secrets
该文件保存rsync命令中使用的用户名的密码明文,这里就是上面的root用户的密码。同时注意这里和服务器端一样,该文件的权限为宿主可以读写(chmod 600 rsyncd.secrets)
# root(rsync的,非操作系统)用户的密码
crontab配置
这是配置每天凌晨1点1分进行同步处理。
# crontab -e
1 1 * * * /data/rsync/rsync_client_nexus.sh
1& /dev/null
测试就比较简单了,在服务器A的/data/sonatype-work下建立一个testfile,随便输入些东西,然后在服务器B中手动运行同步脚本rsync_client_nexus.sh,完成后在服务器B中相同目录检查是否有该文件。通过这种方式,你可以再修改文件,删除文件等测试。
下载次数: 12
浏览: 257653 次
来自: 重庆
找遍全网用楼主的方法解决了!泪流满面。&input&gt ...
楼主还维护这个博文么?请教一下MemCachedClient
我按照的步骤安装好了,测试也是可以的,但是web应用服务 ...C语言 c++ php mysql nginx linux lnmp lamp lanmp memcache redis 面试 笔记 ppt 设计模式 问题 远程连接 草榴 草榴社区 caoliu
trackbacks-0
RSync实现文件备份同步:
remote synchronize:一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息,&rsync是用 &rsync 算法&提供了一个客户机     & & & & & & & & & & 和远程文件服务器的文件同步的快速方法,而且可以通过ssh方式来传输文件,这样其保密性也非常好,另外它还是免费的软件。因为rsync是一款如此有用           &的软件,所以很多Linux的发行版本都将它收录在内了
能更新整个目录
有选择性的保持符号链链、硬链接、文件属于、权限、设备以及时间等;
对于安装来说,无任何特殊权限要求;
对于多个文件来说,内部流水线减少文件等待的延时;
能用rsh、ssh 或直接端口做为传输入端口;
支持匿名rsync 同步文件,是理想的镜像工具;
架设rsync服务器:
  1.安装:
#yum方式安装
#源码方式,注意安装gcc
rsync-xxx.tar.gz
cd rsync-xxx
./configure --prefix=/usr/local
make install
rsync的主要有以下三个配置文件(需要手工创建): /etc/rsyncd.conf(主配置文件)
/etc/rsyncd.secrets(密码文件)
  格式:user1:passwd1
  出于安全目的,文件的属性必需是只有属主可读。
  chown root.root rsyncd.secrets  #修改属主
  chmod 600 rsyncd.secrets
/etc/rsyncd.motd
  定义rysnc服务器信息的,也就是用户登录信息,可以为空
  类似ftp的欢迎页面
  示例:Welcome to use the
rsync services!
rsyncd.conf配置文件示例:
#Distributed under the terms of the GNU General Public License v2
#Minimal configuration file for rsync daemon
#See rsync(1) and rsyncd.conf(5) man pages for help
# This line is required by the /etc/init.d/rsyncd script
#告诉进程写到 /var/run/rsyncd.pid 文件中
pid file = /var/run/rsyncd.pid
#指定运行端口,默认是873
port = 873
#指定服务器IP地址
address = 192.168.1.171
#服务器端传输文件时,要发哪个用户和用户组来执行,默认是nobody。 如果用nobody 用户和用户组,可能遇到权限问题
#uid = nobody
#gid = nobody
uid = root
gid = root
#一个安全选项 详情自己去查查
use chroot = yes
#read only 是只读选择,也就是说,不让客户端上传文件到服务器上。还有一个 write only选项
read only = yes
#在您可以指定单个IP,也可以指定整个网段,能提高安全性。格式是ip 与ip 之间、ip和网段之间、网段和网段之间要用空格隔开
#limit access to private LANs
hosts allow=192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0
hosts deny=*
max connections = 5
motd file = /etc/rsyncd.motd
#This will give you a separate log file
#log file = /var/log/rsync.log
#This will log every file transferred - up to 85,000+ per user, per sync
#transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
#指定文件目录所在位置
path = /home
list=yes #是否可以列出目录
ignore errors # #忽略IO错误
#auth users必须是在服务器上存在的真实的系统用户,如果你想用多个用户以,号隔开,比如auth users = easylife,root
auth users = root
secrets file = /etc/rsyncd.secrets
comment = This is RHEL 4 data
#exclude是排除的意思,也就是说,要把/home目录下的easylife和samba排除在外; easylife/和samba/目录之间有空格分开
exclude = easylife/
模块定义什么呢?  主要是定义服务器哪个目录要被同步。每个模块都要以[name]形式。这个名字就是在rsync 客户端看到的名字,其实有点象Samba服务器提供的共享名。而服务器真正同步的 & & 数据是通过path 指定的。我们可以根据自己的需要,来指定多个模块。每个模块要指定认证用户,密码文件、但排除并不是必须的
启动rsync服务器:
/usr/bin/rsync --daemon
--config=/etc/rsyncd/rsyncd.conf --config用于指定rsyncd.conf的位置,如果在/etc下可以不写/usr/bin/rsync --daemon
--config=/etc/rsyncd/rsyncd.conf
rsync有六种不同的工作模式:
  1. 拷贝本地文件;当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。  2.使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。  3.使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。  4. 从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。  5. 从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。  6. 列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。  -a 以archive模式操作、复制目录、符号连接 相当于-rlptgoD
  rsync中的参数
  -r 是递归   -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;  -z 传输时压缩;  -P 传输进度;  -v 传输时的进度等信息,和-P有点关系,自己试试。可以看文档;  -e ssh的参数建立起加密的连接。  -u只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时  --progress是指显示出详细的进度情况  --delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致  --password-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。
//注:server为modul名[server]
//列出rsync 服务器上的所提供的同步内容
--list-only
root@192.168.145.5::server
//列出目录:
--list-only
root@192.168.93.149::server
//从服务端取数据(客户端只会增加文件);
rsync -avzP root@192.168.93.149::server rhel4home[本地目录]
//从服务端取数据(使客户端的文件和服务端完全一致,会删除客户端多余的文件);
rsync -avzP --delete root@192.168.93.149::server ./
//密码从文件中读取:
注意此时的密码文件里面只需要写密码不要写用户名 和服务端的文件是不同的
rsync -avzP --delete --password-file=/etc/rsyncd.secrets root@192.168.93.149::server ./
//客户端向服务端提交文件(只需要把目录更换位置即可)
rsync -avzP --delete --password-file=/kang/sercet ./ root@192.168.93.149::server
阅读(...) 评论()rsync只能用root用户运行服务端吗_百度知道
rsync只能用root用户运行服务端吗
提问者采纳
psscihoo、启rsync服务端(独立启)# /home scihoo@192.ps7 启配置# &#47:873COMMAND PID USER FD TYPE DEVICE SIZE NODE NAMExinetd 4396 root 5u IPv4 633387 TCP *.d/usr&#47.1# rpm -ivh rsync-2.ps /home&#47.d/initrsync -avP --delete root@192.local/home/home/servicesrsync端口号确# vim &#47:安全设定密码档案属性.2.206;# allows xinetd reload11 加入bin&#47.1 设定密码文件1.d/rsync --daemon10;rsyncserver_args = --daemonlog_on_failure += USERID}1;var/rsync.206;* /usr&#47.4]# rsync -avz --password-file=&#47.local各种操作系统rc文件存放位置尽相同修改使系统启rsync --daemon加载进# vi &#47.6.ps # 必须修改权限1: off# description.pidlock file = /rsync# default.0;srvcomment = This is testauth users = scihoouid = rootgid = rootsecrets file = &#47.conf[root@test etc]# vim rsyncd:scihoo6 配置rsync密码文件权限# chown root.i386;var&#47.6;etc&#47.ps(名字随便写要边配置文件致即)格式(行用户)# vi /本传服务器[root@aj1 rsync-3;udp # rsync5 配置rsync密码(边配置文件已经写路径)&#47.root rsync.2 测试rsync执行指令1.8-3:rsync (LISTEN)客户端配置1 配置三程1.168;etc/init.ps scihoo@192.pssciooo[root@aj1 home]#rsyncserver_args = --daemonlog_on_failure += USERID}2 配置rsync自启# chkconfig rsync on# chkconfig rsync --listrsync on3 配置home&#47, as it \rsync1 配置rsync servervi &#47.4]# rsync -avz --password-file=&#47.rpm # 没安装则手安装# vim /xinetd restartSmkchen 意思# rpm -qa |grep rsync #检查系统否安装rsync软件包rsync-2.0:/etc/servicesrsync 873&#47.168;home/run/bin&#47.1.168;usr/home/log/rsync.root .ps# chmod 400 rsync.ps密码定要Rsync Server密码设定案密码)[root@aj1 home]#run&#47.3 rsync指令放入工作排程(crontab)[root@aj1 home]# vi &#47:600etc&#47、启rsync服务端 (xinetd超级进程启)# &#47: [ OK ]Starting xinetd.locklog file = &#47.1 配置密码文件 (注.psread only = nolist = no4 确保etc/tcp # rsyncrsync 873/bin&#47:backup /rsyncdisable=yes改noservice rsync{disable = nosocket_type = streamwait = nouser = rootserver = &#47.8-3.service rsync{disable = yessocket_type = streamwait = nouser = rootserver = &#47:;home&#47.etc/etc&#47: [ OK ]8 xinetd没需要安装[root@test home]# yum -y install xinetd启rsync serverRSYNC服务端启两种9;var/usr&#47.0;etc&#47: The rsync server is a good addition to an ftp server.2 服务器载文件[root@aj1 rsync-3.confuid = rootgid = rootuse chroot = nomax connections = 4strict modes = yesport = 873pid file = &#47.rsync.d/rsyncd.0;rsync.0:;local&#47.log[backup]path = &#47.d&#47.ps # 注意必须给权限[root@aj1 home]# chmod 600 ;rsync –daemon #加入行12 检查rsync否启[root@test home]# lsof -rsyncd
其他类似问题
为您推荐:
rsync的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁怎样让Rsync 同步镜像服务的搭建_服务器_中国百科网
怎样让Rsync 同步镜像服务的搭建
    该文章讲述了怎样让Rsync 同步镜像服务的搭建.
于选择Linux、UNIX 系统作为应用平台的企业或网站来说,往往面临着如何实现将数据远程备份或者如何建立网站镜像的问题。虽然有商业化的备份和镜像产品可供选择,但这些产品的 价格往往过于昂贵。因此如何利用自由软件高效实现远程备份和网站镜像就成为一个值得讨论的话题。通过网络进行远程数据备份或者网站镜像的最简单的方法就是 使用Wget。但是这种方式每次都需要将所有数据都重新在网络上传输一遍,而不考虑哪些文件是经过更新的,因此效率非常低下。尤其是在需要备份数据量很大 的时候,往往需要花费数个小时来在网络上进行数据传输。因此,若能有一种高效的网络远程备份和镜像工具Rsync,就可以满足绝大多数要求不是特别严格的 备份需求。
对系统管理员来说,平时的工作重心应该集中在维护系统正常运转,能够正常提供服务上,这里往往牵涉到一个数据备份的问题。在我们所了解的情况中,有80% 的系统管理员不是太关心自己服务器的安全性,可是对备份镜像的技术相当感兴趣。但由于商业产品软硬件价格都相当高昂,因此往往会选择自由软件,例如前面提 到的网络远程备份和镜像工具Rsync,它可以满足绝大多数要求不是特别高的备份需求。
Rsync是Linux、UNIX系统下的数据镜像备份工具,从软件的命名上就可以看出来了Remote Sync。它有如此特性:可以镜像保存整个目录树和文件系统;可以很容易做到保持原来文件的权限、时间、软硬链接等;无须特殊权限即可安装;优化的流程, 文件传输效率高;可以使用RCP、SSH等方式来传输文件,当然也可以通过直接的Socket连接;支持匿名传输。
安装和配置Rsync实例
例如有2台服务器,服务器名分别为:WWW和BACKUP。
硬件环境: 2台HP服务器,1G CPU , 512M Ram , 18G SCSI硬盘;系统环境: Redhat Linux 6.2;服务环境: Rsync-2.4.6。其中,服务器名为WWW的Web服务内容存放在以下几个地方:/www/和/mirror/file0/和/mirror /file1/目录中。现在我们需要通过搭建Rsync同步服务在备份机BACKUP上建立对这几个目录内容的备份。
软件下载 Rysnc的主页地址为:http://rsync.samba.org/,可以从这里下载Rysnc的安装软件(注意:下载源码编译最好)。
编译安装 Rysnc的编译安装非常简单,只需要以下简单的几步(在2台服务器中都要安装):
$ tar xvf rsync-2.4.6.tgz
$ cd rsync-2.4.6
$ ./configure
$ make install
但是,需要注意的是必须在服务器WWW和BACKUP上都安装Rsync,其中WWW服务器上是以服务器模式运行Rsync,而BACKUP上则以客户端 方式运行Rsync。这样在Web服务器WWW上运行Rsync守护进程,在BACKUP上定时运行客户程序来备份Web服务器WWW上需要备份的内容。
配置Rsync服务器端
对于Rsync服务器来说,最重要和复杂的就是它的配置了。Rsync服务器的配置文件为/etc/rsyncd.conf,其控制认证、访问、日志记录 等。该文件是由一个或多个模块结构组成。一个模块定义以方括弧中的模块名开始,直到下一个模块定义开始或者文件结束,模块中包含格式为name = value的参数定义。每个模块其实就对应需要备份的一个目录树,比方说在实例环境中,有3个目录树需要备份:/www/和/mirror/file0 /和/mirror/file1/目录,那么就需要在配置文件中定义3个模块,分别对应3个目录树。配置文件是行为单位的,也就是每个新行都表示一个新的 注释、模块定义或者参数赋值。(注:本例所指的Rsync服务器是名为WWW的服务器)。
例如,在.cn/上创建Rsyncd的配置文件/etc/rsyncd.conf,内容如下:
[root@ www /] cat /etc/rsyncd.conf
uid = nobody
gid = nobody
use chroot = no
max connections = 4
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
path = /mirror/www/
comment = my rsync site
ignore errors
read only = true
list = false
auth users = backup
hosts allow = 12.23.34.57/32
secrets file = /etc/rsyncd.secrets
path = /mirror/file0
comment = file0
ignore errors
read only = true
list = false
auth users = backup
hosts allow = 12.23.34.57/32
secrets file = /etc/rsyncd.secrets
path =/mirror/file1
comment = file1
ignore errors
read only = true
list = false
auth users = backup
hosts allow = 12.23.34.57/32
secrets file = /etc/rsyncd.secrets
这里分别定义了[www]、[file0]、[file1]模块,分别对应于3个需要备份的目树。这里只允许12.23.34.57备份服务器WWW的数 据,并且需要认证。3个模块授权的备份用户都为BACKUP,并且用户信息保存在文件/etc/backserver.pas中,其内容如下:
[root@www /etc]# cat /etc/backserver.pas
backup:bk_passwd
并且该文件只能是Root用户可读写的,否则Rsyncd启动时会出错。这些文件配置完毕以后,就需要在WWW服务器上启动Rsyncd服务器:
[root@www /etc]# grep rsync services
rsync 873/tcp # rsync
rsync 873/udp # rsync
[root@www /etc] grep rsync inetd.conf
rsync stream tcp nowait root /usr/local/bin/rsync rsyncd -daemon
[root@www /etc]# rsync -daemon
执行完毕上面的命令后,Rsync即可启动。Rsync默认服务端口为873,服务器在该端口接收客户的匿名或者认证方式的备份请求。
执行Rsync客户端命令 下一步就要运行Rsync客户端的启动命令了(本例所指的Rsync客户端是名为BACKUP的服务器):
[backup@backup /] /usr/local/bin/rsync -vzrtopg -delete
-exclude &logs/&--exclude &conf/ssl.*/&
--progress backup@12.23.34.56::www /backup/www/
--password-file=/etc/rsync.pass该文章讲述了Rsync同步服务.
上面这个命令行中
--vzrtopg里的v是代表Verbose(详细);z是代表Zip(压缩);r是代表Recursive(递归);Topg 都是保持文件原有属性,如属主、时间的参数;--progress是指显示出详细的进度情况;--delete是指如果服务器端删除了这一文件,那么客户 端也相应把文件删除,保持真正的一致;--exclude &logs/&是表示不对/www/logs目录下的文件进行备份。同样-exclude&conf/ssl.*/&是表示不对/www/conf /ssl.*/目录下的文件进行备份。
backup@12.23.34.56::www 是表示该命令是对服务器12.23.34.56中的WWW模块进行备份,其中BACKUP表示使用BACKUP用户来对该模块进行备份。 --password-file=/etc/rsync.pass来指定密码文件,这样就可以在脚本中使用而无须交互式地输入验证密码了。这里需要注意的 是,这份密码文件权限属性要设得只有执行这个命令的当前用户可读,本例中是BACKUP用户。
这里将备份的内容存放在备份机的/backup/www/目录下。
[backup@backup /] /usr/local/bin/rsync -vzrtopg -delete -exclude &logs/&--exclude &conf/ssl.*/& --progress backup@12.23.34.56::www /backup/www/ --password-file=/etc/rsync.pass
receiving file list ... done
wrote 100 bytes read 990409 bytes
total size is
speedup is 2806.34
这样,Rsync同步服务就搭建好了,最后我们可以将在客户端执行的命令通过Crontab定时执行来实现自动备份,或者写一些脚本,这样Rsync同步服务的搭建就更加完美了。
一些示例脚本
1、每隔7天将数据往中心服务器做增量备份
# This script does personal backups to a rsync backup server. You
# with a 7 day rotating backup. The incrementals will go
# into subdirectories named after the day of the week, and the c
# full backup goes into a directory called &current&
# directory to backup
BDIR=/home/$USER
# excludes file
EXCLUDES=$HOME/cron/excludes
# the name of the backup machine
BSERVER=owl
# your password on the backup server
export RSYNC_PASSWORD=XXXXXX
BACKUPDIR=&date +%A&
OPTS=&--force --ignore-errors --delete-excluded
--exclude-from=$EXCLUDES
--delete --backup --backup-dir=/$BACKUPDIR -a&
export PATH=$PATH:/bin:/usr/bin:/usr/local/bin
# the following line clears the last weeks incremental directory
[ -d $HOME/emptydir ]& &mkdir $HOME/emptydir
rsync --delete -a $HOME/emptydir/ $BSERVER::$USER/$BACKUPDIR/
rmdir $HOME/emptydir
# now the actual transfer
rsync $OPTS $BDIR $BSERVER::$USER/current
2、备份至一个空闲的硬盘
export PATH=/usr/local/bin:/usr/bin:/bin
LIST=&rootfs usr data data2&
for d in $LIST; do
mount /backup/$d
rsync -ax --exclude fstab --delete /$d/ /backup/$d/
umount /backup/$d
DAY=&date &+%A&&
rsync -a --delete /usr/local/apache /data2/backups/$DAY
rsync -a --delete /data/solid /data2/backups/$DAY
3、对vger.rutgers.edu的Cvs树进行镜像
#!/bin/bash
cd /var/www/cvs/vger/
PATH=/usr/local/bin:/usr/freeware/bin:/usr/bin:/bin
RUN=&lps x | grep rsync | grep -v grep | wc -l&
if [&$RUN&-gt 0 ]; then
echo already running
rsync -az vger.rutgers.edu::cvs/CVSROOT/ChangeLog
$HOME/ChangeLog
sum1=&sum $HOME/ChangeLog&
sum2=&sum /var/www/cvs/vger/CVSROOT/ChangeLog&
if [ &$sum1&= &$sum2&]; then
echo nothing to do
rsync -az --delete
--force vger.rutgers.edu::cvs/ /var/www/cvs/vger/
Copyright by ;All rights reserved.

我要回帖

更多关于 rsync 非root 的文章

 

随机推荐