我使用以下代码连接ftp节点。我只是想知道如何检查我是否无法连接ftp服务器或ftp服务器没有响应。在任何情况下,它会提醒我ftp服务器正常或关闭。实际上我想嵌入正常的bash代码来检查连接性。
#!/bin/ksh
ftp -nv <<EOF
open xxx.xx.xx.xx
user xxx xxxxxxxxx
bye
EOF
答案 0 :(得分: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
应该工作..
答案 1 :(得分: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;
答案 2 :(得分:0)
使用此命令检查ftp服务器是否可用:
sleep 1 | telnet ftp.example.com 21 2> /dev/null | grep -c 'FTP'
它的作用:
如果您要检查的ftp服务器的预期欢迎响应与标准响应不同,则可能必须调整grep模式“ FTP”,该标准响应通常显示如下:
Trying 93.184.216.34...
Connected to ftp.example.com.
Escape character is '^]'.
220 FTP Service