分类: LINUX
2011-10-15 22:20:29
在UNIX环境中,如果需要经常性的大批量FTP,则可以考虑脚本实现。
首先,写一个脚本,把所有的要运行的FTP脚本写入,Sample如下:
其中,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。