免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3267 | 回复: 4
打印 上一主题 下一主题

如何判断远端机器文件是否存在 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-10-14 10:53 |只看该作者 |倒序浏览
如何判断远端机器文件是否存在,远端主机文件名不固定,但是可以用 ls FILE201010* 查找,请问如何判断此类文件是否存在,不胜感激!

论坛徽章:
0
2 [报告]
发表于 2010-10-14 11:03 |只看该作者
其他地方找了个方法,如下:

判断ftp上的文件是否存在,若存在则get下来的程序

#!/bin/bash
# this is auto ftp shell script
# author:shaoping

# 这个函数的任务就是把ftp上的文件列表给抓下来
function lsftp
{
ftp -i -n ftpip <<FTPIT
user user password
# 如果要对多个目录下的文件进行判断,则需要把本函数放在一个循环中
# 暂时假设进入到目录“dir”中
cd dir
# ls命令不是每个系统都吃的,或是dir
ls
quit
FTPIT
}

# 这个函数的命令就是把那个需要的文件给get下来
# 这个函数稍做改动,就可以同时抓多个文件
function getftp
{
ftp -i -n ftpip <<FTPIT
user user password
cd dir
bin
get $1
quit
FTPIT
}

#工作目录
basedir=/home/lsp/

#存放要抓取文件列表的文件
basefile=${basedir}getfile

#计算抓取的文件总数
count=`wc -l ${basefile}|awk '{print $1}'`

#####################
# get ftp file list
lsftp >${basedir}tmp.$$

# 判断文件是否存在于ftp上,若存在则get下来
for (( i=1;i<=${count};i++ ))
do
filelst=`sed -n "${i}p" ${basefile}`
grep "${filelst}" tmp.$$
if [ $? -eq 0 ]
then
        getftp ${filelst}
else
        echo "No file ${filelst} in ftp site!"
fi
done
rm -f ${basedir}tmp.$$
#主要部分完成,其余可以根据情况做修改了
# 如果ftp只支持PASV方式,在 -i 后面加上 -p 即可

论坛徽章:
0
3 [报告]
发表于 2010-10-14 11:08 |只看该作者
ftp -n IP <<! >ftp.log
user username password
cd dir
dir FILE201010*
by
!

然后去查看ftp.log是否为空,不为空说明远程机器上有你需要的文件。

论坛徽章:
0
4 [报告]
发表于 2010-10-14 13:04 |只看该作者
使用mussh

论坛徽章:
0
5 [报告]
发表于 2010-10-14 15:03 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP