Скрипт для проверки интернета



  • Хочу через скрипт узнать в день сколько раз падает интернет или ну в течении недели. Создаю скрипт он проверяет пингом mail.ru или любой сервер. Если пинга нет, тогда записывает в лог файл. Но как этот скрипт запустить при запуске системы. Если поставить этот скрипт в cron и запустить каждую минуту то процессов запущенных очень много становиться. Для этого создаю второй скрипт который проверяет запущен ли процесс. Если запущен то выход иначе запуск первого скрипта. Но этот второй скрипт почему то не работает как надо.
    Первый скрипт который проверят интернет
    #!/bin/sh
    while true
    do
    TIME=date +"%d-%m-%Y %T"
    counting=$(/sbin/ping -o -s 0 -c 15 94.100.180.200 | /usr/bin/grep 'received' | /usr/bin/awk -F',' '{ print $2 }' | /usr/bin/awk '{ print $1 }' )
    if [ $counting -eq 0 ]; then
    echo "[$TIME]" >>/root/internet.log
    fi
    done

    Второй скрипт
    #!/bin/sh
    proc=ps aux | grep internet_test.sh | wc -l
    if [ "$proc" -eq 1 ]
    then
    {
    cd /usr/local/bin
    ./internet_test.sh
    exit 1
    }
    else
    {
    echo "exit"
    exit 1
    }
    fi
    По идею второй скрипт надо было запустить, в каждые 5 минут.



  • @El_Ninio а смысл в этом скрипте , если эту функцию выполняет dpinger pf ?
    Так же пингом проверяет доступность определенного хоста и пишет об этом в лог .

    Вопрос еще такой - зачем в первом скрипте бесконечный цикл ? Получается , что этот процесс никогда не прерывается , и если запускать все по cronу-у , то процессов будет бесконечно много .
    Можно же сделать так - запустить пинг несколько раз , например , 5 раз
    есть ответ - вышли из скрипта
    нет ответа - записали в лог , вышли из скрипта


Log in to reply