Linux Batch zum automatischen anpingen

      Linux Batch zum automatischen anpingen

      Ich brauch mal Hilfe von Linux Experten.

      Unsere Kids überzeihen zur Zeit schamlos ihre Computerzeit. Jetzt habe ich mir gedacht, daß ich am einfachsten (und am sichersten) ein Batch auf unserem NAS-Server (läuft unter Linux) installiere, daß regelmäßig (1x pro minute oder so) die Rechner der Kinder anpingt und bei Erfolg (= Rechner ist an) das Ergbenis in eine log-Datei schreibt Ggf. sollte noch eine Prüfung erfolgen, ob die letzte Prüfung das gleiche Ergbnis hatte. Daraus würde für dem PC-Betrieb jweiels zwei Zeilen in der Log-Datei ergänzt.

      Leider habe ich keine Linux-Kenntnisse und mein DOS ist doch stark eingerostet. Geht eine minütliche Abfrage stark auf die Performance??

      Ich hoffe Ihr könnt mir helfen.
      HiHiMan

      Counting all the assholes in the room - Well I´m definitely not alone, well I´m not alone (VOLBEAT)



      white mit FW 4.2E | BootMii als Boot2 :D
      black mit FW 4.1E | BootMii als IOS

      durchgeführte Softmods: 6


      Wenn Du dich bei jemanden bedanken willst, nutze bitte den "Daumen hoch" unter dem Post, das Dir gefallen/geholfen hat. Dafür gibt es für den Helfer Renümee-Punkte (die Zahl unter den Pilzen).

      Hi Cosmiq,
      wie der ping-Befehl geht weiß ich auch. Mir geht es um die Batchdatei, die das Resultat des ping-Befehls in eine Datei schreiben soll....

      Counting all the assholes in the room - Well I´m definitely not alone, well I´m not alone (VOLBEAT)



      white mit FW 4.2E | BootMii als Boot2 :D
      black mit FW 4.1E | BootMii als IOS

      durchgeführte Softmods: 6


      Wenn Du dich bei jemanden bedanken willst, nutze bitte den "Daumen hoch" unter dem Post, das Dir gefallen/geholfen hat. Dafür gibt es für den Helfer Renümee-Punkte (die Zahl unter den Pilzen).

      Hi Böhser Onkel,

      sorry da das bringt mich echt nicht weiter. Wie ich in meinem ersten Posting geschrieben habe, möchte ich gerne eine log-Datei erzeugen. Daher sollte auch irgendwie Datum & Uhrzeit mit geliefert werden. Außerdem weiß ich nicht:
      - wie ich eine Schleife um den ping-Befehl realisiere
      - wie ich das Intervall der Abfrage einstelle
      - wie ich das Ergebnis in "An" bzw. "AUS" umsetze
      - und schließlich wie ich nur dann eine neue Zeile in die log-Datei schreibe, wenn sich das Ergbenis der Abfrage ändert (also von AN -> AUS bzw. von AUS -> AN).

      Es sollen ja nur dokumentiert werden, wann der PC ein- und ausgeschaltet wurde.

      Gruß
      HiHiMan

      Counting all the assholes in the room - Well I´m definitely not alone, well I´m not alone (VOLBEAT)



      white mit FW 4.2E | BootMii als Boot2 :D
      black mit FW 4.1E | BootMii als IOS

      durchgeführte Softmods: 6


      Wenn Du dich bei jemanden bedanken willst, nutze bitte den "Daumen hoch" unter dem Post, das Dir gefallen/geholfen hat. Dafür gibt es für den Helfer Renümee-Punkte (die Zahl unter den Pilzen).

      Willst du jetzt abfragen, ob ein Webserver online ist oder nicht oder ob dein lokaler Rechner an oder aus ist?
      Wieso machst du das ganze nicht serverseitig?

      Quellcode

      1. $status = 0
      2. $intval = 3600
      3. while 1
      4. do
      5. if ping -c IP then
      6. if status == 0 then
      7. "an" > ip.txt
      8. status = 1
      9. fi
      10. elif status == 0 then
      11. "an" > ip.txt
      12. status = 0
      13. fi
      14. sleep intval
      15. done
      Alles anzeigen



      Warum da nun AN oder AUS stehen muss, ist mir zwar nicht klar, aber dann müsste man nur Abfragen, ob die Anfrage erfolgreich war.
      Vielen Dank,
      ich möchte das Scrpit vom meinem NAS-Server (daher Linux) permanent ausführen, um die "PC-Zeit" der Kinder besser im Griff zu haben.

      Ich dachte mir es ist einfacher den Printbefehl in "AN" bzw. "AUS "umzusetzen, damit ich sehen kann, daß der Rechner z.B. folgenden Status hatte:
      11.03.2011 11:01 AN (PC gespielt...)
      11.03.2011 11:56 AUS
      11.03.2011 13:12 AN (Facebook gecheckt...)
      11.03.2011 13:15 AUS
      usw.
      soll einfach bewirken, daß die log-Dateien nicht so schnell überlaufen...

      Gruß
      HiHiMan

      Counting all the assholes in the room - Well I´m definitely not alone, well I´m not alone (VOLBEAT)



      white mit FW 4.2E | BootMii als Boot2 :D
      black mit FW 4.1E | BootMii als IOS

      durchgeführte Softmods: 6


      Wenn Du dich bei jemanden bedanken willst, nutze bitte den "Daumen hoch" unter dem Post, das Dir gefallen/geholfen hat. Dafür gibt es für den Helfer Renümee-Punkte (die Zahl unter den Pilzen).

      Der folgende Code schreibt nur Änderungen (nur kurz getetset):

      Shell-Script

      1. #!/bin/bash
      2. #-----------------------------------------------------------------------------
      3. # settings
      4. log=./ping.log
      5. host=kinderzimmer_pc
      6. wait=1m
      7. #-----------------------------------------------------------------------------
      8. # functions
      9. function timestamp()
      10. {
      11. printf "%s : %s\n" "$(date '+%F %T')" "$*" >>"$log"
      12. }
      13. function test_host()
      14. {
      15. ping -c1 $host >/dev/null 2>/dev/null
      16. }
      17. #-----------------------------------------------------------------------------
      18. # execution
      19. echo >> "$log"
      20. timestamp START
      21. test_host && timestamp an
      22. while true
      23. do
      24. while test_host; do sleep $wait; done
      25. timestamp aus
      26. while ! test_host; do sleep $wait; done
      27. timestamp an
      28. done
      Alles anzeigen


      Ansonsten gibt es nagios

      @boehserOnkel:
      In deinem Script stehen die Dollarzeichen an den falschen Stellen.

      WIT: Wiimms ISO Tools
      Verwaltet Plain ISO, WDF, WIA, CISO, WBFS, FST: kann Extrahieren, Erstellen, Patchen, Mischen und Überprüfen

      SZS: Wiimms SZS Tools
      Verwaltet SZS-, BRRES-, U8-, BMG-, BREFT-Dateien uvm.



      PN ohne persönlichen Charakter werden ignoriert. Support-Anfragen gehören ins Forum.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Wiimm ()

      Hi Wimm,
      das sieht ja professionell aus. Noch ein paar kleine Fragen:
      - "kinderzimmer_pc" wird ersetzt durch die IP-Adersse?
      - braucht die Datei, in die ich das Script reinkopiere eine Endung ( so wie .bat o.ä.)?
      - muß die Datei mit chmod noch entsprechende Rechte erhalten?

      Danke
      HiHiMan

      Counting all the assholes in the room - Well I´m definitely not alone, well I´m not alone (VOLBEAT)



      white mit FW 4.2E | BootMii als Boot2 :D
      black mit FW 4.1E | BootMii als IOS

      durchgeführte Softmods: 6


      Wenn Du dich bei jemanden bedanken willst, nutze bitte den "Daumen hoch" unter dem Post, das Dir gefallen/geholfen hat. Dafür gibt es für den Helfer Renümee-Punkte (die Zahl unter den Pilzen).

      Bin ja auch Profi in diesem Bereich!

      log=
      legt die Ausgabedazei fest, Sollte mit absoluten Pfad gemacht werden:
      z.b.: log=/var/log/kinderzimmer-ping

      host=
      dns-name oder ip des Zielrechners

      wait=
      Wartezeit zwischen 2 Ping-Versuchen, z.b.: 3600 60m 1h (alles derselbe Wert)

      Endungen sind unter Unix egal, falls gewünscht, dann .sh
      chmod 775 script.sh
      oder
      chmod 755 script.sh
      Ohne die X-Rechte geht auch:
      bash script.sh
      oder
      sh script.sh

      WIT: Wiimms ISO Tools
      Verwaltet Plain ISO, WDF, WIA, CISO, WBFS, FST: kann Extrahieren, Erstellen, Patchen, Mischen und Überprüfen

      SZS: Wiimms SZS Tools
      Verwaltet SZS-, BRRES-, U8-, BMG-, BREFT-Dateien uvm.



      PN ohne persönlichen Charakter werden ignoriert. Support-Anfragen gehören ins Forum.
      Danke Wimm,
      hat mit leichten Anpassungen funktioniert (busybox nutzt wohl einen leicht anderen "Dialekt").
      Um das Script automatisch zu starten muß es noch in die opt/etc/init.d aufnehmen - richtig?

      Wenn ich zwei Rechner "überwachen" will, muß ich dann das Script duplizieren oder ist es auch möglich die Variablen log & host zu vervielfältigen?

      Gruß
      HiHiMan

      Counting all the assholes in the room - Well I´m definitely not alone, well I´m not alone (VOLBEAT)



      white mit FW 4.2E | BootMii als Boot2 :D
      black mit FW 4.1E | BootMii als IOS

      durchgeführte Softmods: 6


      Wenn Du dich bei jemanden bedanken willst, nutze bitte den "Daumen hoch" unter dem Post, das Dir gefallen/geholfen hat. Dafür gibt es für den Helfer Renümee-Punkte (die Zahl unter den Pilzen).

      Bei busybox habe ich 2004-2006 auch code beigesteuert. Für mehrere Rechner würde ich Logdatei und Host als Parameter übergeben und dann 2x aus init.d aufrufen.

      WIT: Wiimms ISO Tools
      Verwaltet Plain ISO, WDF, WIA, CISO, WBFS, FST: kann Extrahieren, Erstellen, Patchen, Mischen und Überprüfen

      SZS: Wiimms SZS Tools
      Verwaltet SZS-, BRRES-, U8-, BMG-, BREFT-Dateien uvm.



      PN ohne persönlichen Charakter werden ignoriert. Support-Anfragen gehören ins Forum.