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, <new dir,/home/user/tmp/user></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压缩。