Rsync服务器搭建

Rsync服务器搭建
2011年01月14日
  大纲:
  一、 什么是rsync
  二、 安装rsync
  三、 rsync服务器配置
  一、 什么是 rsync
  rsync 是一个 Unix 系统下的文件同步和传输工具。它本来是用以取代rcp的工具,随着它的功能的不断完善,渐渐的rsync成为独树一帜的备份同步工具,目前它是由rsync.samba.org团队维护的。Rsync使用所谓的"rsync 算法",提供一个非常快速的档案传输,使本地和远端二部主机之间的文件达到同步,它主要是传送二个文件的异动部份,而非每次都整份传送,因此速度相当地快。
  它具备以下特性:
  1. 能更新整个目录和树和文件系统
  2. 有选择性的保持符号链链、硬链接、文件属于、权限、设备以及时间
  等
  3. 对于安装来说,无任何特殊权限要求
  4. 对于多个文件来说,内部流水线减少文件等待的延时
  5. 能用 rsh、ssh 或直接端口做为传输入端口
  6. 支持匿名 rsync 同步文件,是理想的镜像工具;
  rsync 服务器架设比较简单,可能我们安装好 rsync 后,并没有发现配置文件,以及 rsync 服务器启动程序,因为每个管理员可能对 rsync 用途不一样,所以一般的发行版只是安装好软件就完事了,让管理员来根据自己的用途和方向来自己架设 rsync 服>务器;因为这个 rsync 应用比较广,能在同一台主机进行备份工作,还能在不同主机之间进行工作。在不同主机之间的进行备份,是必须架设 rsync 服务器。
  对于重量级服务器来说,应该有网络备份服务器来说,只有本地备份还是不够的,必须异地备份。只有这样数据的安全才有保证。毕竟数据放在服务器本地上还是不太安全,比如磁盘坏掉、被骇客攻击删除数据,甚至911事件。其实服务器本身价值并不大,重要的是数据的价值。另外对于大量文件从一台服务器上迁移到另一台服务器上,rsync也是一个不错的选择。
  rsync有很多不同的用法,我们在此文档中只介绍rsync的deamon模式。
  首先介绍两个概念:Rsync 服务器和Rsync客户端。Rsync服务器是指运行rsync服务deamon的服务器,而Rsync客户端实发起rsync连接的服务器。这两个名称我们后面的试验中会用到。
  Rsync服务器会使用xinetd服务方式开启873端口监听,等待Rsync客户端连接。Rsync客户端发起连接后,Rsync服务器会检查Rsync客户端提交Rsync服务器内建的户名和密码是否正确,如果通过认证检测,则开始文件传输,传输的过程是按要求先比对文件的大小、属性、权限、MD5值等信息,如果两端文件信息不一致,则按要求同步文件的区别块。
  二、安装rsync
  安装版本 rsync-3.0.4
  安装rsync源码包:
  #rpm ?e rsync-2.6.3-1 删除系统自带的rsync
  注:CentOS默认的rsync是2.6.x版本,是先列表再备份,在推送大量文件时,会耗费很多,甚至1G的内存资源。
  而最新的rsync 3.0.x 版本,采用的是incremental file list,一边列表一边备份,占用的内存资源只有4~5M
  #cd /opt/src
  #wget http://rsync.samba.org/ftp/rsync/rsync-3.0.4.tar.gz
  #tar xzvf rsync-3.0.4.tar.gz
  # cd rsync-3.0.4
  #编译是详细参数参见 ./configure --help
  #./configure --prefix=/opt/app/rsync --disable-ipv6
  #make && make install
  #ln ?s /opt/app/rsync/bin/rsync /usr/bin/rsync
  #添加 rsync运行进程号目录
  #mkdir /opt/app/run
  #添加rsync 日志目录
  #mkdir /opt/app/logs
  #创建rsync服务器配置文件
  #touch /opt/app/rsync/rsyncd.conf
  #创建rsync用户密码文件
  #touch /opt/app/rsync/linux.pas
  #必须将密码文件权限改为600,否则会有认证问题
  #chmod 600 /opt/app/rsync/linux.pas
  三、rsync服务器配置:
  3.1 rsync服务器配置文件rsyncd.conf
  rsyncd.conf 是rsync服务器主要配置文件。
  全局定义:
  #vi /opt/app/rsync/rsyncd.conf
  pid file = /opt/app/rsync/run/rsync.pid
  port = 3334
  address = 192.168.2.100
  uid = root
  gid = root
  use chroot = yes
  read only = yes
  #limit access to private LANs
  hosts allow=192.168.2.0/255.255.255.0
  hosts deny=*
  max connections = 10
  motd file = /opt/app/rsync/rsyncd.motd
  log file = /opt/app/rsync/logs/rsyncd.log
  timeout = 300
  模块定义:
  [linux_file]
  path = /opt/case/www.linux.com/
  list = yes
  ignore errors
  auth users = root
  uid = root
  gid = root
  secrets file = /opt/app/rsync/linux.pas
  read only = no
  注: 关于 auth users 是必须在服务器上存在的真实的系统用户,如果你想用多个用户,那就以,号隔开;比如 auth users = root, linux
  密码文件:/opt/app/rsync/linux.pas的内容格式:
  用户名:密码
  注:密码文件linux.pas权限必须是600。否则,rsync服务器不能正常工作。
  root:1linux6
  linux:88888
  注: 这里的密码值得注意,为了安全,你不能把系统用户的密码写在这里。比如你的系统用户root密码是linux.com,为了安全,你可以让rsync中的root密码为1linux6。
  rsyncd.motd 文件:
  它是定义rysnc 服务器信息的,也就是用户登录信息。比如让用户知道这个服务器是谁提供的等;类似ftp服务器登录时,我们所看到的 linux.com ftp ……。当然这在全局定义变量时,并不是必须的,你可以用#号注掉,或删除;我在这里写了一个 rsyncd.motd的内容为:
  +++++++++++++++++++++++++++
  + linux.com rsync 2008-11-11 +
  ++++++++++++++++++++++++++++
  3.2 rsync服务器配示例说明:
  全局定义:
  在rsync 服务器中,全局定义有几个比较关健的,根据我们前面所给的配置文件 rsyncd.conf 文件;
  pid file = /opt/app/rsync/run/rsyncd.pid 注:告诉进程写到 /opt/app/rsync/run/rsyncd.pid 文件中;
  port = 873 注:指定运行端口,默认是873,您可以自己指定;
  address = 192.168.2.100 注:指定服务器IP地址;
  uid = nobody
  gid = nobdoy
  注:服务器端传输文件时,要发哪个用户和用户组来执行,默认是nobody。如果用nobody 用户和用户组,可能遇到权限问题,有些文件从服务器上拉不下来。所以我就偷懒,为了方便,用了root 。不过您可以在定义要同步的目录时定义的模块中指定用户来解决权限的问题。
  use chroot = yes
  注:用chroot,在传输文件之前,服务器守护程序在将chroot 到文件系统中的目录中,这样做的好处是可能保护系统被安装漏洞侵袭的可能。缺点是需要超级用户权限。另外对符号链接文件,将会排除在外。也就是说,你在rsync服务器上,如果有符号链接,你在备份服务器上运行客户端的同步数据时,只会把符号链接名同步下来,并不会同步符号链接的内容;这个需要自己来尝试;
  read only = yes
  注:read only 是只读选择,也就是说,不让客户端上传文件到服务器上。还有一个 write only选项。
  limit access to private LANs hosts allow=192.168.2.0/255.255.255.0
  注:在您可以指定单个IP,也可以指定整个网段,能提高安全性。格式是ip 与ip 之间、ip和网段之间、网段和网段之间要用空格隔开;
  max connections =10
  注:客户端最多连接数;
  motd file = /opt/app/rsync/rsyncd.motd
  注:motd file 是定义服务器信息的,要自己写 rsyncd.motd 文件内容。当用户登录时会看到这个信息。比如:
  +++++++++++++++++++++++++++
  + linux.com rsync 2002-2007 +
  +++++++++++++++++++++++++++
  log file = /var/log/rsync.log
  注:rsync 服务器的日志;
  transfer logging = yes
  注:这是传输文件的日志;
  log format = %t %a %m %f %b
  syslog facility = local3
  timeout = 300 模块定义:
  模块定义什么呢?主要是定义服务器哪个目录要被同步。每个模块都要以[name]形式。这个名字就是在rsync 客户端看到的名字,其实有点象Samba服务器提供的共享名。而服务器真正同步的数据是通过 path 来指定的。我们可以根据自己的需要,来指定多个模块。每个模块要指定认证用户,密码文件、但排除并不是必须的;
  下面前面配置文件模块的例子:
  [linux_file]
  注:模块,它为我们提供了一个链接的名字,链接到哪呢,在本模块中,链接到了/opt/case/www.linux.com目录;要用[name] 形式;
  path = /opt/case/www.linux.com/
  注:指定文件目录所在位置,这是必须指定的;
  auth users = root
  注:认证用户是root ,是必须在 服务器上存在的用户;
  list=yes
  注:list 意思是把rsync 服务器上提供同步数据的目录在服务器上模块是否显示列出来。默认是yes 。如果你不想列出来,就no ;如果是no是比较安全的,至少别人不知道你的服务器上提供了哪些目录。你自己知道就行了;
  ignore errors
  注:忽略IO错误,详细的请查文档;
  secrets file = /opt/app/rsyncd/linux.pas
  注:密码存在哪个文件;
  comment = linux web data
  注:注释可以自己定义,写什么都行,写点相关的内容就行;
  exclude = cache/
  注:exclude 是排除的意思,也就是说,要把/opt/case/www.linux.com目录下的cahce/ 排除在外;
  3.3 启动rsync服务器:
  启动rsync 服务器相当简单,--daemon 是让rsync 以服务器模式运行;
  #rsync --daemon --config=/opt/app/rsync/rsyncd.conf --port 3334
  注: 如果你找不到rsync 命令,你应该知道rsync 是安装在哪了。比如rsync 可执行命令可能安装在了 /usr/local/bin目录;也就是如下的命令;
  #rsync --daemon --config=/etc/rsyncd/rsyncd.conf --port3334
  这个命令写入rc.local文件中,开机自动运行
  rsync参数详解:
  Rsync的命令格式可以为以下六种:
    rsync [OPTION]... SRC DEST
    rsync [OPTION]... SRC [USER@]HOSTEST
    rsync [OPTION]... [USER@]HOST:SRC DEST
    rsync [OPTION]... [USER@]HOST::SRC DEST
    rsync [OPTION]... SRC [USER@]HOST:EST
    rsync [OPTION]... rsync://[USER@]HOST[ORT]/SRC [DEST]
    对应于以上六种命令格式,rsync有六种不同的工作模式:
    1)拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。如:rsync -a /data /backup
    2)使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。如:rsync -avz *.c foo:src
    3)使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。如:rsync -avz foo:src/bar /data
    4)从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。如:rsync -av root@172.16.78.192::www /databack
    5)从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。如:rsync -av /databack root@172.16.78.192::www
    6)列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。如:rsync -v rsync://172.16.78.192/www
  rsync参数的具体解释如下:
  -v, --verbose 详细模式输出
  -q, --quiet 精简输出模式
  -c, --checksum 打开校验开关,强制对文件传输进行校验
  -a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
  -r, --recursive 对子目录以递归模式处理
  -R, --relative 使用相对路径信息
  -b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。
  --backup-dir 将备份文件(如~filename)存放在在目录下。
  -suffix=SUFFIX 定义备份文件前缀
  -u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
  -l, --links 保留软链结
  -L, --copy-links 想对待常规文件一样处理软链结
  --copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结
  --safe-links 忽略指向SRC路径目录树以外的链结
  -H, --hard-links 保留硬链结
  -p, --perms 保持文件权限
  -o, --owner 保持文件属主信息
  -g, --group 保持文件属组信息
  -D, --devices 保持设备文件信息
  -t, --times 保持文件时间信息
  -S, --sparse 对稀疏文件进行特殊处理以节省DST的空间
  -n, --dry-run现实哪些文件将被传输
  -W, --whole-file 拷贝文件,不进行增量检测
  -x, --one-file-system 不要跨越文件系统边界
  -B, --block-size=SIZE 检验算法使用的块尺寸,默认是700字节
  -e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
  --rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息
  -C, --cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件
  --existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件
  --delete 删除那些DST中SRC没有的文件
  --delete-excluded 同样删除接收端那些被该选项指定排除的文件
  --delete-after 传输结束以后再删除
  --ignore-errors 及时出现IO错误也进行删除
  --max-delete=NUM 最多删除NUM个文件
  --partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输
  --force 强制删除目录,即使不为空
  --numeric-ids 不将数字的用户和组ID匹配为用户名和组名
  --timeout=TIME IP超时时间,单位为秒
  -I, --ignore-times 不跳过那些有同样的时间和长度的文件
  --size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间
  --modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0
  -T --temp-dir=DIR 在DIR中创建临时文件
  --compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份
  -P 等同于 --partial
  --progress 显示备份过程
  -z, --compress 对备份的文件在传输时进行压缩处理
  --exclude=PATTERN 指定排除不需要传输的文件模式
  --include=PATTERN 指定不排除而需要传输的文件模式
  --exclude-from=FILE 排除FILE中指定模式的文件
  --include-from=FILE 不排除FILE指定模式匹配的文件
  --version 打印版本信息
  --address 绑定到特定的地址
  --config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件
  --port=PORT 指定其他的rsync服务端口
  --blocking-io 对远程shell使用阻塞IO
  -stats 给出某些文件的传输状态
  --progress 在传输时现实传输过程
  --log-format=formAT 指定日志文件格式
  --password-file=FILE 从FILE中得到密码
  --bwlimit=KBPS 限制I/O带宽,KBytes per second
  -h, --help 显示帮助信息
KF-gins输出结果绘图 阅读详情

相关推荐

C#连接数据库报Authentication to host ‘127.0.0.1‘ for user ‘root‘ using method ‘caching_sha2_password‘ fail

所以导致的,除了上边的办法,还可以把这个加密规则修改一下,这个的修改方式有很多,具体原因是因为MySQL8.0以前的加密规则是。

weixin_42209881的博客 4105

linux--rsync--rsync安装、配置、实例

Redhat中安装rsync 1、  首先在服务端和客户端都安装rsync,我的RHEL5默认已经安装好了。在安装RedHat5的时候,可以在软件定制中的“基本系统”——》“基本”的“可选的软件包”中看见:rsync-2.6.8是默认选择安装的   2、    也可以通过命令行检查是否安装: 或者:rpm –q rsync 3、  如果在开始安装R

7584

博途WinCC多语言项目配置指南

在博途(TIA Portal)中为WinCC项目配置多语言功能,需通过系统化步骤实现界面文本的动态切换。

dhaimo的博客 2408

rsync安装与配置

每个模块其实就对应需要备份的一个目录树,比方说在我们的实例环境中,有三个目录树需要备份:/www/和/mirror/file0/和/mirror/file1/目录,那么就需要在配置文件中定义三个模块,分别对应三个目录树。--password-file = /etc/rsync.scrt来指定密码文件,这里需要注意的是这份密码文件权限属性要设得只有属主可读(权限为600),属主为正在运行此命令的用户。另外,RPM版的rsync带了一个服务端的启动脚本,/etc/xinetd.d/rsync可以保留。

sun13047140038的博客 5646

使用 rsync 进行服务器文件同步与优化

通过 Rsync 工具,你可以轻松地在两台 Linux 服务器之间同步文件。本文详细介绍了从准备工作到配置 SSH 无密码登录,再到使用 Rsync 进行文件同步的整个过程。通过掌握这些知识,你可以高效地管理和同步服务器上的文件。如果你有任何问题或需要进一步的帮助,请随时联系我。

dnpao的专栏 1752

rsync服务的搭建

Rsync是一款高效的文件同步工具,支持本地和远程数据同步。它具有增量备份、保持文件属性(权限、时间、软硬链接等)的特点,传输效率高。Rsync支持两种认证方式:rsync-daemon方式(默认873端口)和ssh方式。作为服务使用时需配置/etc/rsyncd.conf文件,设置模块路径、权限等参数。结合inotify工具可实现实时同步,监控目录变化并自动触发rsync同步。在CentOS6中可通过xinetd服务托管rsync,修改/etc/xinetd.d/rsync配置文件启用服务。使用时需注意密

小峰编程 1787

轻松搭建Rsync服务,实现高效文件同步

本文将为小伙伴们详细介绍如何轻松搭建Rsync服务,实现高效文件同步。无需具备深厚的专业知识,只需按照本文的指引,就能轻松搭建起一套高效、稳定的Rsync文件同步系统。

微笑的段嘉许的博客 1661

rsync 服务器搭建

首先不搭建rsync服务器的话rsync本地同步也可以用。 linux一般都自带了rsync,如果没有可以安装。 1.准备环境 192.168.21.25 rsync服务器,要将本地代码同步到该机器上 192.168.21.26 本地服务器。 2.在192.168.21.25上安装、配置rsync服务器 1.rsync 安装   yum install rsy

liu4031的博客 501

Rsync 服务器搭建

Rsync简介 rsync 是一个 Unix 系统下的文件同步和传输工具。它具备以下特性:1. 能更新整个目录和树和文件系统2. 有选择性的保持符号链链、硬链接、文件属于、权限、设备以及时间等3. 对于安装来说,无任何特殊权限要求4. 对于多个文件来说,内部流水线减少文件等待的延

秦艳超的专栏 7230

rsync服务器搭建

rsync服务器搭建 作用:rsync主要用于两个文件夹、镜像、文件系统等做同步用,可作用于同一台服务器两个文件夹或多台不同服务器文件夹之间的同步。支持断点续传,个人觉得简单、好用,在实际生产环境应用也比较多。 一、服务器端配置(192.168.1.10) 1.安装超级守护进程xinetd yum install xinetd vim /etc/xinetd.d/rsync    ##改

远玖的博客 628

匿名rsync服务器搭建

最近一个朋友让我帮忙搭建匿名的rsync服务器。 具体要求是: 匿名rsync,此段是废话可以略过。 分析: 这个问题看起来简单其实也不简单。我们经常用到的rsync命令是依托于ssh传输的,这个肯定需要两个前提一个是开放22端口和需要输入密码。当然我们可以使用公钥认证方式,但是这就不符合要求了。所以只能在rsync服务上考虑。之前只知道rsyn...

weixin_33829657的博客 362

Linux-Rsync服务器/客户端搭建

Linux-Rsync服务器/客户端搭建 基础知识 rsync分为服务器端、客户端,服务器搭建的步骤会比客户端多一些。 rsync服务器是指daemon方式运行rsync服务的服务器,需要打开rsync daemon和启动xineted服务,默认端口受873。 rsync客户端是发起rsync连接的服务器,安装rsync即可。 rsync客户端发起连接后rsync服务器会检查rsync客户...

宇宙无敌大帅锅 1万+

搭建Rsync服务器

部署Rsync服务器需要创建至少 一个配置文件,默认在系统中并不存在Rsync配置文件,对于服务器而言,配置文件创建完成后,使用守护进程模式启动rsync程序即可。 使用Centos 系统安装 部署Rsync 下面的案例演示了如何共享以/common目录 # yum -y install rsync # mkdir /common; cp /etc/init.d* /com...

diqigou2000的博客 160

rsync服务器搭建

Rsync(remote synchronize)是一个远程数据同步工具,简要的概括就是主机于主机之间的文件目录数据的一个同步。下面就是rsync服务器搭建过程。 系统环境   平台:Centos 6.5   rsync版本:rsync-3.0.6-12.el6.x86_64   rsync服务器:172.23.216.86   rsync客户端:172.23.216.8...

weixin_30892763的博客 232

Linux:rsync同步服务器搭建

文件记录密码值,在rsync服务器A和rsync客户端B上对于密码文件的写法是不一样的,服务器A的密码文件需要记录用户名与口令,而客户端B的密码文件不需要记录用户名,只记录口令。–password-file 在同步客户端本地保存密码文件/rsyncd.passwd,只记录密码。::backup 表示在服务器的配置文件中创建的同步项名称。密码为服务器/etc/rsyncd/rsyncd.passwd文件记录的密码值。关闭SeLinux、关闭防火墙。

一个认真学习的女孩子的博客 423

Linux搭建rsync备份服务器备份

环境: 1台rsync备份服务器,IP:10.0.0.188 1台rsync备份客户端,IP:10.0.0.51 备份数据需注意: 1. 在业务低谷时间进行备份 2. 进行备份限速 一、搭建rsync备份服务器 1. 查看rsyncd服务配置帮助文件(可忽略) man rsyncd.conf 2.查看rsync安装包,如无则安装...

dnfo2073的博客 411

Rsync服务器搭建遇到的报错解决办法

遇到错误1:[root@backup tmp]# rsync -avz /etc/hosts -e 'ssh -p 22' root@172.16.1.5:/tmp/rsync: Failed to exec ssh: No such file or directory (2)rsync error: error in IPC code (code 14) at pipe.c...

weixin_33696822的博客 822

备份服务器(使用rsync搭建)

备份服务器

u010230019的博客 2027
上一篇: 网络攻击心得-让一切变得可能
下一篇: Flex与Javascript之间的交互
iteye_4590
博客等级 码龄8年 0粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值