Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3003871
  • 博文数量: 674
  • 博客积分: 17881
  • 博客等级: 上将
  • 技术积分: 4849
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-17 10:15
文章分类

全部博文(674)

文章存档

2013年(34)

2012年(146)

2011年(197)

2010年(297)

分类: LINUX

2011-10-15 22:20:29

在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。

http://blog.csdn.net/simonjo/article/details/1668655

阅读(600) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~