• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Daten automatisch beim Einstecken des Geräts kopieren

linux4dave

Newbie
Hallo

ich möchte gerne ein Script schreiben, welches automatisch Daten auf einen USB-Stick kopiert, wenn dieser angeschlossen wird.
Vielleicht könnt ihr mir Tipps geben, wie ich ein solches Script schreiben kann.
Das Gerät würde ich gerne über eine UUID ansprechen. Falls es euch hilft, ich habe OpenSuse 11 und KDE 4.1.
Vielen Dank im vorraus.

Schönes Wochende wünscht euch,

linux4dave
 

P6CNAT

Advanced Hacker
Hallo,

die Shell Script Sprachen sind dafür denkbar ungeeignet. Die haben - zumindest nach meinem Kenntnisstand - keine Interrupt Funktion, um zu erkennen ob sich an der Hardware irgendwas ändert. Da muss man schon auf C-Programme zurückgreifen.

Man kann die Aufgabe lösen aber zu dem Preis einer Art Arbeitsbeschaffungsmaßnahme für den Rechner. Wenn man einen USB Stick einsteckt entsteht unter dem Pfad /media ein neues Verzeichnis für den Stick. Das könnte man in einer Endlosschleife alle paar Sekunden abfragen ob sich dort etwas tut und dann irgendwelche Aktivitäten entfalten. Etwa so wie in folgendem Beispiel:

Code:
while [ 1 ]
to
  if [ -d /media/stickname ]
  then
    echo "hier tut sich was"

  fi
  sleep 60
done

Es würde funktionieren, aber ich rate davon ab.

Gruß
Georg
 
OP
linux4dave

linux4dave

Newbie
Vielen Dank für die Antwort,

jemand hat mir gesagt, dass man über den hal daemon vielleicht etwas machen kann.
Habt ihr diesbezüglich eine Idee.

linux4dave
 

P6CNAT

Advanced Hacker
Hi,

den HAL-Daemon habe ich noch nicht genutzt. Nach der Manpage kontrolliert er aber die Hardware, insofern klingt es nicht schlecht.

hald is a daemon that maintains a database of the devices connected to the system system in real-time. The daemon connects to the D-Bus system
message bus to provide an API that applications can use to discover, monitor and invoke operations on devices. For more information about both
the big picture and specific API details, refer to the HAL spec which can be found in /usr/share/doc/packages/hal/spec/hal-spec.html depending
on the distribution.

Mir ist noch eine Komponente eingefallen die hilfreich sein könnte. Es gibt ein Programm rsync, das syncronisiert die Daten auf verschiedenen Platten. Das müsste eigentlich auch mit USB-Sticks funktionieren.

Gruß
Georg
 
OP
linux4dave

linux4dave

Newbie
Ja, rsync ist gut. Dann werden nur neue Daten kopiert.
Ein solches Verfahren müsste man doch bei Backups nutzen?! Festplatte wird angeschlossen und automatisch wird das Backup gemacht. Danach wird der Datenträger wieder aus gehangen. ???
Unter Google habe ich folgendes gefunden:

http://blog.computer-tipps.info/2007/01/21/automatisches-backup-beim-einschalten-des-backup-mediums/ (Der Artikel ist gut, aber ich kann das Script nicht umschreiben)

http://www.linux-magazin.de/heft_abo/ausgaben/2006/09/backup_ueber_bande/(offset)/2
 

rolle

Guru
Vor nich allzulanger Zeit hatten wir so ein Thema schon einmal hier. Vielleicht findest Du den Fred ja.
 

abgdf

Guru
Wenn hal das nicht von sich aus kann, müßtest Du ja dauernd hal oder "mount" abfragen. Das heißt, Dein Skript müßte die ganze Zeit laufen. Hoffe also, daß ein Dämon (z.B. hal) das von sich aus kann.

Gruß
 

P6CNAT

Advanced Hacker
Hallo,

ivman ist die Lösung!

Ich habe es nicht ausprobiert, weil ich die Funktionalität nicht brauche. Aber ich habe mir die beiden Links angesehen die linux4dave gefunden hat.

Im Steuerfile IvmConfigActions.xml wird die Geräte-ID und das Script eingetragen welche bei einer Änderung des Gerätezustandes ausgeführt werden soll. Die Geräte-ID findet man mit lshal, das Script kann man selbst schreiben. Muss ja nicht kompliziert sein, ein tar oder rsync Befehl würde schon genügen.

Wenn ivman merkt, dass ein USB Stick eingesteckt wird, wird das Script ausgeführt. Klasse Funktion.

Gruß
Georg
 
Oben