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

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

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

6 ответов

[F1]
1
ответ дан 22 May 2018 в 21:30
[F1]
1
ответ дан 18 July 2018 в 11:35
[F1]
1
ответ дан 24 July 2018 в 19:49

Я предлагаю использовать 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
1
ответ дан 22 May 2018 в 21:30
  • 1
    Хороший ответ. Не могли бы вы добавить сон, чтобы повторить попытку через 30 минут? – Grayson Kent 15 June 2017 в 17:26
  • 2
    Готово ... ;) – Ravexina 15 June 2017 в 17:31

Я предлагаю использовать 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
1
ответ дан 18 July 2018 в 11:35

Я предлагаю использовать 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
1
ответ дан 24 July 2018 в 19:49
  • 1
    Хороший ответ. Не могли бы вы добавить сон, чтобы повторить попытку через 30 минут? – Grayson Kent 15 June 2017 в 17:26
  • 2
    Готово ... ;) – Ravexina 15 June 2017 в 17:31

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

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