[转帖]Linux下主机间文件传输命令

时间:2022-01-06 14:09:46

Linux下主机间文件传输命令

https://yq.aliyun.com/articles/53631?spm=a2c4e.11155435.0.0.580ce8ef4Q9uzs
 

SCP命令:

简介:

scp 命令在网络上的主机之间拷贝文件,它是安全拷贝(secure copy)的缩写。 scp 命令使用 ssh 来传输数据,并使用与 ssh 相同的认证模式,提供同样的安全保障。

如果有公钥打通就不用密码,如果没有就会提示输入密码。

用法:

1 #Copy 本地文件 /etc/eva.log, 到远程机器 sysB, 用户 user 的家目录下
2 scp /etc/eva.log user@sysB:/home/user
3 #copy 远程机器 sysB 上的文件 /home/uesr/eva.log, 到本地的 /etc 目录下 , 并保持文件属性不变
4 scp -p user@sysB:/home/uesr/eva.log /etc
5 #copy sysB 上的目录 /home/user, 到本地 /home/user/tmp, <new dir,/home/user/tmp/user>
6 scp -r user@sysB:/home/user /home/user/tmp
-r 表示递归
-P port 指定端口
-p 表示保留原来的文件属性,比如创建时间等。

wget命令:

简介:

一个网页爬取程序。 可实现递归下载,即可跟踪 HTML 页面上的链接依次下载来创建远程服务器的本地版本,完全重建原始站点的目录结构,实现远程网站的镜像。在递归下载时,wget 将页面中的超级链接转换成指向本地文件,方便离线浏览。

用法:

wget [options] [URL-list]

-r  递归下载服务器上所有的目录和文件。由 -l 选项来指定递归深度。
-b 后台下载
-c 指定断点续传功能。该功能要求服务器支持断点续传。
-I 指定下载目录列表,可实现批量下载

rsync命令:

简介:

rsync是一个同步命令,即让两个主机的某些文件保持同步。通常用于备份。

用法:

1 rsync main.c machineB:/home/userB

这是最常见的用法,同步两个文件。

只要目的端的文件内容和源端不一样,就会触发数据同步,rsync会确保两边的文件内容一样。

-r 使用-t选项后,rsync会将源文件的“modify time”同步到目标机器。可能有坑,时间戳相同但是文件不同。
-I 保数据的一致性,挨个文件发起同步。
-v 让rsync输出更多的信息,v越多输出越详细。
-z 压缩,默认gzip。

NC命令组合:

简介:

NetCat,在网络工具中有“瑞士军刀”美誉。因为它短小精悍,功能实用,被设计为一个简单、可靠的网络工具,可通过TCP或UDP协议传输读写数据。

这里,我们使用它来在Linux主机间传输文件。其实,nc只是个传输字符的工具,因此我们还需要其它工具来配合。

用法:

假设,我们要把文件夹data从A机器传输到B机器。A机器的IP为192.168.0.1

我们先在A机器上运行:

1 tar -cvzf - /data | nc -l 6666

这是在A机器上,打开6666端口,并将data目录的文件打包,以字节流的方式发送到这个端口。

然后,在B上读取A主机的6666端口的字节流,通过tar反向解包出文件。

1 nc 192.168.0.1 6666| tar -xvzf - -C /tmp

这个传输的通道还是压缩了的。tar的参数中,-z是打包后用gzip压缩。

转载请注明:旅途@KryptosX » Linux下主机间文件传输命令