rc.local updaten

Fragen, Probleme ... die sonst nirgends passen ...
dippes
IPC Interessierter
Beiträge: 80
Registriert: Sa 1. Dez 2012, 13:17
Kontaktdaten:

Re: rc.local updaten

Beitrag 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?
feissmaik
Entwickler Team
Beiträge: 2576
Registriert: So 17. Apr 2011, 11:39
Been thanked: 1 time
Kontaktdaten:

Re: rc.local updaten

Beitrag 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....
Du musst nicht kämpfen um zu siegen
dippes
IPC Interessierter
Beiträge: 80
Registriert: Sa 1. Dez 2012, 13:17
Kontaktdaten:

Re: rc.local updaten

Beitrag 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?
dippes
IPC Interessierter
Beiträge: 80
Registriert: Sa 1. Dez 2012, 13:17
Kontaktdaten:

Re: rc.local updaten

Beitrag 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
feissmaik
Entwickler Team
Beiträge: 2576
Registriert: So 17. Apr 2011, 11:39
Been thanked: 1 time
Kontaktdaten:

Re: rc.local updaten

Beitrag 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:

Code: Alles auswählen

if [ -z "$(/bin/grep 'multimedia' /proc/mounts)" ]
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...
Du musst nicht kämpfen um zu siegen
dippes
IPC Interessierter
Beiträge: 80
Registriert: Sa 1. Dez 2012, 13:17
Kontaktdaten:

Re: rc.local updaten

Beitrag 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
dippes
IPC Interessierter
Beiträge: 80
Registriert: Sa 1. Dez 2012, 13:17
Kontaktdaten:

Re: rc.local updaten

Beitrag 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
dippes
IPC Interessierter
Beiträge: 80
Registriert: Sa 1. Dez 2012, 13:17
Kontaktdaten:

Re: rc.local updaten

Beitrag 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
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste