文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>如何利用ftp自动下载文件-转解决处理

如何利用ftp自动下载文件-转解决处理

时间:2007-02-27  来源:linuxyueye

如何利用ftp自动下载文件
Author:   Huang W.Y.([email protected])
Date  :   2003/05/20

关键词
自动下载

场景
两台主机hosta和hostb。
主机hosta的目录/tmp每日有文件产生。文件名和日期有关,文件格式为abcYYMMDD.txt。
主机hostb利用ftp每日定时(cron)自动登录主机hosta,下载文件abcYYMMDD.txt。保存目录为/BACKUP。
hosta的ftp用户为usera,密码为usera,IP为xxx.xxx.xxx.xxx。

方案
ftp通常用交互方式下载文件。不过别忘了ftp还可以用自动方式下载文件。
在执行ftp –i hosta时,ftp首先在用户HOME目录下查看是否存在.netrc文件。
如果不存在.netrc文件则以交互方式提示用户输入用户名和密码。如果存在.netrc
文件并且有匹配hosta的machine条目,则读取.netrc文件的配置信息自动登录目
标主机。在.netrc文件中可以定义宏模块。

在命令行下可以运行ftp,自动登录目标主机,执行宏模块。命令如下:
echo $ macname arg1 ... |ftp –i hostname

与日期相关的文件,通过宏模块中的参数实现。

实施步骤
.netrc配置文件。
在主机hostb的HOME目录下建.netrc文件,文件属性是属主可读可写,组和其它不可读不可写。
hostb>cat .netrc
#begin of file .netrc
machine xxx.xxx.xxx.xxx login usera password usera
macdef m_get          #定义宏模块,宏名自定。
    cd /tmp            #以 TAB开头。
    get abc$1.txt        #以 TAB开头。
    quit               #以 TAB开头。
                     #空白行
#end of file .netrc

ftp命令行参数
hostb>echo $ m_get `date +%y%m%d`|ftp –i xxx.xxx.xxx.xxx
             |        |---参数1
             |-----宏模块名
至此,你可以在hostb上手工输入以上命令下载hosta上的/tmp/abcYYMMDD.txt文件。
以下是利用cron自动定时ftp下载文件。
自动ftp运行脚本。
注意脚本文件属性是属主可读可执行。
hostb>cat ourftp
#begin of file ourftp
#!/bin/sh

PATH=$PATH; export PATH

BAKDIR=/BACKUP

#format : ourget dir mac machine
ourget() {
        [ ! -d $1 ] && mkdir -p $1
        cd $1
        echo "$  `date +%y%m%d`"|ftp -i $3     #关键语句
}

ourget ${BAKDIR} m_get xxx.xxx.xxx.xxx
#end of ourftp

在crontab中,加入一行:
30 03 * * *

 

相关阅读 更多 +
排行榜 更多 +
兔子跳一跳游戏

兔子跳一跳游戏

休闲益智 下载
球球跳跃游戏

球球跳跃游戏

休闲益智 下载
森林之灵游戏

森林之灵游戏

休闲益智 下载