Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: [DE] Verbindungskontrolle NAS  (Read 8461 times)

Beni

  • Guest
[DE] Verbindungskontrolle NAS
« on: 2012/04/14, 23:04:23 »
Hallo
Ich habe mir ein kleines Script erstellt mit dem ich ein Netzlaufwerk von einem NAS mounte wenn dieses verfügbar ist.
Dieses Script funktioniert wenn ich es von Hand in der Konsole ausführe. Starte ich dieses aber im Autostart von KDE funktioniert der dazu verwendete Ping zur Verbindungsüberwachung nicht. Das Script startet aber bringt die vorgesehene Fehlermeldung. Hat jemand eine Idee an was das liegen könnte, oder wie man das zum funktionieren bringen kann?
Hier noch das Script:
Code: [Select]
#!/bin/bash

ping -c 4 NAS

if [ $? == 0 ]
then
  echo "NAS ist verfügpar (Ping OK)"
mount /home/user/NAS/D_Akten
else
  echo "NAS ist nicht verfügbar (Ping Fehler)"
  zenity --info --text "Die Verbindung zum NAS
kann nicht hergestellt
werden (Ping Fehler)."
fi;
Danke und Gruss Beni

holgerw

  • Guest
Verbindungskontrolle NAS
« Reply #1 on: 2012/04/15, 07:22:25 »
Hallo,

Quote
Dieses Script funktioniert wenn ich es von Hand in der Konsole ausführe.

Öffnest Du die Konsole unter KDE?
Wenn ja, mach das bitte mal nach einem Wechsel in den Runlevel 3. Wenn es da nicht geht, vermute ich, dass Du Deine Netzwerkverbindung erst über eine GUI unter KDE herstellst, das Script im Autostart-Ordner aber davor schon abgearbeitet wird.

Viele Grüße,
  Holger

Beni

  • Guest
Verbindungskontrolle NAS
« Reply #2 on: 2012/04/15, 16:55:00 »
Hallo Holger
Ich habe wie von Dir vorgeschlagen das Script unter init 3 von Hand gestartet. So funktioniert das Script auch.
Schon komisch das es nicht im Autostart funktioniert.

Besten Dank auf jeden Fall für Deine Meldung.

Gruss
Beni

Offline Geier0815

  • User
  • Posts: 588
Verbindungskontrolle NAS
« Reply #3 on: 2012/04/15, 19:32:36 »
Zwei mögliche Probleme bzw Lösungen die mir einfallen: Verwende bitte die Befehle mit vollem Pfad und zum anderen versuch es mal mit einer IP statt einem Netzwerknamen.
Wenn Windows die Lösung ist...
kann ich dann bitte das Problem zurück haben?

Beni

  • Guest
Verbindungskontrolle NAS
« Reply #4 on: 2012/04/15, 20:16:03 »
Hallo Geier0815
Mit der IP habe ich es versucht, geht leider auch nicht. Wie schon im Eingangsposting beschrieben funktioniert der Aufruf vom Script, nur der Ping Befehl funktioniert nicht via Autostart.

Gruss
Beni

Offline ralul

  • User
  • Posts: 1.814
Verbindungskontrolle NAS
« Reply #5 on: 2012/04/15, 22:53:16 »
Warum nicht im /etc/rc.local
?
experiencing siduction runs better than my gentoo makes me know I know nothing

Offline Geier0815

  • User
  • Posts: 588
Verbindungskontrolle NAS
« Reply #6 on: 2012/04/16, 09:20:09 »
Wolltest Du mir jetzt mitteilen das Du dein Script geändert hast und den ping jetzt mittels "/bin/ping OPTIONEN" startest oder darf ich eher annehmen das Du meinst ich wollte das Du dein Skript über vollen Pfad ansprichst?
Wenn Windows die Lösung ist...
kann ich dann bitte das Problem zurück haben?

Beni

  • Guest
Verbindungskontrolle NAS
« Reply #7 on: 2012/04/16, 22:51:27 »
Hallo zusammen
@ ralul
/etc/rc.local habe ich soeben probiert. Leider funktioniert dies auch nicht. Wie Eingangs erwähnt startet das Script, aber der Ping funktioniert nicht wenn er via Autostart oder rc.local aufgerufen wird. Nur wenn ich das Script via Konsole oder Verknüpfung von Hand starte funktioniert es.
@Geier0815
Quote

darf ich eher annehmen das Du meinst ich wollte das Du dein Skript über vollen Pfad ansprichst?
Wie schon gesagt, das Script funktioniert. Nur der Ping geht nicht wenn ich das Script über Autostart oder rc.local aufrufe. Ich rufe dieses Script über den vollen Pfad auf. Den Netzwerknamen habe ich mal durch die IP-Adresse ersetzt, das Ergebnis ist das gleiche.

Besten Dank für Eure Bemühungen
Gruss
Beni

Offline ralul

  • User
  • Posts: 1.814
Verbindungskontrolle NAS
« Reply #8 on: 2012/04/17, 02:04:39 »
Vielleicht wird /etc/rc.local von /bin/dash aufgerufen!

man dash:
[ expression ]
The test utility evaluates the expression and, if it evaluates to true, returns a zero
(true) exit status; otherwise it returns 1 (false).  If there is no expression, test also returns 1 (false).
s1 = s2       True if the strings s1 and s2 are identical.

Dies geht also nicht:
Code: [Select]
#!/bin/dash
/bin/true
if [  $?  ==  0 ] ; then
  echo ja
else
  echo nein
fi
# auch ein NICHT dash Feature, die Doppelklammer nur Bash:
/bin/true
if [[  $?  =  0 ]] ; then
  echo ja
fi
Die einfache Alternative ist:
Code: [Select]
if ping NUM ; then
# hier was machen
fi

Das Doppelgleich ist wohl eine Neuerung des neuesten Bash? Als Feature für die vielen C Programmierer ....
experiencing siduction runs better than my gentoo makes me know I know nothing

Offline brummer

  • User
  • Posts: 276
    • http://guitarix.sourceforge.net/
Verbindungskontrolle NAS
« Reply #9 on: 2012/04/17, 16:08:44 »
Quote from: "Beni"
Hallo zusammen
Wie Eingangs erwähnt startet das Script, aber der Ping funktioniert nicht wenn er via Autostart oder rc.local aufgerufen wird.


Um zu sehen ob der ping (im Sinne von wird ausgeführt und liefert ein Ergebnis) funktioniert, ersetze deine ping Zeile ma mit
ping google.com -c 1

Wenn das funktioniert liegt es wohl eher an dem NAS.

Beni

  • Guest
Verbindungskontrolle NAS
« Reply #10 on: 2012/04/17, 22:00:41 »
Hallo zusammen
Code: [Select]
if ping NUM ; then funktioniert leider auch genau wie alle anderen Versuche. Wenn ich das Script von Hand aufrufe geht es, via rc.local oder Autostart wird der ping nicht ausgeführt.
Code: [Select]
ping google.com -c 1 Leider das selbe Ergebnis.

Gruss
Beni

Offline ralul

  • User
  • Posts: 1.814
Verbindungskontrolle NAS
« Reply #11 on: 2012/04/17, 23:55:26 »
Dann mal bitte die negative Diagnose im /etc/rc.local :

Code: [Select]

if ping IP-NUMMER; then
  mount xxxxxx
else
  date >>/var/log/myping.log
  echo "error" >>/var/log/myping.log
  ifconfig >>/var/log/myping.log
fi


Oder benutzt du etwa NetworkManager ?
experiencing siduction runs better than my gentoo makes me know I know nothing

Beni

  • Guest
Verbindungskontrolle NAS
« Reply #12 on: 2012/04/19, 22:23:23 »
Hallo ralul
Ich habe den Versuch mit deinem Script gemacht, es zeigt sich das gleiche Verhalten wie bei meinem.
- Über die Konsole aufgerufen funktioniert es.
- Via Autostar oder rc.local nicht.
- Trage ich eine IP ein die nicht existiert, wird wenn ich das Script aufrufe die myping.log geschrieben, via Autostart oder rc.local aber nicht.
Quote
Oder benutzt du etwa NetworkManager ?
Nein.

Danke und Gruss
Beni

Offline ralul

  • User
  • Posts: 1.814
Verbindungskontrolle NAS
« Reply #13 on: 2012/04/19, 23:26:52 »
Was sagt denn
ls -ll /etc/**/*rc.local
Sollte zeigen:
Code: [Select]
-rwxr-xr-x 1 root root 782 Jan 11 10:42 /etc/init.d/rc.local
lrwxrwxrwx 1 root root  18 Feb 27 14:17 /etc/rc2.d/S21rc.local -> ../init.d/rc.local
lrwxrwxrwx 1 root root  18 Feb 27 14:17 /etc/rc3.d/S21rc.local -> ../init.d/rc.local
lrwxrwxrwx 1 root root  18 Feb 27 14:17 /etc/rc4.d/S21rc.local -> ../init.d/rc.local
lrwxrwxrwx 1 root root  18 Feb 27 14:17 /etc/rc5.d/S21rc.local -> ../init.d/rc.local
Die /etc/init.d/rc.local startet /etc/rc.local.
Oder, benutzt du systemd statt sysvinit, dann musst du die /etc/rc.local auch aktivieren !?

Warum Dein ~/.config/autostart/deinScript nicht funktioniert?
chmod +x deinScript?
[/code]
experiencing siduction runs better than my gentoo makes me know I know nothing

Beni

  • Guest
Verbindungskontrolle NAS
« Reply #14 on: 2012/04/21, 21:37:07 »
Hallo
ls -ll /etc/**/*rc.local zeigt:
Code: [Select]
root@siduction:~# ls -ll /etc/**/*rc.local
-rwxr-xr-x 1 root root 782 Jan 11 10:42 /etc/init.d/rc.local
lrwxrwxrwx 1 root root  18 Apr  9 23:30 /etc/rc2.d/S29rc.local -> ../init.d/rc.local
lrwxrwxrwx 1 root root  18 Apr  9 23:30 /etc/rc3.d/S29rc.local -> ../init.d/rc.local
lrwxrwxrwx 1 root root  18 Apr  9 23:30 /etc/rc4.d/S29rc.local -> ../init.d/rc.local
lrwxrwxrwx 1 root root  18 Apr  9 23:30 /etc/rc5.d/S29rc.local -> ../init.d/rc.local
-rw-r--r-- 1 root root  82 Sep 14  2010 /etc/vim/vimrc.local
Mein Script ist ausführbar. Das Script startet und wird ausgeführt, nur eben der Ping zur Verbindungskontrolle nicht.

Gruss
Beni