Istnieje katalog, A
którego zawartość jest często zmieniana przez inne osoby.
Stworzyłem osobisty katalog, w B
którym przechowuję wszystkie pliki, w których kiedykolwiek byłem A
.
Obecnie po prostu od czasu rsync
do czasu uruchamiam pliki, których kopie zapasowe należy A
wykonać B
. Jednak obawiam się, że niektóre pliki zostaną dodane A
, a następnie usunięte, A
zanim dostanę szansę na skopiowanie ich B
.
Jaki jest najlepszy sposób, aby temu zapobiec? Idealnie byłoby, gdyby mój bieżący skrypt kopii zapasowej był uruchamiany za każdym razem, gdy A
zmienia się zawartość .
źródło
incrond
może również być interesujące./etc/profile
dla całego systemu lub.bash_profile
tylko dla użytkownika. Aby uruchomić go po uruchomieniu, zależy to od Twojego gustu w systemach Unix / Linux;/etc/rc.local
,/etc/rc.d/
lub/etc/init.d/
--monitor
przełącznika (i zamiast tego przesłać wyjście do pętli), w przeciwnym razie istnieje duże obciążenie, gdyinotifywait
jest uruchamiany w kółkoŚciśle mówiąc, jeśli ktoś upuści plik i bardzo szybko go usunie, możesz go przegapić. Zastosowanie inotify (pod Linuksem lub podobnej funkcji pod innymi jednorożcami) sprawia, że okno ryzyka jest niewielkie.
Jeśli możesz zamontować wybrany system plików w tym katalogu (zdaję sobie sprawę, że może to nie być opcja), możesz umieścić taki, który rejestruje wszystkie wersje plików, na przykład copyfs .
źródło
Wypróbuj
entr
narzędzie wiersza polecenia, które może uruchamiać dowolne polecenia w przypadku zmiany plików. Od wydania 2.9 dodano opcję przeglądania katalogów (-d
), aby reagować na zdarzenia po dodaniu nowego pliku do katalogu.Przykład uruchomienia narzędzia, jeśli do projektu dodano nowy plik:
Jedyną tego konsekwencją jest to, że jeśli pojawi się nowy plik, musi wyjść, aby umożliwić zewnętrznej pętli powłoki ponowne skanowanie systemu plików.
Oto wersja bez opcji oglądania katalogu:
Oto prostszy przykład w zależności od potrzeb:
Sprawdź: strona internetowa entrproject.org, aby uzyskać więcej informacji.
źródło
Program, którego szukasz
inotify
.źródło