一、思路:
(要明白請務(wù)必看仔細(xì)思路!!?。?/p>
本地主機:192.168.0.10
目標(biāo)主機:IP:192.168.0.100
目標(biāo)主機的上存在的目錄為:/YK/
不存在的目錄為:/123/

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

3、ftp將cd的命令輸出追加到本地文檔,通過讀取本地文件數(shù)據(jù)判斷文件夾是否存在。
二、Shell腳本實現(xiàn)
upload_ip=192.168.0.10 #目標(biāo)主機的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的函數(shù)
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
}
#清空上一次記錄的目標(biāo)主機日志的信息
cat /dev/null > ${local_record}
#調(diào)用函數(shù)獲取目標(biāo)主機中的路徑的日志并記錄到record.log中
ftpCheckFile > ${local_record}
#調(diào)用方法判斷獲取目錄信息,判斷文件夾是否存在
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)文件夾不存在)

最后祝大家都能夠順利完成校驗!?。。?!
|