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下主机间文件传输命令