2012-05-03 31 views
0

我正在使用下面的代碼來連接ftp節點。我只想知道如何檢查我無法與ftp服務器連接或者ftp服務器沒有響應。在任何情況下,它都會提醒我ftp服務器正常或關閉。其實我想嵌入正常的bash代碼來檢查連接性。在Bash腳本中需要FTP連接確認

#!/bin/ksh 
ftp -nv <<EOF 
open xxx.xx.xx.xx 
user xxx xxxxxxxxx 
bye 
EOF 

回答

1

如何從ftp輸出輸出?我不知道您的FTP回報的版本時,它的完成上傳成功,但這樣的:

#!/bin/ksh 

(
ftp -nv <<EOF 
open xxx.xx.xx.xx 
user xxx xxxxxxxxx 
bye 
EOF 
) | grep -i "success" 
if [[ "$?" -eq "0" ]] 
then 
     echo "FTP SUCCESS" 
else 
     echo "FTP FAIL" 
fi 

應該工作..

+0

給下面的錯誤 ./noini.sh[3]:在3行語法錯誤:'<<」無與倫比 – Dogar

+0

嗯,可能是bash和ksh的之間的差別(我沒有)簡單的腳本通常是兼容的,但在這種情況下可能不是。 – Benj

+0

您的代碼適用於我的環境。 @Dogar:確保兩個EOF副本都沒有隱藏的字符(空格,製表符,??)。祝你們好運。 – shellter

0

我之前得到了同樣的問題,以檢查它解決了來自ftp命令的輸出。不過,發現它很奇怪,所以我決定使用PERL。

#!/usr/bin/perl 
use strict; 
use warnings; 
use Net::FTP; 

# open connection 
my $ftp = Net::FTP->new("127.0.0.1"); 
if (! $ftp) { 
    print "connection failed!"; 
    exit 1; 
} 

# in case you would need to test login too 
# if (! $ftp->login("username", "password")) { 
# print "login failed!"; 
# exit 2; 
#} 

$ftp->close(); 
exit 0;