rsync linux (上)

本文详细介绍rsync命令的使用方法,包括本地文件复制、通过SSH进行远程文件同步以及如何利用rsync daemon服务进行高效的数据备份。文章还提供了具体的实例演示。

【Linux】rsync用法

rsync 最早是想要取代 rcp 这个指令的,因为 rsync 不但传输的速度快,而且他在传输时, 可以比对本地端与远端主机欲复制的档案内容,而仅复制两端有差异的档案而已,所以传输的时间就相对的降低很多! 此外, rsync 的传输方式至少可以透过三种方式来运作:

· 在本机上直接运作,用法就与 cp 几乎一模一样,例如:

rsync -av /etc /tmp (将 /etc/ 的资料备份到 /tmp/etc )

· 透过 rsh 或 ssh 的通道在 server / client 之间进行资料传输,例如:

rsync -av -e ssh user@rsh.server:/etc /tmp (将 rsh.server 的 /etc 备份到本地主机的 /tmp )

· 直接透过 rsync 提供的服务 (daemon) 来传输,此时 rsync 主机需要启动 873 port

1. 你必须要在 server 端启动 rsync , 看 /etc/xinetd.d/rsync 即可;
2. 你必须编辑 /etc/rsyncd.conf 设定档;
3. 你必须设定好 client 端连线的密码资料;
4. 在 client 端可以利用:rsync -av user@hostname::/dir/path /local/path

其实三种传输模式差异在于有没有冒号 (:) 而已,本地端传输不需要冒号,透过 ssh 或 rsh 时,就得要利用一个冒号 (:), 如果是透过 rsync daemon 的话,就得要两个冒号 (::) ,应该不难理解啦!因为本地端处理很简单, 而我们的系统本来就有提供 ssh 的服务,所以,底下鸟哥将直接介绍利用 rsync 透过 ssh 来备份的动作喔。 不过,在此之前咱们先来看看 rsync 的语法吧!

转自:http://linux.vbird.org/linux_server/0310telnetssh.php#rsync


1rsync语法及参数

[root@linux ~]# rsync [-avrlptgoD] [-e ssh] [user@host:/dir] [/local/path]

参数:

-v :观察模式,可以列出更多的资讯;

-q :与 -v 相反,安静模式,输出的资讯比较少;

-r :递回复制!可以针对"目录"来处理!很重要!

-u :仅更新 (update),不会覆盖目标的新档案;

-l :复制连结档的属性,而非连结的目标原始档案内容;

-p :复制时,连同属性 (permission) 也保存不变!

-g :保存原始档案的拥有群组;

-o :保存原始档案的拥有人;

-D :保存原始档案的装置属性 (device)

-t :保存原始档案的时间参数;

-I :忽略更新时间 (mtime) 的属性,档案比对上会比较快速;

-z :加上压缩的参数!

-e :使用的通道协定,例如使用 ssh 通道,则 -e ssh

-a :相当于 -rlptgoD ,所以这个 -a 是最常用的参数了!

更多说明请参考 man rsync 的解说!


2,使用rsync将远程37上的/etc目录备份到本地的 /tmp/bb目录下面!

[root@kk ~]# rsync -av -e ssh 192.168.254.37:/etc /tmp/bb

The authenticity of host '192.168.254.37 (192.168.254.37)' can't be established.

RSA key fingerprint is 67:aa:a3:19:b4:be:1f:64:e6:76:49:41:92:76:ef:7c.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '192.168.254.37' (RSA) to the list of known hosts.

root@192.168.254.37's password:

。。。。。。

sent 549296 bytes received 25779122 bytes 810105.17 bytes/sec

total size is 82609812 speedup is 3.14

说明:-a保持原文件的所有属性(这个参数是其他参数的组合);

-v 显示备份过程中的详细信息

-e 指定通道协议,-e sshssh协议连接远程的37机器

/tmp/bb 本地用来保存备份的目录


3,将本机的/etc目录备份到本机的/tmp/aa目录下

第一次:可以理解为全备!

[root@nod1 peers]# rsync -av /etc/ /tmp/aa

yum/yum-updatesd.conf

yum/pluginconf.d/

yum/pluginconf.d/security.conf

sent 89011933 bytes received 33008 bytes 6595921.56 bytes/sec

total size is 88889417 speedup is 1.00

第二次:仅作了差异备份!效率很高!

来给/etc/下添加一个zbb文件,再备份!

[root@nod1 peers]# rsync -av /etc/ /tmp/aa

building file list ... done

./

zbb //呵呵,这里只备份自上次以来有差异的文件!效率很高!!

sent 60946 bytes received 54 bytes 40666.67 bytes/sec

total size is 88889417 speedup is 1457.20


rsync 命令在 Linux 中是一种非常强大的工具,用于在本地或远程系统之间同步和传输文件和目录。它能够通过比较源和目标之间的差异,仅传输变化的部分,从而显著减少传输时间和带宽使用。以下是 rsync 命令的使用方法及其关键功能: ### 基本语法 rsync 的基本语法如下: ``` rsync [选项] 源路径 目标路径 ``` 源路径和目标路径可以是本地路径,也可以是远程路径。远程路径可以通过 SSHrsync daemon 指定。 ### 常用选项 rsync 提供了丰富的选项来定制传输过程,以下是一些常用的选项: - `-a`:归档模式,保留几乎所有文件属性(如权限、时间戳等),并递归传输目录。 - `-v`:详细模式,显示传输过程中的详细信息。 - `-z`:压缩传输数据,减少带宽使用。 - `-h`:以人类可读的格式显示文件大小(例如,K、M、G)。 - `-e`:指定使用的远程 shell,通常与 SSH 一起使用。 - `--max-size='X'`:限制传输文件的最大大小。 - `--bwlimit=RATE`:限制传输带宽(单位为 KB/s)。 - `--remove-source-files`:传输完成后删除源文件。 - `--dry-run`:模拟传输过程,不会实际更改文件。 ### 示例用法 1. **本地同步目录**: ``` rsync -avzh source_dir/ destination_dir/ ``` 这个命令将递归地同步 `source_dir` 目录到 `destination_dir`,同时保留文件属性并显示详细信息。 2. **通过 SSH 远程同步**: ``` rsync -avzhe ssh source_dir/ user@remote_host:destination_dir/ ``` 使用 SSH 进行远程同步,确保传输的安全性。 3. **限制传输带宽**: ``` rsync -avzhe ssh --bwlimit=100 source_dir/ user@remote_host:destination_dir/ ``` 限制传输带宽为 100 KB/s,适用于带宽受限的场景。 4. **模拟传输过程**: ``` rsync --dry-run -avzh source_dir/ destination_dir/ ``` 在实际传输前,模拟传输过程以查看哪些文件将被传输。 5. **传输后删除源文件**: ``` rsync --remove-source-files -avzh source_dir/ destination_dir/ ``` 传输完成后自动删除源目录中的文件。 6. **创建增量备份**: ``` rsync -a --link-dest=/path/to/previous_backup /path/to/source /path/to/new_backup ``` 使用 `--link-dest` 选项创建增量备份,仅存储与上次备份的差异。 ### 优势与特点 rsync 的优势在于其高效性和灵活性: - **高效传输**:通过差异传输算法,仅传输源文件与目标文件之间的不同部分,大幅减少数据传输量。 - **远程同步**:支持通过 SSH 进行远程文件传输,便于在本地和远程系统间同步文件。 - **增量备份**:非常适合进行增量备份,因为它能够高效地创建和更新备份。 - **保留权限**:能够保持文件的多种属性,包括权限、所有者、时间戳和符号链接。 - **控制带宽**:允许限制文件传输时的带宽使用,并在传输过程中使用压缩技术。 ### 版本检查 要查看 rsync 的版本,可以使用以下命令: ``` rsync --version ``` 通过这些选项和示例,可以灵活地使用 rsync 命令进行文件同步和备份,满足不同的需求。[^1]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值