天天看点

Linux下主机间文件传输命令

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

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

<code>1</code>

<code>#copy 本地文件 /etc/eva.log, 到远程机器 sysb, 用户 user 的家目录下</code>

<code>2</code>

<code>scp</code> <code>/etc/eva</code><code>.log user@sysb:</code><code>/home/user</code>

<code>3</code>

<code>#copy 远程机器 sysb 上的文件 /home/uesr/eva.log, 到本地的 /etc 目录下 , 并保持文件属性不变</code>

<code>4</code>

<code>scp</code> <code>-p user@sysb:</code><code>/home/uesr/eva</code><code>.log </code><code>/etc</code>

<code>5</code>

<code>#copy sysb 上的目录 /home/user, 到本地 /home/user/tmp, &lt;new dir,/home/user/tmp/user&gt;</code>

<code>6</code>

<code>scp</code> <code>-r user@sysb:</code><code>/home/user</code> <code>/home/user/tmp</code>

-r

表示递归

-p

port 指定端口

表示保留原来的文件属性,比如创建时间等。

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

wget [options] [url-list]

 递归下载服务器上所有的目录和文件。由 -l 选项来指定递归深度。

-b

后台下载

-c

指定断点续传功能。该功能要求服务器支持断点续传。

-i

指定下载目录列表,可实现批量下载

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

<code>rsync</code> <code>main.c machineb:</code><code>/home/userb</code>

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

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

使用-t选项后,rsync会将源文件的“modify time”同步到目标机器。可能有坑,时间戳相同但是文件不同。

保数据的一致性,挨个文件发起同步。

-v

让rsync输出更多的信息,v越多输出越详细。

-z

压缩,默认gzip。

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

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

假设,我们要把文件夹data从a机器传输到b机器。a机器的ip为192.168.0.1

我们先在a机器上运行:

<code>tar -cvzf - /data | nc -l 6666</code>

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

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

<code>nc 192.168.0.1 6666| </code><code>tar</code> <code>-xvzf - -c </code><code>/tmp</code>

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

继续阅读