我使用下面的shell腳本代碼來上傳一個大的.tar文件。有時會發生服務器無法將域解析爲IP或其他服務器不可用的情況。所以我不想重試一些時間,如果它沒有工作。我怎樣才能做到這一點?我無法在互聯網上找到這樣的東西。shell bash腳本 - 上傳一個大的tar文件,重試?
ftp -inv << EOF
open $FTP_SERVER
user $FTP_USER $FTP_PASS
cd $FTP_VERZEICHNIS
mkdir ultimate_$DATE
cd ultimate_$DATE
mput *.tar
quit
EOF
編輯:
對不起,我有殼無真實經歷,怎麼會是這個樣子?
FTP_SUCCESS_MSG="226 Transfer complete"
while [fgrep "$FTP_SUCCESS_MSG" $FTPLOG]
do
FTPLOG=/temp/ftplogfile
ftp -inv <<! > $FTPLOG
open $FTP_SERVER
user $FTP_USER $FTP_PASS
cd $FTP_VERZEICHNIS
mkdir ultimate_$DATE
cd ultimate_$DATE
mput *.tar
close
quit
!
fi
exit 0
sleep 10s
else
echo "Upload completed"
done
像'而[$ I -le 5]。做...睡10; (第(i ++)); done'? – fedorqui
是的,如果連接失敗,我該如何得到? – user2693017
你可以檢查http://stackoverflow.com/questions/4899316/getting-exit-status-code-from-ftp-command-in-linux-shell – fedorqui