Uruchom skrypt bash tuż przed odmontowaniem urządzenia USB?

4

Czy w Linuksie (w moim przypadku Ubuntu) jest możliwe skonfigurowanie systemu do uruchamiania skryptu bash tuż przed odłączeniem klucza USB?

Mam przenośną osobistą wiki na pendrive i za każdym razem, gdy odłączam ją od mojego komputera, chciałbym, aby jej zawartość była automatycznie archiwizowana na Amazon S3.

Czy coś takiego jest możliwe? Nie ma znaczenia, czy skrypt uruchamia się przy każdym odmontowaniu, ponieważ mogę łatwo zidentyfikować w skrypcie, czy urządzenie, które jest odmontowane, jest tym, którego chcę utworzyć kopię zapasową.

Z góry dziękuję za wszelkie porady.

Bogaty

Bogaty
źródło
Oczywiście skrypt nie będzie mógł zostać uruchomiony (a przynajmniej nie będzie miał dostępu do zawartości napędu USB), jeśli napęd zostanie wyciągnięty siłą bez wyraźnego odmontowania. Nie martwisz się tą sprawą, prawda?
David Z
Z którego pulpitu korzystasz? Gnom? KDE? Inny? Jak go obecnie odmontowujesz? Klikając coś w rodzaju menu podręcznego, ikony lub wiersza polecenia? Z pewnością jest to możliwe.
Matt
Używam Gnome i zawsze odmontowuję, klikając przycisk odmontowania w Nautilusie
Rich

Odpowiedzi:

2

Nie sądzę, że istnieje ogólny sposób uruchamiania skryptu przed odmontowaniem urządzenia.

Mógłbyś uruchomić skrypt kopii zapasowej po odmontowaniu urządzenia, ale byłoby to bardzo kłopotliwe - musiałbyś ponownie zamontować urządzenie, uruchomić kopię zapasową, odmontować urządzenie ponownie (bez ponownego uruchamiania skryptu), a na końcu umówić się na powiadomienie użytkownika że urządzenie można odłączyć.

Aby uruchomić skrypt przed odmontowaniem, wywołaj własny skrypt odmontowania zamiast /bin/umount. Jeśli chcesz obsługiwać GUI wywołujące, /bin/umountczy tego chcesz, czy nie, możesz zmienić umountplik wykonywalny i umieścić skrypt na swoim miejscu:

dpkg-divert --local --rename --divert /bin/umount.real /bin/umount
Gilles
źródło
1

Prawdopodobnie możesz użyć, udevale możesz chcieć, aby proces, który uruchamiasz, utworzył kopię lokalnie i zakończył, a następnie incronwysłał do Amazon S3 osobny proces, ponieważ nie powinieneś uruchamiać długotrwałych procesów udev.

Dennis Williamson
źródło
0

Spójrz na inotify . Powinno być możliwe wyłapanie zdarzenia odmontowanego za pomocą skryptu niestandardowego.

evnu
źródło
0

Najlepszy sposób, w jaki mogę o tym myśleć, to stworzenie skryptu, który najpierw tworzy kopię zapasową, a następnie odmontowuje dysk. Po prostu używaj go za każdym razem zamiast czystego odmontowywania.

Laukaus
źródło