Проверка FTP-сервера онлайн из сценария Bash?

У меня есть сценарий удара, который загружает файлы на внутренний FTP-сервер. Если FTP-сервер будет в режиме офлайн по любой причине, то сценарий перестанет работать. Как я включаю условное выражение в удар, чтобы проверить, произошел ли FTP-сервер и в противном случае повторить за 30 минут?

2
задан 15 June 2017 в 17:07

2 ответа

while true; do
    if nc -z -w1 "$SERVER" 21; then
        echo "FTP is up."
        break
    else
        echo "FTP is down. Will try again."
        sleep $((30*60))
    fi
done
2
ответ дан 2 December 2019 в 02:14

Я предлагаю использовать nmap, например:

nmap REMOTE-IP -p FTP-PORT &> /dev/null

Реальный пример:

nmap 192.168.56.12 -p21 &> /dev/null

затем проверка $?, если это не было 0, это означает, что услуга не работает.

<час>

Для повторной попытки можно использовать что-то как:

if [ "$?" -eq "0" ];
then 
 # do your job
else 
 echo "retry"
 sleep 1800; 
 exec bash /path/to/script.sh
fi
2
ответ дан 2 December 2019 в 02:14

Другие вопросы по тегам:

Похожие вопросы: