Führen Sie ein Bash-Skript aus, bevor ein USB-Gerät abgemeldet wird.

1532
Rich

Ist es unter Linux (in meinem Fall Ubuntu) möglich, das System so zu konfigurieren, dass ein Bash-Skript ausgeführt wird, bevor ein USB-Schlüssel abgemeldet wird?

Ich habe ein tragbares persönliches Wiki auf einem Pendrive, und jedes Mal, wenn ich es von meinem Computer abmache, möchte ich, dass sein Inhalt automatisch in Amazon S3 gesichert wird.

Ist so etwas möglich? Es spielt keine Rolle, ob das Skript für jedes einzelne Unmounten ausgeführt wird, da ich im Skript leicht feststellen kann, ob das Gerät das Unmount ist, das ich sichern möchte.

Vielen Dank im Voraus für alle Ratschläge.

Reich

4
Natürlich kann das Skript nicht ausgeführt werden (oder kann zumindest nicht auf den Inhalt des USB-Laufwerks zugreifen), wenn das Laufwerk gewaltsam herausgezogen wird, ohne es explizit zu deaktivieren. Sie machen sich keine Sorgen um diesen Fall, oder? David Z vor 14 Jahren 0
Welchen Desktop verwenden Sie? Gnome? KDE? Andere? Wie heben Sie es derzeit ab? Durch Klicken auf ein Popup-Menü, ein Symbol oder eine Befehlszeile? Es ist durchaus möglich. Matt vor 14 Jahren 0
Ich benutze Gnome und werde immer abmontiert, indem ich in Nautilus auf die Unmount-Schaltfläche klicke Rich vor 14 Jahren 0

4 Antworten auf die Frage

2
Gilles

Ich glaube nicht, dass es ein generisches Verfahren zum Ausführen eines Skripts gibt, bevor ein Gerät ausgehängt wird.

Sie können das Sicherungsskript nach dem Aufheben der Bereitstellung des Geräts ausführen. Dies wäre jedoch sehr umständlich. Sie müssten das Gerät erneut bereitstellen, das Backup ausführen, das Gerät erneut aushängen (ohne das Skript erneut auszulösen) und schließlich den Benutzer benachrichtigen dass das Gerät vom Stromnetz getrennt werden kann.

Um ein Skript vor dem Aufheben der Bereitstellung auszuführen, rufen Sie anstelle von das eigene Aufhebung-Skript auf /bin/umount. Wenn Sie GUIs behandeln möchten, die aufrufen, /bin/umountob Sie dies wünschen oder nicht, können Sie die umountausführbare Datei umleiten und Ihr Skript an ihre Stelle setzen:

dpkg-divert --local --rename --divert /bin/umount.real /bin/umount 
1
Dennis Williamson

Sie können dies wahrscheinlich verwenden, udevaber Sie möchten möglicherweise, dass der von Ihnen ausgelöste Prozess die Kopie lokal erstellt und beendet, und dann einen separaten incronProzess für das Hochladen auf Amazon S3 erstellt, da Sie nicht lange laufende Prozesse haben sollten, durch die ausgelöst wird udev.

0
evnu

Schauen Sie sich inotify an . Es sollte möglich sein, ein unmount-Ereignis mit handle und einem benutzerdefinierten Skript abzufangen.

0
laukaus

Am besten kann ich darüber nachdenken, dass Sie ein Skript erstellen, das die Sicherung zuerst erstellt und dann das Laufwerk abmeldet. Verwenden Sie es einfach jedes Mal, anstatt rein zu demontieren.