用自动wget或ftp提高工作效率

文章作者 100test 发表时间 2007:09:25 13:13:20
来源 100Test.Com百考试题网


wget ftp://username:password@ip_address/dir/file_name

比自动FTP的SHELL脚本的方法方便多了.

例如获取FTP服务器上文件名是昨天日期的文件,如filename_20040608_001,filename_20040608_002,......

#!/bin/sh
rq=`date --date 1 days ago " %Y%m%d"`
wget -q ftp://username:password@ip_address/filename_$rq*

有的时候,FTP站点用wget可以进行目录浏览,也可以下载固定文件名的文件,
却不能把文件名是昨天日期的文件取下来时.

我想了一个方法 (wget 1.8.2 版本):

#!/bin/sh
rq=`date --date 1 days ago " %Y%m%d"`
wget -nr ftp://username:password@ip_address/filename_$rq*
grep filename_$rq .listing > 1.txt
cat 1.txt|while read LINE
do
file_name=`echo $LINE|awk {print $9}`
wget -q ftp://username:password@ip_address/$file_name
done

(wget 1.10.2 版本):

#!/bin/sh
rq=`date --date 1 days ago " %Y%m%d"`
wget --no-remove-listing ftp://username:password@ip_address/filename_$rq*
grep filename_$rq .listing > 1.txt
cat 1.txt|while read LINE
do
file_name=`echo $LINE|awk {print $9}`
wget -q ftp://username:password@ip_address/$file_name
done

原理是在目录浏览.listing文件里查找到昨天生成的文件名到临时文件1.txt里

-rw-r--r-- 1 fengyu fengyu 106880 Jun 9 11:44 file_name_20040608001
-rw-r--r-- 1 fengyu fengyu 161760 Jun 9 11:44 file_name_20040608002
...... ...... ......

从头到尾一行行读这个1.txt文件,取它的第9段,也就是固定的文件名,再传递给wget工具.

如果FTP站点或者URL地址里面有特殊的符号,如@和&., 需要用ASC 码替换成@和&

更详细替换的方法请参考:www.gnu.org

相关文章


ORACLE物理文件大小的限制
用自动wget或ftp提高工作效率
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛