rsync基本介绍和安装应用

本文详细介绍了rsync工具的特点、安装配置及使用方法。rsync是一款强大的文件同步和传输工具,适用于Unix系统,支持增量数据同步,特别适合在网络带宽较小的情况下使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 什么是rsync;

   rsync is a file transfer program for Unix systems. rsyncuses the “rsync algorithm” which provides a very fast method forbringing remote files into sync. It does this by sending just thedifferences in the files across the link, without requiring that bothsets of files are present at one of the ends of the linkbeforehand.rsync 是一个Unix系统 下的文件 同步和传输工具 。rsync是用 “rsync算法”提供了一个客户机和远程文件服务器 的文件同步的快速方法。 Some features of rsync include
rsync 包括如下的一些特性:
* can update whole directory trees and filesystems
能更新整个目录 和树和文件系统;
* optionally preserves symbolic links, hard links, file ownership, permissions, devices and times
有选择性的保持符号链链、硬链接、文件属于、权限、设备以及时间等;
* requires no special privileges to install
对于安装来说,无任何特殊权限要求;
* internal pipelining reduces latency for multiple files
对于多个文件来说,内部流水线减少文件等待的延时;
* can use rsh, ssh or direct sockets as the transport
能用rsh、ssh 或直接端口做为传输入端口;
* supports anonymous rsync which is ideal for mirroring
支持匿名rsync 同步文件,是理想的镜像工具;


2 rsync 服务器的理由;

  rsync服务器架设比较简单,可能我们安装好rsync后,并没有发现配置文件,以及rsync服务器启动程序,因为每个管理 员可能对rsync用途不一样,所以一般的发行版只是安装好软件 就完事了,让管理员来根据自己的用途和方向来自己架设rsync服务器;因为这个rsync应用 比较广,能在同一台主机进行备份工作,还能在不同主机之间进行工作。在不同主机之间的进行备份,是必须架设rsync 服务器的。 以我的观点上看,如果在同一台主机进行文件的备分,用复制工具cp就好了。没必要用rsync 这么相对复杂的工具,cp也简单易用,当然这仅仅是个人观点; 对于重量级服务器来说,应该有网络 备份服务器来说,只有本地备份还是不够的,最好还是有网络备份主机,这样数据 的安全才有保证。毕竟数据放在服务器本地上还是不太安全,比如磁盘坏掉、被骇客攻入服务器删除数据。其实服务器本身价值并不大,重要的是数据的价值。
另外对于大量文件从一台服务器上迁移到另一台服务器上,rsync的确是一个不可不用传输工具。公司有一台文件服务器,配置是CPU Intel Celeon 333Mhz,内存128M,硬盘IDE80Gx3=240G,里面仅是第一个硬盘的12G的分区安装系统,用了256M做为交换分区,其它的空间我都用 来存数据,通过LVM卷来管理磁盘空间,我分了一个180G的空间给数据存放,当时数据存储容量已经达到了160多G。当时的情况是服务器空间有限,没做 本地备份。更不可能新增硬盘上去,因为这台机器没做RAID,硬盘坏掉一个,数据会全毁掉,安全性没有一点保障。在这种情况下,为了保证数据的安全性,我 被迫做了一台带有Raid5支持的文件服务器。在选择如何把数据文件完整的传输到新服务器上,我想到了很多的工具,最后想到了rsync 。我花了十分钟架设并调试了rsync,然后就开工文件传输,因为文件服务器上的文件太多,老的文件服务器配置又低,大约花了两三天吧才得以把所有文件传 输完毕.

>>>>>>>>>>>[以上参考linux sir ]
  Rsync 是一种特殊的功能强大的文件传输工具。它可以通过网络对文件执行特殊的上传和下载 (同步),并只传输被改变的数据。

例如:如果您有一个50M的本地文件副本并且有一个更新版本的文件在远程系统。如果这两个文件之间只有1M的差别,那么只有这1M的改变会在2个系统中传输。

由于只传输很少的数据,rsync非常适合在拨号网络或带宽很小的网络中使用。但是,如果是在两个系统中拷贝一个新文件,它相对于其他的文件传输协议(FTP或SCP)来说没有任何优势。
rsync命令 会把远程的发生改变的数据拷贝到本地。 rsync命令运行 时会使用大量的CPU时间。当您使用rsync的时候,请确认您的系统不会受增加的负载 的影响。
>>>>>>>>>>[这里是rh 介绍]
安装设置 install config
1. yum install rsync下载
2.架设rsync服务器 (rsync的prot是873,或者你可以用ssh配合)
vi /etc/rsync.conf (全局)
pid file = /var/run/rsyncd.pid   注:告诉进程写到 /var/run/rsyncd.pid 文件中;
port = 873  注:指定运行端口,默认是873,您可以自己指定;
address = 192.168.1.171  注:指定服务器IP地址;
uid = nobody   指定执行的身份
gid = nobdoy

use chroot = yes 用chroot,在传输文件之前,服务器守护程序在将chroot 到文件系统中的目录中,这样做的好处是可能保护系统被安装漏洞侵袭的可能。缺点是需要超级用户 权限。另外对符号链接文件,将会排除在外。
read only = yes
#limit access to private LANs
hosts allow=192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0 指定IP或网段

max connections = 5 最大连线的数量
motd file = /etc/rsyncd/rsyncd.motd 当用户登录服务器时候出现的信息,可自行编写

局部模块
[abcd]
path = /abcd   注:指定文件目录所在位置,这是必须指定的;
auth users = abcd 注:认证用户是abcd  ,是必须在 服务器上存在的用户;
list=yes   注:list 意思是把rsync 服务器上提供同步数据的目录在服务器上模块是否显示列出来。默认是yes 。如果你不想列出来,就no ;如果是no是比较安全的,至少别人不知道你的服务器上提供了哪些目录。你自己知道就行了;
ignore errors  注:忽略IO错误,详细的请查文档
secrets file = /etc/rsyncd/rsyncd.secrets   注:密码存在哪个文件;
comment = abcd  data  注:注释可以自己定义,写什么都行,写点相关的内容就行;
exclude =   beinan/   samba/ exclude 是排除的意思

3.编写rsyncd.secrets
vi /etc/rsyncd.secrets
adcd:passwd
4.chown  abcd.abcd   rsyncd.secrets      这里根据你的用户设置
chmod 600  rsyncd.secrets  保持权限的严格
>>>>>>>>>
启动rsync
  首先注意的是rsync的端口是873
可以用system-config-securitylevel 开启图形化iptables 来开启这个端口
iptables -A INPUT -p tcp -m state --state NEW  -m tcp --dport 873 -j ACCEPT
iptables -L  查看一下防火墙是不是打开了 873端口;

1.vi /etc/xintd.d/rsync
disable =no
2./etc/init.d/rsyncd start
>>>>>>>>>
使用
由于之前已经设定了rsyncd.secrets的账号密码了,
所以可以
rsync -av user@hostname(或ip);; /dir/path /local/path ****这里记得是2个;
用rsync是2个;
a表示all ,但有时候会出错,所以有需要时还要增加一些参数
v代表显示的信息
——–
  一般推荐用ssh来传输,简单而且还可以加密
如果使用的是ssh来进行登陆验证传输
rsync -av -e ssh user@hostname或ip ; /etc /tmp
前提是ssh已经设置好利用公钥私钥配对登陆,即是不需要密码的登录
——–
rsync  --list-only  user@hostname或ip ;; 列出清单 这里也有2个;
rsync –list-only user@hostname或ip;;/dir/path 指定列出,当list 属性设置为no的时候就需要这样了
——–
  rsync的参数(常用)
-a 参数,相当于-rlptgoD,-r  是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;
-z  传输时压缩;
-P  传输进度;
-v  传输时的进度等信息,和-P有点关系,

如果我们用普通用户用rsync 进行与服务器同步数据时,同步下来的数据,可能属主会改变。为了保持文件的属主和用户组与服务器端完全一致,用root来运行rsync 就可以了
———–
  rsync -avlR –delete -e ssh root@192.168.0.1 :/var/lib/mysql /backup/
–delete
是指如果Server端刪除了一文件,那客戶端也相應把這一文件刪除,保持真正的一致

rsync -avlR -e ssh root@192.168.0.1 ;/var/a.txt /etc /b.txt /back
将文件a和文件b同步到 /back
更多的用法只能man ,rsync 都蛮多用法的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值