rsync 命令总结

在不同的目录或机器之间拷贝文件是服务器上常用的一项操作。备份文件;主服务器同步文件至分流服务器;分类服务器将自己收集的文件传给主服务器等任务都涉及到文件的拷贝,相比简单的 cp,scp 命令, rsync 支持增量拷贝,功能强大也更灵活。

rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。

rsync 有 6 种不同的工作模式,对应以下 6 种语法:

rsync [OPTION]... SRC DEST    # 将本地文件(目录) SRC 同步到本地文件(目录) DEST
rsync [OPTION]... SRC [USER@]host:DEST    # 通过 ssh 将本地文件(目录) SRC 同步到远程主机 HOST 上的文件(目录) DEST
rsync [OPTION]... [USER@]HOST:SRC DEST    # 通过 ssh 将远程主机 HOST 上的文件(目录)同步到本地文件(目录) DEST
rsync [OPTION]... [USER@]HOST::SRC DEST    # 通过 rsync 服务将远程主机 HOST 上的文件(目录) SRC 同步到本地文件(目录) DEST
rsync [OPTION]... SRC [USER@]HOST::DEST    # 通过 rsync 服务将本地文件(目录)同步到远程主机 HOST 上的文件(目录) DEST 
rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC    # 通过 rsync 服务列出远程主机 HOST 上 SRC 目录里的文件列表

可以看到除了在本地同步文件之外,rsync 通过 ssh 和 rsync 两种方式支持主机之间的文件同步。ssh 方式不需要额外配置,只要两台主机都开启了 rsync 服务即可。以 ssh 方式同步时 host 和地址之间用 : 分隔,例如:rsync -aq /data/folder/ root@XXX.XXX.XXX.XXX:/data/folder_backup/,这里要注意如果同步目录后面都带 / 则会覆盖目标目录,例如此列中 folder 会覆盖 folder_backup。若同步目录后都不带 / 则会放到目标目录下,例如 rsync -aq /data/folder /data/folder2 会将 folder 拷贝到 folder2 下。

ssh 同步时会要求输入 ssh 密码,但如果配好了密钥则可以直接同步,参考 http://www.jb51.net/article/60192.htm

rsync 方式同步文件需要写 rsync 配置,优点是不需要 ssh 登录且可以分配不同的帐号和权限。rsync 配置文件在 /etc/rsyncd.conf,默认没有这个文件需要手动创建,可以参照下面这个模版配置 rsync。

# rsync 全局配置
uid = root
gid = root
hosts allow = 192.168.8.122, 192.168.8.123
#hosts deny = 0.0.0.0/32
use chroot = no
max connections = 10
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
timeout=600

# rsync 模块配置 可配置多个模块对应不同的目录和帐号
[clientdata]     
path = /usr/local/share/rsync_backup
comment = rsync files
ignore errors
read only = no
list = no
auth users = user
secrets file = /etc/rsync.passwd

[test]
path = /home/hyj/workspace/test
comment = rsync files
ignore errors
read only = yes
list = no
auth users = rsync
secrets file = /etc/rsync.passwd
用 rsync 方式向远程主机同步文件时 HOST 后面用 :: 分隔,后跟模块名和模块下子目录路径。

例如 rsync -aq /data/folder/ user@XXX.XXX.XXX.XXX::clienddata/folder_back/。

最后来说说 rsync 命令的选项参数,注意到上面例子中都加上了 -aq 参数,它表示递归同步子目录子文件并保留文件熟悉,使用精简输出模式,是常用的选项。rsync 常用的选项如下:

-v 详细输出模式

-q 精简输出模式

--progress 显示传输过程,在传输大文件时可以以百分比查看传输进度。

-a 归档模式,相当于 -rlgopD

-r 递归同步子目录子文件

-g 保留文件属组信息

-o 保留文件属主信息

-p 保留文件权限

-D 保留设备文件信息

-l 保留软链接

-t 保留文件时间信息

--delete 应用这个选项,目标目录中有而源目录中没有的文件将被删除


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值