【转贴】如何用FTP自动传送文件

发表于:2007-05-26来源:作者:点击数: 标签:
一、 Windows 下用ftp自动传送文件的方法 1、先建立一个文本文件,文件名可以是任意名,例如ftp.txt,其内容如下: open192.168.1.100/*远 服务器 地址或名*/ MYNAME/*用户名MYNAME*/ MYPASSWORD/*用户密码MYPASSWORD*/ binary/*以二进制传送文件,可选项*/

一、Windows下用ftp自动传送文件的方法 

1、先建立一个文本文件,文件名可以是任意名,例如ftp.txt,其内容如下: 
open 192.168.1.100 /*远服务器地址或名*/ 
MYNAME /*用户名MYNAME*/ 
MYPASSWORD /*用户密码MYPASSWORD*/ 
binary /*以二进制传送文件,可选项*/ 
cd REMOTE_PATHNAME /*进入远程目标路径REMOTE_PATHNAME*/ 
get REMOTE_FILE LOCAL_FILE /*把远程文件REMOTE_FILE下载成本地文件LOCAL_FILE*/ 
put LOCAL_FILE REMOTE_FILE /*将本地文件LOCAL_FILE上传成远程文件REMOTE_FILE */ 
bye /*退出ftp应用*/ 

2、 执行以下命令: 
ftp –s:ftp.txt 
就完成了自动传送。 

二、UNIX下用ftp自动传送文件名是静态的方法 

1、 建立一个文本文件,例如文件名是ftp.txt,其内容如下: 
open 192.168.1.100 /*用open连接远程服务器192.168.1.100*/ 
user MYNAME MYPASSWORD /*MYNAME是用户名,MYPASSWORD是密码*/ 
binary /*以二进制传送*/ 
hash /*当有数据传送时,显示#号*/ 
cd REMOTE_PATHNAME /*进入远程目标路径REMOTE_PATHNAME*/ 
get REMOTE_FILE LOCAL_FILE /*把远程文件REMOTE_FILE下载成本地文件LOCAL_FILE*/ 
put LOCAL_FILE REMOTE_FILE /*将本地文件LOCAL_FILE上传成远程文件REMOTE_FILE */ 
bye /*退出ftp应用*/ 

2、执行命令: 
cat ftp.txt | ftp -n 

三、UNIX下用ftp自动传送文件名是动态的方法 
现以一个文件名是以月份和日期为变量的文件来说明 

1、建立脚本文件autoftp.sh 
#!/bin/sh 
MM=`date "+%m"` /*取月份*/ 
DD=`date "+%d"` /*取日期*/ 
pre_filename="DBZZ" /*设定文件名前缀前部分*/ 
filename="${pre_filename}${MM}${DD}.tgz" 
echo " open 192.168.1.100 
user MYNAME MYPASSWORD 
binary 
hash 
cd REMOTE_PATHNAME 
get ${filename} ${filename} 
bye 
cat ftp.txt  | ftp -n 

2、将脚本赋有运行权后,执行脚本 
chmod +x autoftp.sh 
sh autoftp.sh (或./autoftp.sh)

 jxp2002 回复于:2004-01-09 12:01:01
如何在指定的时间完成传送呢,如我想在18:00时候传送!

 lixunhong 回复于:2004-01-10 16:13:47
参见man crontab

 njlwm 回复于:2004-07-27 11:36:30
太好了,非常有用!!!

 seaboy168 回复于:2004-08-11 08:56:28
:D [color=red:1c083c0150][/color:1c083c0150][size=18:1c083c0150][/size:1c083c0150]
 老大,你真好啊!!!!

 gdzhen 回复于:2004-12-07 11:39:27
1、建立脚本文件autoftp.sh 
#!/bin/sh 
MM=`date "+%m"` /*取月份*/ 
DD=`date "+%d"` /*取日期*/ 
pre_filename="DBZZ" /*设定文件名前缀前部分*/ 
filename="${pre_filename}${MM}${DD}.tgz" 
echo " open 192.168.1.100 
user MYNAME MYPASSWORD 
binary 
hash 
cd REMOTE_PATHNAME 
get ${filename} ${filename} 
bye 
cat ftp.txt | ftp -n 

最后一行为什么还加入?ftp.txt文件哪来?

 只爱陌生人2004 回复于:2004-12-26 13:23:49
请问老大
如果我向好几个网点传送文件
怎样才能编在一个程序里
谢谢!!!

 wenyue 回复于:2004-12-27 00:15:58
[quote:b4a98a448c="只爱陌生人2004"]请问老大
如果我向好几个网点传送文件
怎样才能编在一个程序里
谢谢!!![/quote:b4a98a448c]

有个最简单的方法,再建一个shell,包含几个ftp脚本,对应不同网点的ip和口令,应该可以吧?

 sinopost 回复于:2004-12-27 16:47:09
对啊!
cat ftp.txt | ftp -n 

最后一行为什么还加入?ftp.txt文件哪来?

 lv_xiaowei 回复于:2005-04-15 16:17:11
用户的密码为空如何进行自动传送?

 sdclearcase/" target="_blank" >ccf 回复于:2005-04-15 16:39:15
用户密码不能为空.

 lw371 回复于:2005-04-15 17:01:39
用户密码为空的时候如果手工ftp可以,
那么可以vi编辑在PASSWORD位置输入Ctrl+V Ctrl+M即输入“回车符”(显示^M)即可

 btq0 回复于:2005-04-16 11:21:21
如果直接执行,用vi编辑一文件比如myftp内容如下:
ftp -n 192.168.1.100 <<!
user  用户名  口令
bin
cd  目录名
get  文件名
put  文件名
bye
!


然后直接执行 sh  myftp  即可

 xy-coordinate 回复于:2005-08-17 16:56:56
[quote:c3287fa3c6="lw371"]用户密码为空的时候如果手工ftp可以,
那么可以vi编辑在PASSWORD位置输入Ctrl+V Ctrl+M即输入“回车符”(显示^M)即可[/quote:c3287fa3c6]
不行!!!!

 sdccf 回复于:2005-08-17 18:49:08
既然是自动进行FTP的传输,给用户加上密码就是了.

原文转自:http://www.ltesting.net