Results 1 to 15 of 17

Thread: Newcs Check Script

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Standard RSP member
    Join Date
    09 Feb 2009
    Posts
    152
    Mentioned
    0 Post(s)
    Rep Power
    0

    Default Newcs Check Script

    Nu ma ajuta nimeni cu un newcs check script?

    De curand am probleme, tot la cam 2-3 zile crapa si am nevoie de ceva script care sa-l monitorizeze si sa-i dau restart in momentul cand nu-l vede activ.

    Am cautat pe google dar nimic concret. Macar sa incercam noi aici ceva...

  2. #2
    Standard RSP member
    Join Date
    31 Dec 2007
    Posts
    33
    Mentioned
    0 Post(s)
    Rep Power
    67

    Default

    Salut,
    Nu am lucrat cu newcs dar poti sa iti dau niste ideii:

    Creezi un script newcs_ck.sh si ii il faci executabil : chmod +x

    Scriptul poate arata cam asa :

    Code:
    #! /bin/sh
    if ps | grep -v grep | grep -c newcs >/dev/null
    then
    echo "NEWCS is OK"
    else
    echo "Restarting NEWCS"
    /var/bin/newcs
    fi
    Scriptul apoi il bagi in crontab sa ruleze la 5 minute.
    Scriptul e super simplu dar poate fi considerat punct de plecare.
    Last edited by zmeura; 18-03-10 at 15:01. Reason: Regula 12.

  3. #3
    Standard RSP member
    Join Date
    23 Jun 2008
    Posts
    320
    Mentioned
    2 Post(s)
    Rep Power
    68

    Default

    Am facut un script care merge ok.
    Trebuie doar sa modifici primele doua linii in functie de locatia si versiunea newcs-ului.

    Code:
    NEWCS_PATH=/usr/bin
    NEWCS_BIN=newcs_1.67
    NEWCS_PID=`ps -ef|grep $NEWCS_BIN|grep -v grep|wc -l`
    
    start_newcs () {
      $NEWCS_PATH/$NEWCS_BIN
      }
    
    stop_newcs () {
      killall $NEWCS_BIN 2>/dev/null
      sleep 2
      }
    
    check_newcs () {
      if [ $NEWCS_PID -eq 0 ]; then
         echo "`date '+%D %T'` - NewCS is down!"
         echo "`date '+%D %T'` - Starting NewCS ..."
         start_newcs
         echo "`date '+%D %T'` - NewCS started!"
      fi
      }
    
    case "$1" in
       start)
           echo "Start NewCS..."
           start_newcs
           ;;
       stop)
           echo "Stop NewCS..."
           stop_newcs
           ;;
       check)
          check_newcs
          ;;
       *)
          echo "Usage newcs.sh [start|stop|check]"
          exit 0
          ;;
    esac
    
    exit 0
    Il poti pune in crontab la 5 minute:

    Code:
    */5 * * * * /path_to_newcs/check_newcs.sh check > /dev/null 2>&1

  4. #4
    Standard RSP member
    Join Date
    09 Feb 2009
    Posts
    152
    Mentioned
    0 Post(s)
    Rep Power
    0

    Default

    Multumesc baieti, o sa-l testez indata ce ajung acasa si o sa va comunic cum sta treaba.

  5. #5
    Standard RSP member
    Join Date
    09 Feb 2009
    Posts
    152
    Mentioned
    0 Post(s)
    Rep Power
    0

    Default

    Scriptul merge perfect. Problema e alta. Eu tot timpul editam fisierul cronjob sau crontab din /etc/ care se pare ca nu functioneaza.

    Pentru adaugare de cron se scrie din shell ca root

    Code:
    crontab -e
    si acolo se adauga! Merge din prima.

  6. #6
    RSP Enigma Team
    Join Date
    28 Aug 2009
    Location
    Departe
    Posts
    437
    Mentioned
    0 Post(s)
    Rep Power
    63

    Default

    E mai sigur sa faci modificarile in /etc/crontab. Trebuie sa repornesti serviciul ca sa incarce noile setari - de ex. cu "service crond restart" (pe anumite Linux-uri poate fi diferita comanda de restart).

    Cu "crontab -e" modifici doar crontab-ul pentru utilizatorul curent, iar comenzile vor fi executate sub ID-ul acelui user - implicit si cu permisiunile lui.

    A, si mai apare o problema: tastele E si R sunt alaturate, si din viteza risti sa tastezi "crontab -r", care iti va sterge toate setarile din crontab-ul acelui user. Mi s-a intimplat de mai multe ori. Am invatat repede sa tin la indemana o copie de backup a ultimului crontab.

    Ambele metode sunt valabile, eu prefer /etc/crontab pentru ca e mai usor de centralizat totul. Si, indiferent de metoda, nu uitati sa faceti backup.

  7. #7
    Standard RSP member
    Join Date
    09 Feb 2009
    Posts
    152
    Mentioned
    0 Post(s)
    Rep Power
    0

    Default

    Sa zicem ca treaba cu repornirea serviciul n-am stiut-o. Defapt, am stiut ca trebuie sa fac asta dar n-am stiut cum (comanda) si am dat de fiecare data restart dupa ce-am modificat /etc/crontab dar degeaba. Nici o schimbare.

    Pentru mine singura solutie a fost crontab -e .

  8. #8
    RSP Enigma Team
    Join Date
    28 Aug 2009
    Location
    Departe
    Posts
    437
    Mentioned
    0 Post(s)
    Rep Power
    63

    Default

    A, inca ceva: "> /dev/null 2>&1" de mai sus inseamna ca tot output-ul programului va fi aruncat. Pentru depanare se poate inlocui cu ">> /tmp/newcs.log 2>&1" si tot output-ul se va duce in fisierul /tmp/newcs.log (se poate folosi orice nume sau director doriti). Semnul dublu ">>" inseamna ca la fiecare executie a comenzii output-ul se adauga la fisierul existent, spre deosebire de ">", care determina golirea fisierului la executia comenzii, inainte de a incepe sa scrie in el.

    Iar "2>&1" inseamna ca iesirea standard de erori (stderr) sa fie redirectionata la iesirea standard (stdout), care in cazul de mai sus este redirectionata la randul ei spre /dev/null (galeata de gunoi a sistemului) sau un alt fisier.

    ---------- Post added at 22:15 ---------- Previous post was at 22:10 ----------

    @siemens: Ciudat, folosesc Linux de multi ani, nu inteleg de ce repornirea serviciului nu preia modificarile din /etc/crontab. Ce Linux folosesti? Directioneaza output-ul spre un alt fisier in loc de /dev/null, vezi daca scrie ceva acolo.

    Poate e o problema de permisiuni? Daca aplicatia trebuie executatat ca root, de exemplu, atunci linia trebuie scrisa asa:

    */5 * * * * root /path_to_newcs/check_newcs.sh check > /dev/null 2>&1

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •