Shell中ftp文件上傳下載腳本(判斷ftp目錄是否存在)


Shell中ftp文件上傳下載腳本(判斷ftp目錄是否存在)


- 文件下載

function get_ftp_data()
{
ftp_dir=$1
local_dir=$2

ftp -n<<!
open ${FTP_HOST}
user ${FTP_USERNAME} ${FTP_PASSWORD}
binary
cd ${ftp_dir}
lcd ${local_dir}
prompt
mget *
close
bye
!
}

 

- 檢查文件夾是否存在

check_ftp_dir()
{
    ftp_dir=$1
    ftp -n -i ${FTP_HOST} <<EOF
user ${FTP_USERNAME} ${FTP_PASSWORD}
cd ${ftp_dir}
bye
EOF
}


# 清空上一次記錄的目標主機日志的信息
local_record='check-ftp-dir.log';
cat '' > ${local_record}

# 調用函數獲取目標主機中的路徑的日志並記錄到record.log中
check_ftp_dir "${ftp_dir}" > ${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


- mget命令注意事項

- mget \* 下載當前目錄所有文件,不能指定目標目錄,也不能下載子目錄(不能類似這樣寫:mget /opt/data/\*,實測這樣寫系統會當做\*處理)
- 目錄切換失敗時,會停留在當前目錄(可能是根目錄),這時候再執行mget \* 會把當前目錄文件都下載下來,這並不是我們想要的結果
- 所以,使用mget *命令前,一定要判斷ftp目錄是否存在


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM