您的位置:首页 > 编程语言 > PHP开发

UNIX上自动FTP任务的脚本实现

2007-06-27 14:18 295 查看
在UNIX环境中,如果需要经常性的大批量FTP,则可以考虑脚本实现。

首先,写一个脚本,把所有的要运行的FTP脚本写入,Sample如下:

open 10.10.10.XX 2121
user username password
binary
prompt off
cd XXXX
get XXXX
put XXXX
bye
其中,prompt off是必需的,这样相当于屏蔽掉了所有可能导致job中断的提示信息。写这个脚本时,一定要注意,在get和put时,默认的目录是$HOME,如果不想用这个,要指明。

然后,这个脚本时不能直接运行的,因为它不是shell脚本,只是FTP脚本。新建一个脚本,写入下面的语句:

#!/bin/sh
ftp -n < $HOME/ftpfile.fsh
(假设刚才写的那个脚本存在$HOME下,名为ftpfile.fsh)

这个Shell脚本实际上是运行FTP命令,并且使用ftpfile.fsh作为FTP命令的输入。

man一下ftp可以知道,-n是避免使用默认连接。

-n
Prevents an automatic login on the initial connection. Otherwise,
the ftp command searches for a $HOME/.netrc entry that describes
the login and initialization process for the remote host. See the
user subcommand.

我们已经在ftpfile.fsh中定义了open语句来创建ftp连接,当然不想让ftp命令自动利用$HOME/.netrc中的信息创建初始连接了,那样的话,就要先close那个连接才能创建我们的。我们不知道运行这个脚本时,$HOME/.netrc中有没有初始连接的信息,有了我们也不用,所以需要-n。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: