linux 传输文件

ftp

ftp 命令的通常格式以下: html

$ ftp 主机名 /IP shell

    其中“主机名 /IP ”是所要链接的远程机的主机名或 IP 地址。在命令行中,主机名属于可选项,若是指定主机名,ftp 将试图与远程机的 ftp 服务程序进行链接;若是没有指定主机名,ftp 将给出提示符,等待用户输入命令。 安全

   此时在 ftp> 提示符后面输入 open 子命令加主机名或 IP 地址,将试图链接指定的主机。无论使用哪种方法,若是链接成功,须要在远程机上登陆。用户若是在远程机上有账号,就能够经过 ftp 使用这一账号并须要提供口令。在远程机上的用户账号的读写权限决定该用户在远程机上能下载什么文件和能将上载文件放到哪一个目录中。在远程站点上登陆成功后,在“ftp> ”提示符下能够自由使用 ftp 提供的各类子命令,最经常使用的子命令以下表所示。 服务器

表 1. ftp 子命令 网络

 

命令 ssh

描述 ide

ls 工具

列出远程机的当前目录 网站

cd ui

在远程机上改变工做目录

lcd

在本地机上改变工做目录

ascii

设置文件传输方式为 ASCII 模式

binary

设置文件传输方式为二进制模式

close

终止当前的 ftp 会话

get (mget)

从远程机传送指定文件到本地机

put (mput)

从本地机传送指定文件到远程机

open

链接远程 ftp 站点

quit

断开与远程机的链接并退出 ftp

?

显示本地帮助信息

!

转到 Shell 中

prompt 1

关闭交互模式

 使用实例:

利用编写 ftp 脚本能够自动完成文件传输任务。具体方法是使用 ftp 命令的 -in 选项,并重定向 ftp 命令的输入。如今咱们来编写一个利用 ftp 登陆到远程服务器,并以 bin 的文件格式,在 /home 目录下,下载 file1.log以及 file2.sh 至本机 /opt/ibm/,并从本地 /opt 目录上传文件 file3.jave 至远程服务器 /home 的自动化脚本。

 

ftp -ni <<+

          open $IP

          user $USERNAME $PASSWD

          bin

          cd /home

          lcd /opt/ibm

          mget file1.log file2.sh

          lcd /opt

          mput file3.jave

          ls

          bye

 rcp

rcp 意为“ remote file copy ”(远程文件拷贝)。该命令用于计算机之间进行文件拷贝。其有两种格式。第一种格式用于文件到文件的拷贝;第二种格式用于把文件或目录拷贝到另外一个目录中。

基本语法:

rcp [-px] [-k realm] file1 file2

 rcp [-px] [-r] [-k realm] file directory

 每一个文件或目录参数既能够是远程文件名也能够是本地文件名。远程文件名具备以下形式:rname@rhost:path,其中 rname 为远程用户名,rhost 为远程计算机名,path 为该文件的路径。下表说明了 rcp 命令各个参数的含义。

 

选项

描述

-r

递归地将源目录中的全部内容拷贝到目的目录中。若使用该选项,目的须为一个目录。

-p

试图保留源文件的修改时间和模式,忽略 umask 。

-k

请求 rcp 得到在指定区域内的远程主机的 Kerberos 许可,而不是得到由krb_relmofhost(3)肯定的远程主机区域内的远程主机的 Kerberos 许可。

-x

为传送的全部数据进行 DES 加密。这会影响响应时间和 CPU 利用率,可是能够提升安全性。

若是在文件名中指定的路径不是完整的路径名,则该路径将被解释为相对远程机上同名用户的主目录。若没有给出远程用户名,则使用当前用户名。若是远程机上的路径包含特殊 shell 字符,须要使用反斜线(\)、双引号(”)或单引号(’)将其括起来,使全部的 shell 元字符都能被远程地解释。须要说明的是,rcp 不提示输入口令,它经过 rsh(remote shell)命令来执行拷贝。

使用实例

将本地文件复制到远程登陆目录中

rcp <source> <remoteDir>

将多个本地文件复制到远程登陆目录的子目录中

rcp <source1> <source2> <source3> <subdirectory in remote system>

将多个文件从多个远程源复制到使用不一样用户名的远程目标中

rcp <host1.user1:source1> <host2.user2:source2> <dest.destuser:directory>

scp

scp 命令在网络上的主机之间拷贝文件,它是安全拷贝(secure copy)的缩写。 scp 命令使用 ssh 来传输数据,并使用与 ssh 相同的认证模式,提供一样的安全保障。 scp 命令的用法和 rcp 命令很是相似,这里就不作过多介绍了。通常推荐使用 scp 命令,由于它比 rcp 更安全。

咱们能够经过配置 ssh,使得在两台机器间拷贝文件时不须要每次都输入用户名和密码。

基本语法

scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]

         [-l limit] [-o ssh_option] [-P port] [-S program]

         [[user@]host1:]file1 [...] [[user@]host2:]file2

使用 scp 命令,须要输入密码,若是不想每次都输入,可参考下面的方法。

首先生成密钥对

$ ssh-keygen -t rsa

 Generating public/private rsa key pair.

 Enter file in which to save the key (/home/user/.ssh/id_rsa):

 Created directory '/home/user/.ssh'.

 Enter passphrase (empty for no passphrase):

 Enter same passphrase again:

 Your identification has been saved in /home/user/.ssh/id_rsa.

 Your public key has been saved in /home/user/.ssh/id_rsa.pub.

 The key fingerprint is:

 10:66:da:38:85:8a:8c:bd:db:9c:6e:eb:ee:bd:7d:15 user@somehost

 在这里,咱们指定了生成 rsa 类型的密钥。在提示密钥的保存路径和密码时,能够直接回车使用默认路径和空密码。这样,生成的公共密钥保存在 $HOME/.ssh/id_rsa.pub,私有密钥保存在 $HOME/.ssh/id_rsa 。而后把这个密钥对中的公共密钥的内容复制到要访问的机器上的 $HOME/.ssh/authorized_keys 文件中。这样,下次再访问那台机器时,就不用输入密码了。

使用实例:

Copy 本地文件 /etc/eva.log, 到远程机器 sysB, 用户 user 的家目录下

scp /etc/eva.log user@sysB:/home/user

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

scp -p user@sysB:/home/uesr/eva.log /etc

copy sysB 上的目录 /home/user,到本地 /home/user/tmp, <new dir,/home/user/tmp/user>

scp -r user@sysB:/home/user /home/user/tmp

 wget

wget 是一个经由 GPL 许可的可从网络上自动获取文件的自由软件包。它是一个非交互式的命令行工具。支持HTTP,HTTPS 和 FTP 协议,支持代理服务器以及断点续传功能。 wget 可实现递归下载,便可跟踪 HTML 页面上的连接依次下载来建立远程服务器的本地版本,彻底重建原始站点的目录结构,实现远程网站的镜像。在递归下载时,wget 将页面中的超级连接转换成指向本地文件,方便离线浏览。因为非交互特性,wget 支持后台运行,用户在退出系统后,仍可继续运行。功能强大,设置方便简单。

基本语法

wget [options] [URL-list]

wget 有不少不一样的参数以用于远程站点信息的获取,经常使用参数以下,更多参数请参照 wget 帮助手册http://www.gnu.org/software/wget/manual/wget.html

 表 3. wget 工具经常使用参数

 

选项

描述

-r

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

-b

后台下载

-m

制做站点镜像

-c

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

-I

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

-A/-R

指定接受/拒绝下载列表,实现选择性地下载

--proxy=on/off

指定是否利用代理服务器进行下载

-t, --tries=NUMBER

最大尝试连接次数 (0 表示无限制,默认为 20 次 )

-nc, --no-clobber

不覆盖已存在的文件

-N, --timestamping

只下载比本地新的文件

-nd --no-directories

不进行目录结构建立

-x, --force-directories

强制建立目录结构

-nH, --no-host-directories

不继承主机目录结构

-P, --directory-prefix=PREFIX

设置目录前缀

使用实例:

递归下载 http://www.ibm.com.cn 站点的信息。下载全部显示完整网页因此须要的文件,如图片等。在下载不进行上层目录搜索并将绝对连接转换为相对连接。

wget -r -p -np -k http://www.ibm.com.cn

将在本地硬盘创建 http://www.ibm.com.cn 的镜像,镜像文件存入当前目录下一个名为 www.ibm.com.cn 的子目录中(也可使用 -nH 参数指定不创建该子目录,而直接在当前目录下创建镜像的目录结构),递归深度为 4,重试次数为无穷(若链接出现问题,wget 将永远重试下去,直至任务完成)

wget -m -l4 -t0 http://www.ibm.com.c

使用代理进行下载,并实现断点续传。代理能够在环境变量 PROXY 或 wgetrc 文件中设定。 -c 选项要求服务支持断点续传。

wget -Y on -c http://www.ibm.com.cn

 做者“devilkin