命令行下 FTP 使用技巧

2015-04-02  本文已影响1533人  羽风之歌

简单介绍

网上有很多图形化界面的 FTP 工具,但我的工作环境中使用了很多自动化工具必须在命令行下操作,Windows 和 Linux 下都有基于命令行的 FTP 工具,而它们的使用方式也都大同小异,这里介绍的方法都是通用的。

使用 .netrc 配置文件进行自动化操作

.netrc 文件可以看做 FTP 工具的默认命令列表,当你不使用任何参数调用 FTP 命令时它会自动读取这个文件中的内容执行命令,下面的就是一个简单的例子:

在自己的home目录下建立一个权限600(权限必须是600,少了不行,多了也不行),名为 .netrc 的文件,内容如下:

machine 192.168.0.1 login <ftpuser> password <ftpuser_password>

这样以后你每次 ftp 192.168.0.1 的时候系统都会帮你以用户名ftpuser登录到该服务器,利用这个特征可以实现自动ftp。

如果想要每天5:00到192.168.0.1机器上面获得 /test 目录下的文件 test.txt ,可以建立一个文件 ftp_cmd,内容为:

cd test
get test.txt
bye

然后在 Linux 系统中使用 crontab -e 设置定时任务:

0 5 * * * ftp 192.168.0.1 < ftp_cmd

附:.netrc 的用法

netrc 中应包含的基本命令:

FTP中有几十个命令,在.netrc中应该设置的大致有如下几条:

  1. default login password
    在互联网中存在大量匿名ftp帐户,用户在不同的主机间频繁登录anonymous帐户,输入自己的电子邮件地址作为口令,这种输入极其繁琐,完全有必要利用.netrc文件在进入ftp时自动完成该过程。

  2. binary
    许多用户在下载大量文件之后才意识到下载的文件是二进制文件,而自己却是使用ascii方式传输使下载文件无法使用,做了许多无用功。在.netrc文件中提前将传输方式设置为binary 完全可避免出现上述情况。

  3. runique
    在浩如烟海的文件中有大量同名文件,如readme、index等,如果将同名文件下载到同一目录则新传的文件会覆盖原同名文件。为了使具有潜在重要性的文件不至于被意外覆盖,也需要在.netrc文件中设置runique参数防止上述错误。

  4. prompt off
    使用ftp时,经常会用到mget或其它需要确认的ftp命令,将此确认过程取消可大大方便使用者。

  5. hash on
    ftp中的hash命令使得在进行文件传输时每传输1千字节就在屏幕上显示一个"#"号,通过观看屏幕上的"#"号可以很直观地看到传输速度的快慢,以及文件的传输完成情况。

  6. idle 7200
    目前国内的Internet专线速率普遍偏低,用户数却在急剧膨胀,所以用ftp传输销大一些的文件时经常会因为线路拥塞而断线,为了减少因断线而反复登录的次数,需将idle命令的参数设置为最大(一般为7200秒)。

  7. macdef
    macdef定义一个宏,macro_name为宏定义的名称。在macdef行下,可输入任何有效的ftp命令,并以空行结束宏定义,执行时只需在宏名前加"$"号即可。如果宏名定义为init,则该宏命令在启动ftp后自动加以执行,无需用户输入$macro_name。

在命令行下指定用户名和密码:

ftp://dev:abcd1234@10.208.66.10://pub/readme.txt

常用 FTP 命令列表

FTP的命令行格式为:ftp -v -d -i -n -g [主机名],各个参数含义如下:

FTP使用的内部命令如下(中括号表示可选项):

上一篇下一篇

猜你喜欢

热点阅读