Bash-скрипт для проверки, запущены ли apache, nginx, mysql и ssh на сервере

Вам также может показаться интересным…

  • sagax

    спасибо, мне помог ваш скрипт 🙂

  • Дмитрий

    большое спасибо! решил проблему с отваливающимися ключами 1с. мониторю состояние хаспа и сразу же его стартую ))

  • itrex

    Так короче

    #!/bin/sh
    pidof_prog="/bin/pidof"
    ##################################
    path_apache="/etc/init.d/apache2"
    path_sshd="/etc/init.d/ssh"
    path_mysql="/etc/init.d/mysql"
    path_nginx="/etc/init.d/nginx"
    ##################################
    apache2_pid=`$pidof_prog apache2`
    sshd_pid=`$pidof_prog sshd`
    mysqld_pid=`$pidof_prog mysqld`
    nginx_pid=`$pidof_prog nginx`
    #################################
    if [ "$apache2_pid" ]
     then
        echo "Ok";
     else
       echo "restart n";
       echo `$path_apache restart`;
    fi
    if [ "$sshd_pid" ]
     then
        echo "Ok";
     else
       echo "restart n";
       echo `$path_sshd restart`;
    fi
    if [ "$mysqld_pid" ]
     then
        echo "Ok";
     else
       echo "restart n";
       echo `$path_mysql restart`;
    fi
    if [ "$nginx_pid" ]
     then
        echo "Ok";
     else
       echo "restart n";
       echo `$path_nginx restart`;
    fi
    
  • Олег

    Ну данную идею я сам реализовылал и выкладывал в просторы интернета….
    Только я выложил по ресету если завсла служба mysql или не запущенному + посылка смс….

    #!/bin/bash
    #check apache,mysql thread and auto reboot system
    #Powered by PapaGot
    #Моб: +371 26976123
    #Skype: oleg555555555
    #ICQ: 361175794
    #Email: ol12000@inbox.lv
    #Website:oleg.solide.lv
    
    filename="/tmp/mysql.txt" #загоням путь и имя файла в переменную $filename if [ -e "$filename" ]  # проверяем существует ли файл
    then
      echo "The file $filename exists" # если существует удоляем и запускаем занова.
     rm /tmp/mysql.txt && touch /tmp/mysql.txt
    else
      echo "The file $filename does not exist" #если нету файла создаём его.
    touch /tmp/mysql.txt
    fi
    
    ip_address= hostname #чтоб знать на каком сервер произошла авария пишем названия сервера 
    #здесь бедем начинать всё собирать в файл для отправки при случии падения мускула
    mail_doxer()
    {
    sendemail -f olegs@nrj.lv -t 37126976123@sms.tele2.lv -u "!!!PREDUPREZDENIE!!! ot VPS $ip_address"sendemail -f olegs@nrj.lv -t olegs@nrj.lv -u "!!!PREDUPREZDENIE!!! ot VPS $ip_address"}
    
    Начинаем проверку апача....
    MysqldThread=`ps -A|grep mysql|wc -l`
    
    if [ $MysqldThread -eq 0 ]
    then
    echo "MySQL Server has stoped, it will start at $(date +"%y-%m-%d %H:%M:%S")">>/tmp/mysql.txt
    mail_doxer 
    /etc/init.d/mysql start 
    fi
    
    MaxMysqlThread=250
    
    NeedReboot=0
    
    if [ $MysqldThread -gt $MaxMysqlThread ]
    then
    NeedReboot=1
    fi
    
    if [ $NeedReboot -eq 1 ]
    then
    date_reboot=$(date +"%y-%m-%d %H:%M:%S")
    
    echo "Sistema zavisla, perezagruzka
    Mysql:$MysqlThread">>/tmp/mysql.txt
    mail_doxer
    reboot
    fi
  • bat

    Прикольно, у меня как раз была необходимость проверки Nginx, сскрипт с удовольствием принял на вооружение! Спасибо!

  • alex.web

    netstat -tap

  • Lamo

    где этот скрипт запускать ???