![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Erfahrener Benutzer
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 481
|
Hallo,
wie kann ich speichern, wann ein PC online gegangen ist, bzw im Netzwerk erreichbar ist? Mein Grundansatz ist folgender: Mit "ping" kann ich ja prüfen ob ein PC erreichbar ist. Soweit ja dass was ich möchte. Das ganze sollte möglichst dann so in einer Datei gespeichert werden: Code:
//timstamp=status 1203807600=true // PC ist online/erreichbar 1203907600=true // PC ist online/erreichbar 1204007600=true // PC ist online/erreichbar 1204107600=true // PC ist online/erreichbar 1204207600=true // PC ist online/erreichbar 1204312400=false // PC ist NICHT online/erreichbar 1204412400=false // PC ist NICHT online/erreichbar Oder gibt es ein gutes Programm für sowas? Der PC der geprüft werden soll ist ein WindowsVista, der PC der prüft ist Kubuntu 7.10
__________________
Jan info.malte-gerth.de ================================= Nutzt bitte lieber Jabber statt ICQ: malte.gerth@jabber.cz |
|
|
|
|
|
Nach oben #2 |
|
Erfahrener Benutzer
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 662
|
Also ich habe bei mir zu Hause auf meinem lokalen Linux-Server ein Script als Cron-Job laufen, was prüft, ob wenigstens einer der Rechner erreichbar ist und sollte das 15 Minuten nacheinander nicht der Fall sein, wird er heruntergefahren. Ist denke ich genau das, was du suchst, nur halt ohne das Runterfahren. Allerdings benutze ich eine Datenbank dazu, das müsstest du dann umschreiben:
PHP-Code:
Code:
CREATE TABLE IF NOT EXISTS `time` ( `datetime` timestamp NOT NULL default CURRENT_TIMESTAMP, `check` tinyint(3) unsigned NOT NULL default '0', PRIMARY KEY (`datetime`), KEY `check` (`check`) ) ENGINE=MyISAM; EDIT: Achso, pass auf, dass dein Windows-Rechner auch wirklich pingbar ist, denn vor ein paar Monaten hatte ich das Problem, dass Pingechos scheinbar durch ein Online-Update von MS deaktiviert wurde, wodurch mein Server nach 15 Minuten immer wieder abgeschaltet hat.
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
|
|
|
|
|
Nach oben #3 |
|
Erfahrener Benutzer
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 481
|
Das Skript muss doch dann mit Root Rechten laufen oder? Oder kann jeder shell_exec ausführen? ping braucht ja erstmal keine Root Rechte.
__________________
Jan info.malte-gerth.de ================================= Nutzt bitte lieber Jabber statt ICQ: malte.gerth@jabber.cz |
|
|
|
|
|
Nach oben #4 | ||
|
BIN EIN KRASSA HELD!!!111
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.184
|
Zitat:
http://phpperformance.de/boolesche-werte-in-mysql/ Zitat:
konfigurationsparameter die mir gerade einfallen die relevant sein könnten: open_basedir, safemode und dann der user unter dem webserver/php läuft + wem die datei gehört. Geändert von robo47 (26.02.2008 um 17:00 Uhr). |
||
|
|
|
|
|
Nach oben #5 |
|
Erfahrener Benutzer
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 662
|
Also bei mir läuft das Script als root-User, da es schlichtweg einfacher ist. Alelrdings rufe ich es nicht über den Webserver auf, sondern mit dem Console-Parser von PHP, somit ist eine Manipulation eigentlich ausgeschlossen, es sei denn der User hat Root-Rechte auf das PHP-Script, da dieses 700 mit root:root als Sicherheitseinstellung hat.
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
|
|
|
|
|
Nach oben #6 |
|
Erfahrener Benutzer
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 481
|
Ok, ich habs jetzt mal so versucht, aber bei dem regulären Ausdruck meckert er. Irgendwas stimmt da nicht, kann es sein? Was bedeutet das "°"?
__________________
Jan info.malte-gerth.de ================================= Nutzt bitte lieber Jabber statt ICQ: malte.gerth@jabber.cz |
|
|
|
|
|
Nach oben #7 |
|
Erfahrener Benutzer
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 662
|
Achso, ja, es hängt natürlich vom Betriebssystem ab, wie die Meldung aussieht, die ping zurückliefert. Der '°' ist der Delimiter des RegEx, viele benutzen '/', aber das Zeichen benötige ich in vielen RegEx zu oft als Zeichen und wollte nicht immer mit '\' arbeiten, deswegen habe ich '°' als Delimiter genommen, da ich dieses Zeichen eigentlich nie benötige. Ansonsten ließt der RegEx eigentlich nur die Prozente der "packet lost" aus, sprich: wenn der Rechner nicht anpingbar ist (es wird durch den Befehl 'ping -c 1 {IP_ADDRESS}' ja immer nur ein Ping gesendet), steht in der Rückmeldung '100% packet loss', ansonsten '0% packet loss'. Deswegen der RegEx, der mindestens ein bis maximal drei Zahlzeichen einließt.
Der Befehl muss je nach Betriebssystem natürlich auch noch angepasst werden, bei Windows macht er ja standardmäßig (nur der Befehl 'ping {IP_ADDRESS}') 4 Pings und hört dann auf. Unter Linux macht er ja bis unendlich weiter, es sei denn man gibt ihm mit '-c 1' einen 'count' mit, wie oft er pingen soll. Aus performancetechnischer Sicht macht es aber auch keinen Sinn mehrfach zu pingen, da lediglich die generelle Erreichbarkeit geprüft werden soll. Bei Windows sieht die Meldung bzgl. der verlorenen Pakete übrigens so aus: '0% Verlust' bzw. '100% Verlust'. Außerdem ist es nicht '-c', sondern '-n', welches die Anzahl der Pings einstellt. Entsprechend ist der Befehl und der RegEx auf Windows bzw. für das jeweilige Betriebssystem anzupassen. Mein Script läuft im Übrigen unter OpenSuSE Linux 10.x.
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
|
|
|
|
|
Nach oben #8 |
|
Erfahrener Benutzer
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 481
|
Ok, nutzte Linux.
Also entspricht ° bei dir einem / bei mir?
__________________
Jan info.malte-gerth.de ================================= Nutzt bitte lieber Jabber statt ICQ: malte.gerth@jabber.cz |
|
|
|
|
|
Nach oben #10 |
|
Erfahrener Benutzer
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 481
|
Ok. Werd es mal anpassen und probieren.
Ansonsten vielen Dank. Monitoring läuft wunderbar Auf euch alle hier kann man sich echt verlassen Wo kann man wählen was man als Delimiter nutzten möchte?
__________________
Jan info.malte-gerth.de ================================= Nutzt bitte lieber Jabber statt ICQ: malte.gerth@jabber.cz |
|
|
|
|
|
Nach oben #11 |
|
Erfahrener Benutzer
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 662
|
Der Delimiter ist immer das erste Zeichen eines RegEx. Bei '°[0-9]°' ist es '°', bei '/[0-9]/' ist es '/', etc.
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
|
|
|
|
|
Nach oben #12 |
|
Erfahrener Benutzer
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 481
|
Ok, danke für die Erklärung.
Ich muss das nciht irgendwo global oder lokal definieren, sondern kann es für jeden Ausruck neu definieren?!
__________________
Jan info.malte-gerth.de ================================= Nutzt bitte lieber Jabber statt ICQ: malte.gerth@jabber.cz |
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Byte[]übertragung im Netzwerk | jm14 | Allgemeine Java-Programmierung | 1 | 08.01.2006 18:31 |
| Kommunikation im Netzwerk von 2 Java Programmen | missiju | Allgemeine Java-Programmierung | 3 | 24.11.2005 18:55 |
| Netzwerk / Thread syncronisieren | sparrow | Allgemeine Java-Programmierung | 4 | 16.11.2005 21:11 |
| Socket und Lokales Netzwerk. | wwwsteel | Allgemeine Java-Programmierung | 5 | 22.10.2004 17:09 |