Ping script

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Bellerophon, 07.10.2006.

  1. #1 Bellerophon, 07.10.2006
    Bellerophon

    Bellerophon Anathema

    Dabei seit:
    10.02.2006
    Beiträge:
    199
    Zustimmungen:
    0
    Hallo!
    Ich brauche folgendes:
    Ein Script, dass einen bestimmten Rechner anpingt und dann feststellt ob der auch antwortet.
    Falls ja soll ein Programm entweder keinen Zugriff mehr aufs Netzwerk haben oder
    ja... oder azureus soll pausieren ;)

    Code:
    ping 191.168.0.23
    if [ $? = 0 }
    then
    
    else
    fi
    
    soweit hab ichs schon gebracht...
    er pingt, und fragt ab
    0 wird der exitstatus von ping, wenn er eine (oder mehrere) antwort(en) bekommen hat
    falls er nicht null ist hat der host nicht geantwortet (der exitstatus wird glaub ich 1)
    aber was soll ich jetzt nach then und else schreiben?
    gibts ein befehl der einem prozess den Netzwerkzugriff verwehrt?
    Brachialisch wäre azureus dann ganz zuzumachen... wie würde dann das aussehen (aber netzwerzugriff sperren wäre mir lieber....)

    hat jemand ne idee?
    Danke für eure hilfe!
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. name

    name Inactive user

    Dabei seit:
    28.08.2004
    Beiträge:
    592
    Zustimmungen:
    0
    Ort:
    Wien->127.0.0.1
    Fallses Python auch tut:
    Code:
    import os
    host = "127.0.0.1"
    returnvalue = os.system("ping %s" % host)
    if(returnvalue == 0):
    	bla
    else:
    	blub
    :)
     
  4. #3 Bellerophon, 08.10.2006
    Bellerophon

    Bellerophon Anathema

    Dabei seit:
    10.02.2006
    Beiträge:
    199
    Zustimmungen:
    0
    ja, das problem ist nicht die struktur, sondern was ich dann anstatt des bla und des blubs schreiben soll :P

    Also eine möglichkeit ist das ganze zu und aufzumachen
    ungefähr so:
    Code:
    ping 191.168.0.23
    if [ $? = 0 ]
    then
    killall azureus
    else
    ./azureus
    fi
    
    dann stellt sich aber das problem, dass ich überprüfen muss ob azureus schon läuft (ich will das ja nicht 5 mal offen haben), das script soll ja ständig nachfragen.

    aber schöner wärs echt wenn man azureus zwar offen lassen könnte, aber ihm den netzzugang verwehren würde!

    hat jemand ne idee?
     
  5. #4 Wolfgang, 08.10.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Der Netztzugang ist ja im Falle dass ping kein Echo bekommt für diese Resource schon gesperrt. ;)

    Wie deine Anwendung damit umgeht, ist eine andere Frage, die du in der jeweiligen Doku dazu erfahren kannst.
    Sorry, ich kenne azureus nicht und habe auch keine Luste es extra zu installieren und nachzulesen.

    Wie du feststellst, ob ein Programm bereits läuft wurde hier schon x-mal besprochen.
    Um deine Anwendung so zu configurieren dass sie bestimmte Ziele auslässt, beschäftige dich mit dieser, oder frag im Forum Anwendungen nochmal nach.

    Dein Shell betreffender Teil ist schon ok. so, wenn du es mit ping machen möchtest.
    Allerdings würde ich die Ausgabe von ping nach /dev/null schieben und die Option "Quiet output" benutzen.

    Gruß Wolfgang
     
  6. #5 Bellerophon, 08.10.2006
    Zuletzt bearbeitet: 08.10.2006
    Bellerophon

    Bellerophon Anathema

    Dabei seit:
    10.02.2006
    Beiträge:
    199
    Zustimmungen:
    0
    also ich hab das jetzt so geschrieben, dass azureus gestartet bzw gestoppt wird, wenn der ping gescheitert bzw erfolgreich war.

    sieht jetzt so aus:
    Code:
    while [ 1=1 ]
    do
    ping 192.168.0.42 -c 1
    if [ $? = 0 ]
    then
    	echo "Host da, prüfe ob azureus läuft"
    	ps aux|grep "[a]zureus"
    	if [ $? = 0 ] 
    		then	
    		echo "schliesse Azureus...."
    		killall azureus
    		fi
    else
    	echo "Host down, prüfe ob azureus läuft"
    	ps aux|grep "[a]zureus"
    	if [ $? = 0 ]
    	then
    		echo "azureus läuft schon"
    	else
    		echo " starte azureus"
    		cd /home/bellerophon/Programme/azureus
    		./azureus &
    
    	fi
    fi
    sleep 10
    done
    
    jetzt hab ich eins, nein zwei probleme:
    1) wenn ich das script in der normalen konsole starte, dann kann es azureus nicht killen (weil es keine rootrechte hat) aber wenn ich es in der root konsole starte, dann macht es ein anderes azureus auf (nicht mehr für den benutzer, sondern das vom root, folglich läuft es unter falschem benutzer
    wie kann ich also aus der normalen konsole prozesse killen?
    2) wenn ich azureus "per hand" von der rootkonsole aus kille, dann bleibt es immernoch offen, der prozess verschwindet zwar aus der liste, aber das fenster bleibt offen! wie kann ich das verhindern?

    übrigens: azureus ist ein java programm! weiss nicht ob das irgendwas damit zu tun hat, aber ich denke es könnte sein, also schreib ichs mal hin :P
     
  7. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. grey

    grey -=[GHOST]=-

    Dabei seit:
    28.07.2006
    Beiträge:
    303
    Zustimmungen:
    0
    Schau dir mal die man-Page von "su" an. Da könnte was dabei sein, das die bei deinem 1. Problem hilft.
     
  9. #7 Bellerophon, 08.10.2006
    Bellerophon

    Bellerophon Anathema

    Dabei seit:
    10.02.2006
    Beiträge:
    199
    Zustimmungen:
    0
    das mit su klappt ja ganz gut...
    jetzt muss ich nur azureus richtig beenden können, kann mir da vll jemand helfen?
     
Thema:

Ping script

Die Seite wird geladen...

Ping script - Ähnliche Themen

  1. Ping Script

    Ping Script: Dear all, ich benötige ein script das mehere IP adressen anpingt z.B. 192.168.0.1 192.168.1.5-192.168.1.10, 172.168.0.1, 172.168.2.1 usw....
  2. c-shel Script zum pingen

    c-shel Script zum pingen: Hallo zusammen, habe mit cut, grep und awk die IP adressen aus der hosts ausgelesen und in eine neue Datei gespeichert. Diese sollte ich nun...
  3. Ping-Script

    Ping-Script: Hi, muss folgendes Script schreiben: Schreiben Sie ein Skript, dass alle 60 Sekunden testet ob alle als Argumente angegebenen Rechner per...
  4. Artikel: Web Scraping mit R

    Artikel: Web Scraping mit R: Moderne Web Scraping Tools und APIs erleichtern die gezielte Extraktion von Informationen und Elementen aus dem Internet ganz wesentlich,...
  5. ProtoCam - Prototyping-Board mit Kameramodul für den RPi

    ProtoCam - Prototyping-Board mit Kameramodul für den RPi: Der Engländer Richard Saville hat eine Crowdfunding-Kampagne ins Leben gerufen, um für den Minicomputer Raspberry Pi ein Prototyping-Board rund um...