永发信息网

shell脚本中ftp问题

答案:2  悬赏:20  手机版
解决时间 2021-02-03 17:29
写了一个shell脚本,其中需要登录另一个ftp获取一堆文件到shell所在的服务器。代码如下:
#1、这是从数据库查出来需要获取的文件名(无后缀)
sql1="SELECt DBF_TNAME FROM PEFDM.LOG_DBF_LIST PTH WHERe DBF_TNAME in ('ZCTG_HSXT_CPXX', 'ZCTG_QSXT_CPDY_HKXX')"
db2_tname=`db2 connect to pe_dvp user $user using $password > /dev/null
db2 -X "$sql1"
db2 terminate > /dev/null`
echo $?
#2、打印出来后db2_tname是多个文件名(无后缀)

#3、登录ftp循环获取ftp下和db2_tname相对应的文件
ftp -i -n FTPIP <user xx xxxxxxx
bin
for tname in $db2_name #4、这里根本就拿不到上面查出来的文件
do
get "$tname.txt" #5、从而get不到相应文件,这里答应出来是“.txt” ,根本没有文件名
done
bye
!
大神救救我
最佳答案
ftp 登录后,我感觉是不支持shell语法的(目前还不确定),建议使用mget 下载多个文件!
全部回答
对,$?仅表示上一个命令ftp成功与否。 无法判断远程文件是否存在,只能通过判断本地文件大小来得知。 若远程文件不存在,则ftp获取到本地会产生一个0字节大小的文件(用 wc -c 获取文件字节数,并与0比较即可),也可能就没有产生文件(用test表达式 [ -e $save_name ] 来判断)。 无法判断具体是什么问题,只能得知一个结果:ftp获取文件失败。 -------------------------------------------------------------------------------------------- 根据你自己的情况来判断。那就用 [ -e $save_name ] 判断本地文件是否存在。 -------------------------------------------------------------------------------------------- -e 判断文件是否存在(exist),-f 判断这个“文件”是否为文件(file)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有没有什么技术可以将大的东西收纳到一个小空
“我才发现梦想与现实间的差别”代表的数字含
品德的意思是什么啊?知道的请说下!
正常情况下 人不吃饭最多可以活几天?
cF怎样看卡ping和Fps;在电脑哪里可以看到?
有一首VITAS的歌全哼唱 感觉很适合大礼堂的
顺丰速运(义祠路)怎么去啊,我要去那办事
单元格内部的线咋没有呢
暖锋的意思是什么啊?知道的请说下!
新港花园地址在什么地方,想过去办事
打野球总传球不突破的是不是不受欢迎
阅读材料,回答问题。材料一 :诺贝尔奖得主
我姓何,是贤字辈的。不知道我孙子是什么辈分
一邦速递(水口分公司)怎么去啊,我要去那办事
为什么我一进DNF过几秒就立马网络中断
推荐资讯
中国农业银行甘泉县城关分理处我想知道这个在
女主穿越到恐怖片里戏弄贞子,虐待咒怨
豻户的意思是什么啊?知道的请说下!
三清山买啦门票后参观景点的时候还要买票么
为什么手机连上了wifi有时能上网,有时不能,
管理目标能够引导行动而指向特定的方向,体现
用这些单词组成一句话get,let's,time,in,this
肉和花生米可以一起卤吗?
上班三年多了厂里没给交保险!上了个月我伤着
深圳哪里有卖原版专辑的
老瓜塘地址有知道的么?有点事想过去
常州安通电梯有限公司我想知道这个在什么地方
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?