Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

[gelöst]Script nach dem/beim Mounten ausführen

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
Benutzeravatar
counter
Newbie
Newbie
Beiträge: 31
Registriert: 6. Jan 2004, 22:50

[gelöst]Script nach dem/beim Mounten ausführen

Beitrag von counter »

Hallo,

Nach langer Abwesenheit im Forum habe ich wieder mal eine Frage:

Ist es unter Suse Linux 9.1 möglich ein Script nach dem Mounten eines Datenträgers starten zu lassen?
Also mit Automount?
Wenn ja wie?

Habe mir testweise einen Server gebaut.
Wenn ich den USB-Stick einstecke soll automatisch ein paar Dateien darauf kopiert werden, vom Script geunmountet werden und ein BEEP ertönen. (damit ich weiß das der Computer fertig ist.

Folgendes Script funktioniert bei mir manuell:

#!/bin/bash
if [ "` mount | grep /dev/sda1 | cut -b 1-9 `" = "/dev/sda1" ];
then echo "USB-Stick ist gemountet";
else echo "USB-Stick ist nicht gemountet"; fi

Den Rest muss ich halt noch schreiben.

Wichtig ist mir das aufrufen des Scripts nach dem Mounten.
sonst müsste ich jede Minute den Test mit einem cronjob machen um zu wissen ob der Stick drin ist.

Server läuft ohne Monitor und Tastatur.
Soll alles automatisch gehen.

Danke für eure Hilfe!

Gruß
Counter
Zuletzt geändert von counter am 20. Aug 2005, 10:22, insgesamt 1-mal geändert.
Bild 9.1 Pro

P4 1,7GHz, 512MB Ram, GeForce 4 Ti 4200 128MB TV-Out
Suse Linux 10 Download

Benutzer der Suchfunktion... :-)
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

schau mal nach Hotplug oder udev scripten, damit kannst Du entsprechende Automatisierungen machen

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
Benutzeravatar
counter
Newbie
Newbie
Beiträge: 31
Registriert: 6. Jan 2004, 22:50

Beitrag von counter »

Danke TeXpert

Hab mir mal ein paar Scripte in /etc/hotplug angesehen.
Aber so wirklich blicke ich da nicht durch.
Hab da zuwenig erfahrung in solchen sachen.

Unter KDE wird dann der Konqueror aufgerufen mit dem richtigen Verzeichnis wenn ich den Stick einstecke.

Wie finde ich heraus wo das passiert?
Brauche das auf der Console.
In den Scripten wird fast nur mit Variablen gearbeitet und da blicke ich dann nicht mehr durch.
Habe zu wenig Erfahrung damit.
Oder muss ich die Variable Action (steht irgendwo ganz oben) auf:
./meinscript.sh setzen?

edit: hab mal nach den udev scripten gesucht.
Auch mit google.de (jetzt weis ich ja wonach ich suchen muss)
und das gefunden http://www.linuxforen.de/forums/showthread.php?t=178406

Da les ich mich mal durch
/edit


Gruß
Counter[/url]
Bild 9.1 Pro

P4 1,7GHz, 512MB Ram, GeForce 4 Ti 4200 128MB TV-Out
Suse Linux 10 Download

Benutzer der Suchfunktion... :-)
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

was haben denn Deine Googleien zum Thema "hotplug udev script" ergeben? oder wie wäre es mit einem Blick in /usr/share/doc/hotplug und /usr/share/doc/udev?

da gibts Beispiele und Dokumentationen

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
Benutzeravatar
counter
Newbie
Newbie
Beiträge: 31
Registriert: 6. Jan 2004, 22:50

Beitrag von counter »

Hi TeXpert

Hab das > udev script suse ausführen bei google eingegeben und dann kam das > http://www.google.de/search?hl=de&q=ude ... %3Dlang_de
raus.
Meintest du das?

Hab die Beispiele und die Dokumentationen gefunden.
Die Liegen bei mir unter /usr/share/doc/packages/udev und ../hotplug.

Wobei nur bei udev Beispiele dabei sind.
Bei Hotplug nur eine Readme.

Ich forste mal die udev Dateien durch und kuck mal wie weit ich mit meinem rest English komme.
Gruß
Counter
Bild 9.1 Pro

P4 1,7GHz, 512MB Ram, GeForce 4 Ti 4200 128MB TV-Out
Suse Linux 10 Download

Benutzer der Suchfunktion... :-)
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

ich meinte wie ich geschrieben hatte: "hotplug udev script" ;)

liefert z.B. als 1. Link die hotplug-Homepage...

dann könnte das hier interessant werden: http://www.tummy.com/journals/entries/k ... 219_131044

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
Benutzeravatar
counter
Newbie
Newbie
Beiträge: 31
Registriert: 6. Jan 2004, 22:50

Beitrag von counter »

So TeXpert,

Habe dann noch das http://www.linuxforen.de/forums/printth ... p?t=153630 gefunden.

Also ich habs jetzt so wie ich es wollte.
War einfacher als ich gedacht hatte.
Hier meine/unsere Lösung (mit Hilfe des/der obigen Links):

"befehl" = ohne Anführungszeichen eingeben.

Alles als root machen!

Als root anmelden.
Alle USB-Geräte abstecken.
Und etwas warten.
Jetzt den USB-Stick einstecken und etwas warten.

Dann mit "mount" feststellen ob ein /dev/sd? gemountet ist.

Die Zeile enthält dann etwas mit /media/usb-storage-...
Das ist der Mountpoint wo auf das Gerät zugegriffen wird.

"lsusb" eingeben und Enter drücken.

Die Ausgabe sieht dann z.b. so aus:

Bus 001 Device 022: ID 0ea0:2168 Ours Technology, Inc.
Bus 001 Device 001: ID 0000:0000

Das 0ea0:2168 brauchen wir dann.

Aufschreiben!

Sieht bei euch anders aus, aber diese zwei Werte brauchen wir.
Der erste Wert ist der idVendor und der zweite die idProduct.

Jetzt die Datei /etc/hotplug/usb.usermap mit einem Editor (joe, mcedit) öffnen.

Die sah bei mir dann so aus:
# usb module match_flags idVendor idProduct bcdDevice_lo bcdDevic
e_hi bDeviceClass bDeviceSubClass bDeviceProtocol bInterfaceClass bInterf
aceSubClass bInterfaceProtocol driver_info
# $Id: usb.usermap,v 1.1.1.1 2004/03/10 15:41:49 adrian Exp $

Und dann habe ich folgendes eingefügt, neue Zeile Anfangen!
Steht alles in einer Zeile

usbstick 0x0003 0x0ea0 0x2168 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00
0x00000000

usbstick = Name des Scriptes das aufgerufen werden soll wenn der USB-Stick eingesteckt wird.
0x0ea0 = die idProduct
0x2168 = die idVendor

Das 0x heißt "das ist ein Hexadezimalwert"

Bei mcedit
Script mit F2 Speichern und Editor mit F10 verlassen.

Jetzt kommt das Script das aufgerufen werden soll:

"cd /etc/hotplug/usb" ENTER
"mcedit usbstick"

Mein Script sieht so aus:

#!/bin/bash
#Pause von 30 Sekunden -> Wartezeit bis gemountet ist
sleep 30
# Pause vorbei -> Befehle ausführen
# Backup USB-Stick in eigenes Verzeichnis
cp /media/usb-storage-0123456789ABCDEF:0:0:0p1/*.* /home/Benutzer/USB-Stick;
# Ändern der Rechte auf bestimmten User. Warum? Script #äuft/arbeitet als root
chown Benutzer:users /home/Benutzer/USB-Stick/*.* -R;
#Ausführungsrechte entziehen -> Nur Backup
chmod -x /home/Benutzer/USB-Stick/*.* -R;
#Löschen des USB-Sticks
rm /media/usb-storage-0123456789ABCDEF:0:0:0p1/*.*;
# umounten mit Kleinem L an letzter Stelle
umount /media/usb-storage-0123456789ABCDEF:0:0:0p1 -l

beim mcedit mit F2 speichern und den Editor mit F10 verlassen.

mit "chmod +x usbstick" das Script als ausführbar kennzeichnen.

Fertig.

Den Usb-Stick rausziehen.
Auf einem Anderen Computer irgendwas draufkopieren und dann ausprobieren.

Gruß
Counter

Danke an TeXpert für die Tipps und Links!
Bild 9.1 Pro

P4 1,7GHz, 512MB Ram, GeForce 4 Ti 4200 128MB TV-Out
Suse Linux 10 Download

Benutzer der Suchfunktion... :-)
Antworten