一、思路:
(要明白请务必看仔细思路!!!)
本地主机:192.168.0.10
目标主机:IP:192.168.0.100
目标主机的上存在的目录为:/YK/
不存在的目录为:/123/

1、连接到ftp
 
2、cd 需要判断的目录(如何目录存在会‘250 Directory successfully changed.‘,如果目录不存在’550 Failed to change directory.‘)

3、ftp将cd的命令输出追加到本地文档,通过读取本地文件数据判断文件夹是否存在。
二、Shell脚本实现
upload_ip=192.168.0.10 #目标主机的ip地址
ftpuser=admin #ftp用户
ftppswd=admin #ftp用户密码
ftp_folder_path=/123/ #需要判断的文件夹的绝对路径
local_record=record.log #(记录ftp命令返回的日志(正确日志:250 Directory successfully changed.错误日志:550 Failed to change directory.)用于判断文件夹是否存在)
#定义一个连接到ftp的函数
echo $upload_ip
echo $ftpuser
echo $ftppswd
echo $ftp_folder_path
echo $local_record
ftpCheckFile()
{
ftp -n -i $upload_ip <<EOF
ftp $upload_ip
user $ftpuser $ftppswd
cd ${ftp_folder_path}
bye
EOF
}
#清空上一次记录的目标主机日志的信息
cat /dev/null > ${local_record}
#调用函数获取目标主机中的路径的日志并记录到record.log中
ftpCheckFile > ${local_record}
#调用方法判断获取目录信息,判断文件夹是否存在
grep -c 'Failed to change directory.' ${local_record}
if [ `grep -c 'Failed to change directory.' ${local_record}` -eq 1 ];then
echo 文件夹不存在!!!接下来就可以做文件夹不存在的事情了!!!!!
else
echo 文件夹存在!!!接下来就可以做文件夹存在的事情了!!!!!
fi

三、进行测试!!!!!
1、测试存在的目录 /YK/(该(YK)文件夹存在)

2、将测试的文件夹改为/123/(该(123)文件夹不存在)

最后祝大家都能够顺利完成校验!!!!!
|