Seite 2 von 2
Re: rc.local updaten
Verfasst: Do 14. Feb 2013, 19:47
von dippes
Dann sind die Ziele nicht erreichbar bzw PING deaktiviert?
Die Ziele sind alle erreichbar
Ping habe ich nicht deaktiviert.
manuell MOUNT funktioniert?
ja
zb.: mount 192.168.1.77:/srv/video /mnt/VDR-Server/Videofilme
Das ist das einzigste was das script mounted wenn das auskommentiert ist.
Code: Alles auswählen
"fi
if [ -z "$(/bin/grep '192.168.1.102/multimedia' /proc/mounts)" ]; then
if [ "$(ping -c1 "192.168.1.102" | grep -c "seq")" -eq 1 ]; then
echo "Mounting \"//192.168.1.102/multimedia\" to \"/mnt/windows\""
mount.cifs //192.168.1.102/multimedia /mnt/windows -o username=xxx,password=xxxx
fi
Ich habe gerade ein Reboot gemacht.Es wurde nichts gemounted.
Was ist da faul?
Re: rc.local updaten
Verfasst: Fr 15. Feb 2013, 01:04
von feissmaik
Die Zeilen machen folgendes:
das erste "if" überprüft ob in /proc/mounts die entsprechende zeile eingetragen is
das " -z " sagt soviel aus wie "wenn nicht gesetzt, oder leer", also: " wenn $(/bin/grep '192.168.1.102/multimedia' /proc/mounts) leer; dann mache.... "
das in $() wird ausgeführt, wenn da also keine ausgabe kommt ist die rückgabe leer und die if bedingung erfüllt...
wenn also aktuell noch nichts gemounted ist, ist die erste "if" positiv und nur dann wird die zweite "if" angesprochen:
wenn der rückgabewert des in $() stehenden befehls gleich (equal) 1 ist; dann mache...
also: wenn der host anpingbar ist, wird der befehl zum mounten abgesetzt
aber: wo ein " if " geöffnet wird, muss es auch mit " fi " wieder beendet werden, also hast du oben hoffentlich nur ein copy&past fehler gemacht - andererseits funktioniert das so nicht weil das 2. "fi" am ende fehlt
ansonsten probier halt mal hinter dem jeweiligen mount befehl noch das " & " zu setzen damit der befehl in den hintergrund geschickt wird - nur ob das was bringt wag ich zwar zu bezweifeln aber wer weiss....
Re: rc.local updaten
Verfasst: Fr 15. Feb 2013, 17:35
von dippes
Hallo
Irgendwas läuft da komisch
Das da wird gemounted obwohl der Server ausgeschaltet
Mounting "192.168.1.77:/srv/video" to "/mnt/VDR-Server/Videofilme"
Der Server ist eingeschaltet und ein Timeout kommt. Manuelles mounten funktioniert.
mount.nfs: Connection timed out
Code: Alles auswählen
david-pc sbin # ./mountscript.sh
Mounting "192.168.1.77:/srv/video" to "/mnt/VDR-Server/Videofilme"
mount.nfs: Connection timed out
mount.nfs: Connection timed out
Hier der Ping
Code: Alles auswählen
david-pc sbin # ping -c1 192.168.1.102
PING 192.168.1.102 (192.168.1.102) 56(84) bytes of data.
64 bytes from 192.168.1.102: icmp_req=1 ttl=128 time=0.218 ms
--- 192.168.1.102 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.218/0.218/0.218/0.000 ms
das da ist der Inhalt des Mountscriptes
Code: Alles auswählen
#!/bin/bash
if [ -z "$(/bin/grep '192.168.1.33:/mnt/disk1/Musik' /proc/mounts)" ]; then
if [ "$(ping -c1 "192.168.1.33" | grep -c "seq")" -eq 1 ]; then
echo "Mounting \"192.168.1.33:/mnt/disk1/Musik\" to \"/mnt/Nas/Musik\""
mount 192.168.1.33:/mnt/disk1/Musik /mnt/Nas/Musik
fi
fi
if [ -z "$(/bin/grep '192.168.1.33:/mnt/disk1/Linux' /proc/mounts)" ]; then
if [ "$(ping -c1 "192.168.1.33" | grep -c "seq")" -eq 1 ]; then
echo "Mounting \"192.168.1.33:/mnt/disk1/Linux\" to \"/mnt/Nas/Linux\""
mount 192.168.1.33:/mnt/disk1/Linux /mnt/Nas/Linux
fi
fi
if [ -z "$(/bin/grep '192.168.1.77:/srv/video' /proc/mounts)" ]; then
if [ "$(ping -c1 "192.168.1.77" | grep -c "seq")" -eq 1 ]; then
echo "Mounting \"192.168.1.77:/srv/video\" to \"/mnt/VDR-Server/Videofilme\""
mount 192.168.1.77:/srv/video /mnt/VDR-Server/Videofilme
fi
fi
if [ -z "$(/bin/grep '192.168.1.102/multimedia' /proc/mounts)" ]; then
if [ "$(ping -c1 "192.168.1.102" | grep -c "seq")" -eq 1 ]; then
echo "Mounting \"//192.168.1.102/multimedia\" to \"/mnt/windows\""
mount.cifs //192.168.1.102/multimedia /mnt/windows -o username=xxxx,password=xxx
fi
fi
exit 0
Ein Manueller Ping an mein Nas funktioniert auchj
Code: Alles auswählen
david-pc sbin # ping -c1 192.168.1.33
PING 192.168.1.33 (192.168.1.33) 56(84) bytes of data.
64 bytes from 192.168.1.33: icmp_req=1 ttl=64 time=0.176 ms
--- 192.168.1.33 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.176/0.176/0.176/0.000 ms
Was läuft da schief?
Re: rc.local updaten
Verfasst: Sa 16. Feb 2013, 14:25
von dippes
Ich habe es so hinbekomme,
Ohne die erste Abfrage funktionert es soweit.
Nur der Windowsmount wird nich automatisch gemounted....erst nach einem manuellen ausführen des scriptes.
kann man da noch was machen?
if [ -z "$(/bin/grep '192.168.1.102/multimedia' /proc/mounts)" ]
Code: Alles auswählen
#!/bin/bash
if ping -c 2 "192.168.1.33" >/dev/null; then
echo "Mounting \"192.168.1.33:/mnt/disk1/Musik\" to \"/mnt/Nas/Musik\""
mount 192.168.1.33:/mnt/disk1/Musik /mnt/Nas/Musik
fi
if ping -c 2 "192.168.1.33" >/dev/null; then
echo "Mounting \"192.168.1.33:/mnt/disk1/Linux\" to \"/mnt/Nas/Linux\""
mount 192.168.1.33:/mnt/disk1/Linux /mnt/Nas/Linux
fi
if ping -c 2 "192.168.1.77" >/dev/null; then
echo "Mounting \"192.168.1.77:/srv/video\" to \"/mnt/VDR-Server/Videofilme\""
mount 192.168.1.77:/srv/video /mnt/VDR-Server/Videofilme
fi
if ping -c 2 "192.168.1.102" >/dev/null; then
echo "Mounting \"//192.168.1.102/multimedia\" to \"/mnt/windows\""
mount.cifs //192.168.1.102/multimedia /mnt/windows -o username=xxx,password=xxx
fi
exit 0
Re: rc.local updaten
Verfasst: Sa 16. Feb 2013, 14:30
von feissmaik
dippes hat geschrieben:
if [ -z "$(/bin/grep '192.168.1.102/multimedia' /proc/mounts)" ]
Ich weiss nicht genau wie der Eintrag dafür in /proc/mounts aussieht - überprüf das halt mal ->
cat /proc/mounts
Und dann musst du halt die if-schleife entsprechend anpassen - vielleicht würde es auch schon reichen einfach nur nach "multimedia" zu greppen also:
Aber so wie du das Script angepasst hast würde ich das nicht machen - weil pingbar ist der host ja quasi immer, auch nachdem es bereits gemounted wurde - dein Script würde dann immer wieder (alle 5 minuten wegen des crontab eintrags) noch mal versuchen zu mounten obwohl es ja vermutlich schon gemounted wurde...
Re: rc.local updaten
Verfasst: Sa 16. Feb 2013, 16:08
von dippes
so sehen die Einträge in /proc/mounts aus
Code: Alles auswählen
192.168.1.33:/mnt/disk1/Musik /mnt/Nas/Musik nfs rw,relatime,vers=3,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.1.33,mountvers=3,mountport=2049,mountproto=udp,local_lock=none,addr=192.168.1.33 0 0
192.168.1.33:/mnt/disk1/Linux /mnt/Nas/Linux nfs rw,relatime,vers=3,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.1.33,mountvers=3,mountport=2049,mountproto=udp,local_lock=none,addr=192.168.1.33 0 0
192.168.1.77:/srv/video /mnt/VDR-Server/Videofilme nfs rw,relatime,vers=3,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.1.77,mountvers=3,mountport=35862,mountproto=udp,local_lock=none,addr=192.168.1.77 0 0
//192.168.1.102/multimedia /mnt/windows cifs rw,relatime,sec=ntlm,unc=\\192.168.1.102\multimedia,username=xxx,uid=0,noforceuid,gid=0,noforcegid,addr=192.168.1.102,file_mode=0755,dir_mode=0755,nounix,serverino,rsize=61440,wsize=65536,actimeo=1 0 0
Re: rc.local updaten
Verfasst: So 17. Feb 2013, 09:20
von dippes
Ich habe das so umgeändert, aber keine Besserung.
#!/bin/bash
if [ -z "$(/bin/grep 'Musik' /proc/mounts)" ]; then
if [ "$(ping -c1 "192.168.1.33" | grep -c "seq")" -eq 1 ]; then
echo "Mounting \"192.168.1.33:/mnt/disk1/Musik\" to \"/mnt/Nas/Musik\""
mount 192.168.1.33:/mnt/disk1/Musik /mnt/Nas/Musik
fi
fi
if [ -z "$(/bin/grep 'Linux' /proc/mounts)" ]; then
if [ "$(ping -c1 "192.168.1.33" | grep -c "seq")" -eq 1 ]; then
echo "Mounting \"192.168.1.33:/mnt/disk1/Linux\" to \"/mnt/Nas/Linux\""
mount 192.168.1.33:/mnt/disk1/Linux /mnt/Nas/Linux
fi
fi
if [ -z "$(/bin/grep 'video' /proc/mounts)" ]; then
if [ "$(ping -c1 "192.168.1.77" | grep -c "seq")" -eq 1 ]; then
echo "Mounting \"192.168.1.77:/srv/video\" to \"/mnt/VDR-Server/Videofilme\""
mount 192.168.1.77:/srv/video /mnt/VDR-Server/Videofilme
fi
fi
if [ -z "$(/bin/grep 'multimedia' /proc/mounts)" ]; then
if [ "$(ping -c1 "192.168.1.102" | grep -c "seq")" -eq 1 ]; then
echo "Mounting \"//192.168.1.102/multimedia\" to \"/mnt/windows\""
mount.cifs //192.168.1.102/multimedia /mnt/windows -o username=xxx,password=xxxx
fi
fi
exit 0
wenn ich das script starte kommt das.Das ist der einzigste Server wo offline ist...alle anderen sind online.Aber auch die die online sind werden nicht eingehängt.
david-pc sbin # ./mountscript.sh
Mounting "192.168.1.77:/srv/video" to "/mnt/VDR-Server/Videofilme"
mount.nfs: Connection timed out
Re: rc.local updaten
Verfasst: So 24. Feb 2013, 10:24
von dippes
Habe die Echos rausgesschmissen...und siehe da das Script macht was es soll, es funktioniert.
Code: Alles auswählen
#!/bin/bash
if ping -c 2 "192.168.1.102" >/dev/null; then
mount.cifs //192.168.1.102/multimedia /mnt/windows -o username=xxxxxx,password=xxxxx >> /tmp/mountscript
fi
if ping -c 2 "192.168.1.33" >/dev/null; then
mount 192.168.1.33:/mnt/disk1/Musik /mnt/Nas/Musik >> /tmp/mountscript
fi
if ping -c 2 "192.168.1.33" >/dev/null; then
mount 192.168.1.33:/mnt/disk1/Linux /mnt/Nas/Linux >> /tmp/mountscript
fi
if ping -c 2 "192.168.1.77" >/dev/null; then
mount 192.168.1.77:/srv/video /mnt/VDR-Server/Videofilme >> /tmp/mountscript
fi
für was sind denn die Umleitungen in Crontab gut?
Code: Alles auswählen
@reboot /usr/sbin/mountscript.sh >/dev/null 2>&1
*/5 * * * * /usr/sbin/mountscript.sh >/dev/null 2>&1