Hardy szerver “időzített” leállítása [Megoldva]

Kezdőlap Fórumok Van egy ötletem… Hardy szerver “időzített” leállítása [Megoldva]

10 bejegyzés megtekintése - 21-30 / 39
  • Szerző
    Bejegyzés
  • #2199506
    pointux
    Felhasználó
      uzsolt wrote:
      Ez mond valamit? 🙂
      2>/dev/null

      Mit gondolsz? 🙂

      vizsla wrote:
      De ezzel megint vigyázz, mert mi van akkor, ha kiírja pl. xy() függvényben hiba van? Mondjuk lehet, hogy egy stdout stderr külön irányítása megoldaná.

      uzsolt wrote:
      Már feltételezve, hogy az smbstatus nem akarja felrúgni a konvenciókat 🙂
      No, és pont ezért írtam feltételesben.
      #2199507
      body007
      Felhasználó

        Kaphatnék egy konkrét skript-et próba gyanánt? 🙂
        A helyes megfejtőnek fel tudnék ajánlani (a cég által) egy kis kedvezményt reklám anyagokra 😉

        szerk.: első körben elég lenne a sorok vizsgálata is (kimenet 4 sornál kevesebb -> nincs kapcsolat)

        #2199508
        pointux
        Felhasználó

          Ennyi az egész sorszámlálás :):

          X=$(smbstatus 2>/dev/null | wc -l)

          if [ $X -lt 4 ]; then
          echo "nincs senki"
          else
          echo "na most van felhasználó"
          fi

          if [ $X -gt 4 ]; then
          Ha a 4 sornál többre vagy kíváncsi. Az else és következő sort kihagyod, ha a másik feltétel nem kell.
          Ebben már a hibairányítás a kukába is megvan.

          Egyéb feltételek:
          gt – nagyobb mint
          lt – kisebb mint
          le – kisebb vagy egyenlő
          ge – nagyobb vagy egyenlő
          eq – egyenlő
          ne – nem egyenlő

          #2199509
          pointux
          Felhasználó

            Közben egyébként rájöttem, hogy az egész sterr kukábairányítása hülyeség, mert azt úgysem fogja beleszámolni, így a “smbstatus | wc -l” jobb, mivel nemcsak megszámolja a sorokat, de a hibaüzenet megmarad a stderr-en és ki lesz írva, így tudni lehet, hogy hiba van és nem a felhasználókkal van a gond. (Persze, feltéve, hogy szabályosan vannak kezelve a hibaüzenetek. Én megmondom őszintén, hogy nekem gyakran kimegy ez a lehetőség a fejemből, amikor hibát íratok ki.)

            #2199510
            body007
            Felhasználó

              Összeollóztam de nem sikerül (nem értek a bash-hez)

              #!/bin/bash
              while true; do
              if X=$(smbstatus 2>/dev/null | wc -l)
              if [ $X -lt 4 ]; then
              COUNTER=0
              else # nincs senki
              COUNTER=$((COUNTER+1))
              fi
              if [ $COUNTER -gt 30 ]; then
              suspend
              fi
              sleep 1m
              done

              szerver@ubuntu:~/Desktop$ ./Sleep2.sh
              ./Sleep2.sh: line 13: syntax error near unexpected token `done'
              ./Sleep2.sh: line 13: `done'

              #2199511
              uzsolt
              Felhasználó

                Az elejére nem kell if

                body007 wrote:
                Összeollóztam de nem sikerül (nem értek a bash-hez)

                #!/bin/bash
                while true; do
                if X=$(smbstatus 2>/dev/null | wc -l) <<<< Itt nem kell az if!
                if [ $X -lt 4 ]; then
                COUNTER=0
                else # nincs senki
                COUNTER=$((COUNTER+1))
                fi
                if [ $COUNTER -gt 30 ]; then
                suspend
                fi
                sleep 1m
                done

                #2199512
                pointux
                Felhasználó

                  Tényleg nyugodtan elhagyhatod a 2>/dev/null-t, mert az stderr olyan neki, mintha ott sem lenne… nem kezeli.

                  Egyébként a legjobb megoldás a samba logok figyelése lenne egyszer félóránként. (Tehát nem kell 30x, vagy akár többször vizsgálni.) Ugyanis abban a samba kapcsolatok időkóddal lementésre kerülhetnek és mind ott is marad és nem pillanatnyi állapot. Magyarán nincs olyan, hogy az adott pillanatban épp elkerülöd a felhasználókat és zárod a bazárt, pedig volt kapcsolat csak éppen akkor nem vizsgáltad. Továbbá nem lehet gond a vizsgálat módjával (sorok számolása és egyéb trükkök), ugyanis a logokban egyértelműen meg van jelölve a kapcsolat létrehozása sor és időkóddal ellátva. Tehát pontosan tudod, hogy milyen szót keresel és az a sor milyen dátummal készült. (Sőt fél óránként lehet törölni, vagy backupolni a logot így nem kell figyelni az ismétlődések felesleges vizsgálatára.)
                  Én most, hogy hideg fejjel, elvonatkoztatva a “feladat kiírástól”, tuti, hogy így csinálnám.

                  #2199513
                  body007
                  Felhasználó

                    Átírtam, így már elindul, köszi. “Márcsak” ez a gond:
                    szerver@ubuntu:~/Desktop$ sudo ./Sleep2.sh
                    [sudo] password for szerver:
                    ./Sleep2.sh: line 10: suspend: cannot suspend: no job control
                    ./Sleep2.sh: line 10: suspend: cannot suspend: no job control
                    ...

                    Másik az, h miért akarja leállítani mikor fullon van kapcsolattal?

                    #2199514
                    uzsolt
                    Felhasználó

                      A suspend-nek nézz utána, milyen paraméterekkel kell meghívni. A másik:
                      if [ $X -lt 4 ]; then
                      Ebben a sorban nem -lt kell, hanem gt, mivel az X értéke ha nagyobb, mint 4, akkor van kapcsolat…

                      #2199515
                      body007
                      Felhasználó

                        Ez lett akkor a “végleges”:
                        #!/bin/bash
                        while true; do
                        X=$(smbstatus 2>/dev/null | wc -l)
                        if [ $X -gt 4 ]; then
                        COUNTER=0
                        else # nincs senki
                        COUNTER=$((COUNTER+1))
                        fi
                        if [ $COUNTER -gt 30 ]; then
                        hibernate
                        fi
                        sleep 1m
                        done

                        Reggel majd meglássuk milyen a puding 🙂

                      10 bejegyzés megtekintése - 21-30 / 39
                      • Be kell jelentkezni a hozzászóláshoz.