Linux中的文件传输

linux中文件传输的方式有ftp,scp,rsync,rz,sz等,但各个工具的功能又有所区别:

FTP : FTP是文件服务器,可实现文件的上传下载,存储等功能(这里不做举例说明)。

scp: scp能够将不同主机的文件进行相互传输,使用简单方便。

rz : 用于linux与windows之间的文件上传

sz : 用于linux与windows之间的文件下载

rsync : rsync是文件同步工具,结合inotify可以实现文件的同步,备份功能。

1  scp方式

scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。scp在夸机器复制的时候为了提高数据的安全性,使用了ssh连接和加密方式,如果机器之间配置了ssh免密码登录,那在使用scp的时候密码都不用输入。

命令格式:

scp  [参数]  [本地主机文件路径]  [远程主机路径]

参数:

-r  递归复制整个目录

-p 保留原文件的修改时间,访问时间和访问权限。  (建议使用,传输时保留属性时间信息,否则会导致时间发生改变无法进行增量传输)

-P port  注意是大写的P, port是指定数据传输用到的端口号  

-B  使用批处理模式(传输过程中不询问传输口令或短语)  

-C  允许压缩。(将-C标志传递给ssh,从而打开压缩功能)

1)将本地A主机文件复制到B主机:(A的IP:192.168.214.190    B的IP:192.168.214.187) 

scp -p ./files/yum.log 192.168.214.187:/tmp/demo/

2)将远程主机B复制到本地A:

scp -p 192.168.214.187:/tmp/demo/f3.log /tmp/files/

3)  复制目录

scp -rp ./files/  192.168.214.187:/tmp/demo

2  rz  sz (lrzsz)方式

 rz  sz指令可以实现linux和windows之间的文件传输,但要求在windows客户端要安装Xshell或SecureCRT远程连接工具。rz指令和sz指令是一对上传与下载的指令。它们的软件包名为lrzsz。

3  rsync方式

rsync是可以实现增量备份的工具。配合任务计划,rsync能实现定时或间隔同步,配合inotify或sersync,可以实现触发式的实时同步。rsync可以实现scp的远程拷贝,cp的本地拷贝、rm删除和"ls -l"显示文件列表等功能。

rsync 的传输模式有:

1. 本地shell模式

        本地shell模式用于复制本机的目录到另一个目录,和cp一样

2. 远程shell模式

        远程shell模式可以把本机的数据复制到远程的机器上,和 scp一样

3.  服务器模式

        服务器模式是使用最多的方式,其他3个模式都可以用其他指令替代,远程自动同步也是使用服务器模式 

基本使用方法

1. 复制/etc/fstab 到/tmp下

rsync -a /etc/fstab /tmp/  #-a:保留原文件属性

2. 复制/etc目录到/tmp下

rsync -ar  /etc  /tmp/

3. 远程文件传输 –shell方式

rsync -arvz /tmp/fdd root@192.168.214.187:/tmp/ # -z :压缩传输

##远程传输会将文件的属组信息改为ssh登录使用的用户属组属主

4. 开启加密传输,加强传输安全性

rsync -arvze  ssh  /tmp/nginx root@192.168.214.187:/tmp/

5

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容