![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Erfahrener Benutzer Registriert seit: 08.01.2006 Ort: Mannheim
Beiträge: 483
|
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 |
| Lutz Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 691
|
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: 483
|
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 | ||
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.209
| 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 |
| Lutz Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 691
|
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: 483
|
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 |
| Lutz Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 691
|
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: 483
|
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: 483
|
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 |
| Lutz Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 691
| 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: 483
|
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 | Thema durchsuchen |
| |
Ä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 |