Hallo zusammen,
Ich bin auf folgendes kleines Problem gestoßen, bei dem ich um Hilfe bitte:
Zunächst die Beschreibung meiner Situation: In meinem Netzwerk befindet sich ein kleiner zum Server umfunktionierter PC. Auf diesem Server sind alle meine Dateien gespeichert. Ich benutze derzeit zwei Rechner, einen Desktop und ein Notebook. Beim Start der Rechner holen diese, kontrolliert durch Unison, die für sie relevanten Daten vom Server (auf Notebook und Desktop arbeite ich mit unterschiedlichen Teilmengen des Gesamtbestandes auf dem Server). Die Dateien stehen dann lokal zur Verfügung und ich kann an ihnen arbeiten. Beim Herunterfahren synchronisieren die Rechner erneut über Unison mit dem Server, damit die veränderten Dateien dort zur Verfügung stehen.
Dieses einfache Vorgehen funktioniert in meinem Fall, da ich niemals gleichzeitig an verschiedenen Rechnern arbeite. Kollisionen sind daher nicht zu erwarten (zumindest wäre ich meistens in der Lage, diese selber zu lösen).
Nun zu meinem Problem: Beim Desktop kann ich unison einfach direkt in eigenen Skripten, die ich in die rcx.d-Verzeichnisse linke, aufrufen. Ich möchte aber beim Notebook gerne, dass diese Skripte vorher überprüfen, ob der Server überhaupt verfügbar ist. Habe ich das Notebook nämlich außerhalb der Wohnung dabei, bin ich nicht im LAN und könnte dann versuchen, über eine VPN-Verbindung zu synchronisieren, geht auch dieses nicht, entfällt das Synchronisieren (mit evtl. Fehlermeldung im Syslog).
Wie kann ich in einem Skript feststellen, ob ein Rechner verfügbar ist? Gibt es entsprechende Parameter und Rückgabewerte für den ping-Befehl oder noch eine sinnvollere Lösung?
[Gelöst] In Shell-Skript prüfen, ob Rechner verfügbar?
[Gelöst] In Shell-Skript prüfen, ob Rechner verfügbar?
Zuletzt geändert von MuX512 am 28.05.2009 10:52:55, insgesamt 1-mal geändert.
Re: In Shell-Skript prüfen, ob Rechner verfügbar?
Hier frage ich meinen apt-proxy:
httping verwende ich hier nicht, weil ... -- keine Ahnung mehr, ist lang her.
Vermutlich weil der timeout dort minimal 1 Sekunde beträgt.
Code: Alles auswählen
nmap -n -PN --max-rtt-timeout 100 -sT -p 3142 10.1.1.101 | grep "3142/tcp open" || exit 0
#httping -c1 -t 1 -g http://10.1.1.101 -p 3142
Vermutlich weil der timeout dort minimal 1 Sekunde beträgt.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
- whisper
- Beiträge: 3392
- Registriert: 23.09.2002 14:32:21
- Lizenz eigener Beiträge: GNU Free Documentation License
-
Kontaktdaten:
Re: In Shell-Skript prüfen, ob Rechner verfügbar?
Auf die Idee, nmap zu nehmen muß man erstmal kommen, genial ![Smile :-)](./images/smilies/icon_smile.gif)
![Smile :-)](./images/smilies/icon_smile.gif)
Alter ist übrigens keine Ausrede, nur Erfahrung, die sich stapelt. ![😉](//cdn.jsdelivr.net/gh/twitter/twemoji@latest/assets/svg/1f609.svg)
Re: In Shell-Skript prüfen, ob Rechner verfügbar?
Ja, das wäre mir so im Traum nicht eingefallen. Aber das ist - nach entsprechender Anpassung auf mein Netz - genau das, wonach ich gesucht habe. Vielen Dank!
PS + OT: Kann man ein Thema hier in diesem Forum irgendwie auf "gelöst" stellen?
PS + OT: Kann man ein Thema hier in diesem Forum irgendwie auf "gelöst" stellen?
Re: In Shell-Skript prüfen, ob Rechner verfügbar?
nmap prüft so nur, ob der Port offen ist,
Für ein Prüfen des Dienstes dahinter ist sicher httping besser geeignet.
Oder nmap muß den Dienst auch identifizieren, was bei einigen (vielen?) wohl auch funktioniert,
hier zBsp mit apache und ssh:
Für ein Prüfen des Dienstes dahinter ist sicher httping besser geeignet.
Oder nmap muß den Dienst auch identifizieren, was bei einigen (vielen?) wohl auch funktioniert,
hier zBsp mit apache und ssh:
Code: Alles auswählen
nmap -A -T4 scanme.nmap.org playground
Starting nmap ( http://insecure.org/nmap/ )
Interesting ports on scanme.nmap.org (205.217.153.62):
(The 1663 ports scanned but not shown below are in state: filtered)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 3.9p1 (protocol 1.99)
53/tcp open domain
70/tcp closed gopher
80/tcp open http Apache httpd 2.0.52 ((Fedora))
113/tcp closed auth
Device type: general purpose
Running: Linux 2.4.X|2.5.X|2.6.X
OS details: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11
Uptime 33.908 days (since Thu Jul 21 03:38:03 2005)
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
- LessWire
- Beiträge: 558
- Registriert: 21.11.2004 04:36:04
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Bavaria
Re: In Shell-Skript prüfen, ob Rechner verfügbar?
Editiere Deinen ersten Beitrag, dann lässt sich der Titel mit "(gelöst)" o.ä. ändern/erweitern.MuX512 hat geschrieben:PS + OT: Kann man ein Thema hier in diesem Forum irgendwie auf "gelöst" stellen?
![Wink ;-)](./images/smilies/icon_wink.gif)
VG, LW
at ~ now.
Re: In Shell-Skript prüfen, ob Rechner verfügbar?
In meinem einfachen Fall im eigenen LAN reicht das auch vollkommen aus. Ich lasse prüfen, ob der ssh-Port des Dateiservers zu erreichen ist, dann läuft dort mit hoher Wahrscheinlichkeit auch noch der ssh-Dämon, und starte anschließend unison mit dem entsprechenden Synchronisationsprofil. Sollte sich der sshd aus welchen Gründen auch immer verabschiedet haben, schlägt unison ja eh fehl, was ich an der Logdatei erkennen kann.rendegast hat geschrieben:nmap prüft so nur, ob der Port offen ist
Das ist zwar wirklich nicht sehr elegant, aber es funktioniert - mehr will ich erst mal nicht.