вторник, 5 октября 2010 г.

Скрипт проверки доступности хоста методом ping в Win и Linux

Бывают задачи для которых важно определить доступность сетевого ресурса:

Например, если удаленный компьютер доступен, то подключить его сетевой диск.
Или например, при сбое в сети переключится на другого интернет провайдера и т.п.

Для решения подобных задач я использую скрипт (основанный на команде ping), который умеет проверять доступность сетевого ресурса.

Для Windows:

@echo off

ping -n 1 www.yandex.ru > %TEMP%\pinglog

find "Unknown host" < %TEMP%\pinglog > nul
if not errorlevel 1 echo Unknown host && goto :eof

find "Reply from" < %TEMP%\pinglog > nul
if not errorlevel 1 echo Ok && goto :eof

find "Request timed out" < %TEMP%\pinglog > nul
if not errorlevel 1 echo Time out && goto :eof


Для Linux:

#!/bin/bash

ADDRESS="www.yandex.ru"

if ping -c 1 -s 1 -W 1 $ADDRESS
then
    echo "Connection Good "
else
    echo "Connection Lost "
fi

4 комментария:

  1. Жаль, что я ничего в этом не понимаю...

    ОтветитьУдалить
  2. Да, для линукса if/then вообще удобно вставлять в скрипты для отслеживания успешного выполнения команд. А то вроде скрипт отработал, в логе запись есть, а на деле ничего )))

    ОтветитьУдалить
  3. в jenkins сделал вот такое
    while [[ $rc != 0 ]]
    do
    sleep 20
    ping -c 1 $HOST_IP >> /dev/null && rc=$? || { true; }
    done

    ОтветитьУдалить
  4. Помогите решить задачу: нужно с помощью запуска батника перебрать в цикле ip адреса серверов хостинга на доступность и в записать в файл доступные и не доступные ip адреса. нужно для того чтобы понять какой ip шник заблокирован, на наш сайт свадебных и вечерних платьев http://licor.com.ua не могут зайти пользователи Казахстана может есть другие варианты снятия блокировки?

    ОтветитьУдалить