2
我需要製作一個Unix腳本,我需要FTP和SFTP功能。讓我詳細描述一下:如何一起使用FTP和SFTP?
我需要從遠程服務器導入幾個文件,現在這些遠程服務器不是都支持ftp或SFTP。所以我需要一個腳本,腳本將首先嚐試執行ftp,如果成功,則從腳本中提取出來,如果不是,則嘗試在該服務器上執行SFTP。
我嘗試了下面的腳本:
log=/opt/app/vertica/cdr/tmp/hpcom/sftp.txt
LOGINID=abc
HOST=sftp2.xyz.com
echo "starting ftp & sftp...." > $log
ftp -i -n -v $HOST <<-EOFtp >$log
user $LOGINID $PASSWD
bye
EOFtp
rc=$?
if [[ $rc = 0 ]]; then
echo "Successful ftp...$rc" `date "+%Y-%m-%d-%H.%M.%S"` >> $log
else
sftp [email protected]$HOST<<EOF > $log
#cd $DIR
#get $FILE
bye
EOF
rc1=$?
if [[ $rc1 != 0 ]]; then
echo "Error occured...$rc" `date "+%Y-%m-%d-%H.%M.%S"` >> $log
else
echo "Successful sftp...$rc" `date "+%Y-%m-%d-%H.%M.%S"` >> $log
fi
fi
在上面的代碼我的腳本不能正常工作,因爲它應該...以下是日誌文件的輸出
"Not connected.
Successful ftp...0 2014-01-30-10.03.06"
這清楚地表明,FTP沒有發生在這臺主機上,所以理想情況下,它應該嘗試做SFTP,但它不會來SFTP語法,而是它的腳本出來...
我希望我包括了一切,請讓我知道我如果您需要更多信息來協助解決這個問題。