专注Java教育14年 全国咨询/投诉热线:444-1124-454
星辉LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 实例分析Linux文件同步命令

实例分析Linux文件同步命令

更新时间:2021-01-06 17:31:08 来源:星辉 浏览1364次

文件同步是复制用户创建和修改的文件到另外的设备(转而进入传统备份客户进程)。在Linux系统中同步命令rsync命令可以实现文件同步。这里指的文件同步就是将jenkins工作目录下面的文件同步到我们指定的目录(如我们nginx配置的项目目录)。并且rsync同步命令具备,高效、带宽消耗低、支持复制链接、设备、属主、属组、权限等。下面我们一起来了解分析Linux文件同步命令rsync。

rsync是远程(或本地)复制和同步文件最常用的命令。借助rsync命令,你可以跨目录,跨磁盘和跨网络远程与本地数据进行复制和同步。举例来说:在两台Linux主机之间进行数据备份和镜像。本文介绍在Linux主机上进行远程和本地传输文件的常见用法,不需要root账户也可以允许rsync。

rsync命令的特点:
1.高效地复制同步数据到对端,或者对端到本地。

2.支持复制链接、设备、属主、属组、权限。

3.比scp(Secure Copy)更快。rsync使用远程更新协议( remote-update protocol ),这允许仅仅传输两组文件之间的差异。对于首次传输,它将文件或目录的全部内容从源复制到目标,但是从下次起,它仅将变化部分复制到目标。

4.rsync消耗较少的带宽,因为它使用压缩和解压缩方法,同时发送和接收数据两端。HTTP压缩技术。

rsync命令语法格式
rsync [options] 资源源目录 目标目录
-v : 详细模式输出

-r : 递归拷贝数据,但是传输数据时不保留时间戳和权限

-a : 归档模式, 归档模式总是递归拷贝,而且保留符号链接、权限、属主、属组时间戳

-z : 压缩传输

-h : human-readable

--progress: 显示传输过程

--exclude=PATTERN 指定排除传输的文件模式

--include=PATTERN 指定需要传输的文件模式

--delete 同步时,删除那些DST中有,而SRC没有的文件

--max-size:限定传输文件大小的上限

--dry-run:显示那些文件将被传输,并不会实际传输

--bwlimit:限制传输带宽

-W:拷贝文件,不进行增量检测

下面我们来看rsync命令实现本地同步某个文件的实例:
[root@iZ7eetumtw8c9jZ jenkins]# rsync -zvrh remoting.jar /root/work/
sending incremental file list
created directory /root/work
remoting.jar

sent 796.37K bytes  received 68 bytes  1.59M bytes/sec
total size is 872.44K  speedup is 1.10
同步结果查看
[root@iZ7eetumtw8c9jZ jenkins]# ll /root/work/
total 852
-rw-r--r-- 1 root root 872440 Nov  3 20:03 remoting.jar
同步某个目录
[root@iZ7eetumtw8c9jZ jenkins]# rsync -zvrh workspace/ /root/work/
sending incremental file list 
公司服务器测试/tests/Unit/
公司服务器测试/tests/Unit/ExampleTest.php
公司服务器测试@tmp/

sent 18.82M bytes  received 7.30K bytes  7.53M bytes/sec
total size is 29.87M  speedup is 1.59
同步结果查看

[root@iZ7eetumtw8c9jZ jenkins]# ll /root/work/
total 868
-rw-r--r--  1 root root 872440 Nov  3 20:03 remoting.jar
drwxr-xr-x 11 root root   4096 Nov  3 20:05 公司服务器测试
drwxr-xr-x  2 root root   4096 Nov  3 20:04 公司服务器测试@tmp       
同步远程目录

[root@tecmint]$ rsync -avz rpmpkgs/ [email protected]:/home/
[email protected]'s password:
sending incremental file list
./
httpd-2.2.3-82.el5.centos.i386.rpm
mod_ssl-2.2.3-82.el5.centos.i386.rpm
nagios-3.5.0.tar.gz
nagios-plugins-1.4.16.tar.gz
sent 4993369 bytes  received 91 bytes  399476.80 bytes/sec
total size is 4991313  speedup is 1.00

使用rsync命令最引人入胜的地方就是可以实现增量同步,而不是全量同步。这样减少带宽的消耗,也加快了传输的速度。当然,Linux文件同步命令也是有弊端的,这种情况下无法保护移动设备状态,而这对文件的快速恢复是至关重要的。也许通过在本站的Linux教程中的学习,我们可以找到两全其美的方法来解决这个问题。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>