PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : IP prüfen vor Rsync



www.borchi.de
03.02.10, 10:44
Hallo,

ich benutze ein einfaches Script mit einem rsync Befehl um Daten vom Notebook auf den Fileserver zu sichern und würde das Script gern um eine Funktion erweitern die eine bestimmte IP an der Netzwerkkarte vorher ab prüft, damit ich die Daten nicht übers W-Lan schicke sondern nur wenn die IP vom Kabel Lan aktiv ist...

Wo oder wer kann mir da mal helfen? Weil... ich hab ja keine Ahnung.... :ugly:

marce
03.02.10, 10:47
Scripte zum Ermitteln der eigenen IP solltest Du zu Hauf (bzw. Verweise darauf) per Forensuche und Google finden - das entsprechende Ergebnis dann halt noch in eine if-Konstrution packen, die um dein jetziges Script drum-rum packen und fertig...

Blade
06.02.10, 16:00
In meinem Skrit habe ich das so erledigt, Auszug:

ping -c 1 ip/hostname
if [ $? -eq 0 ]; then
echo "Rechner erreichbar"
else
echo "Rechner nicht erreichbar"
fi

marce
06.02.10, 16:39
dürfte, wenn ich das richtig verstehe, nicht dem Ansinnen des TE entsprechen - der Fileserver hat ja immer die gleiche IP - nur die des Clients ändert sich wohl, je nach dem, ob er am WLAN oder am Kabel hängt...

Blade
06.02.10, 17:30
okay, bei nochmals mehrmaligem Lesen könnte das so sein. Dann sollte der TE etwas mehr über das Kabel-Netzwerk schreiben, dann kann man da bestimmt etwas machen. Er will ja aber eigentlich nur eine bestimmte IP an der Netzwerkkarte vorab überprüfen, dann sollte mein Tipp doch genügen. Ich denke, der TE muss mehr Infos mitteilen

BedriddenTech
17.02.10, 20:54
#!/bin/sh
INTERFACES=$(cat /proc/net/dev|egrep '^\s*\w+:'|cut -f1 -d:|sed -e 's, ,,g'|grep -v lo)
SYNC_INTERFACES=
for if in $INTERFACES
do
[[ -e "/sys/class/net/${if}/wireless" ]] && continue
[[ "$(ip address show $if | grep inet | wc -l )" -eq 0 ]] && continue
SYNC_INTERFACES="$SYNC_INTERFACES $if"
done
if [[ "$(echo $SYNC_INTERFACES | wc -w)" -gt 0 ]]
then
echo "You are free to rsync."
else
echo "Sorry, no interfaces available."
fi

HTH.

int 80h
17.02.10, 21:08
Wäre ping mit Option "-I eth0" eine Option?
(Sofern das Interface eth0 heißt natürlich. :ugly: )


[~] $ ping -c 1 -I eth0 192.168.178.111 #mein router über nicht angeschlossenes eth0
PING 192.168.178.111 (192.168.178.111) from 192.168.178.11 eth0: 56(84) bytes of data.
From 192.168.178.11 icmp_seq=1 Destination Host Unreachable

--- 192.168.178.111 ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms

[~] $ echo $?
1
[~] $ ping -c 1 192.168.178.111 #mein router ohne -I, geht dann über wlan0
PING 192.168.178.111 (192.168.178.111) 56(84) bytes of data.
64 bytes from 192.168.178.111: icmp_seq=1 ttl=64 time=1.86 ms

--- 192.168.178.111 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.865/1.865/1.865/0.000 ms
[~] $ echo $?
0


Ist das unsauber? War mein erster Gedanke.

Grüße,
int 80h

quinte17
18.02.10, 12:15
wie wärs mit ssh zu prüfen?


ssh user@host "echo 1" && echo geklappt

das ganze mit zertifikat, damit kein passwort erforderlich ist...
funktioniert bei mir so.

edit:
achja, das noch mit der eth variante kombinieren...

BedriddenTech
18.02.10, 19:10
Ich darf nicht ohne Stolz anmerken, daß meine Version auch dann noch das korrekte Ergebnis liefert, wenn die W-LAN-Schnittstelle "eth0" und die fürs Kabelnetzwerk "eth1" heißt.