Mogę zsynchronizować foldery rsync -avz /directory /target
, teraz chcę to zrobić, jeśli zmieniłem plik, /directory
więc rsync
powinien zostać wywołany automatycznie.
Korzystam z Virtual Box, a folder współdzielony Virtual Box jest naprawdę wolny, szczególnie jeśli masz stronę internetową, która używa folderu współdzielonego jako katalogu głównego dokumentu. Dzięki rsync
mógłbym pracować z moimi lokalnymi plikami w folderze współdzielonym i automatycznie synchronizować je z katalogiem głównym dokumentu.
Mam nadzieję, że ktoś ma pomysł, jak to zrobić, crontab
nie byłoby dobrze, ponieważ jest wykonywany co x minut, więc jeśli nic nie zrobię, zadzwoni, rsync
ale nie, jeśli zmodyfikuję mój plik.
Z poważaniem
źródło
inotifywait
Rozwiązanie ma jedną istotną wadę, ale nieznaczne: to nie wykrywa zmian, które się stało, kiedyrsync
jest uruchomiony. Rozważ następującą sytuację: plik A został zmieniony; rsync jest wyzwalany; kiedy rsync prawie kończy synchronizację pliku A, plik B ulega zmianie. Terazrsync
zakończone iinotifywait
działa, ale plik B nie jest zsynchronizowany i nie zostanie zsynchronizowany aż do następnej zmiany. Rozważ użycielsyncd
zgodnie z sugestią @Arigion.Możesz użyć Lsyncd (Live Syncing Daemon) :
Oto na przykład samouczek dotyczący systemu Ubuntu 16.04 .
źródło
Możesz użyć
inotifywait
irsync
.inotifywait
zmodify,create,delete
włączonym zdarzeniem . W ten sposób zsynchronizujesz się z serwerem tylko wtedy, gdy plik się zmieni, w przeciwnym razie zsynchronizuje się za każdym razem, gdy plik zostanie odczytany (redaktorzy czytają plik kilka razy, aby sprawdzić, czy są jakieś zmiany). Tak powiedziane:źródło
lsyncd
zgodnie z sugestią @Arigion.Rozwijając nieco komentarz do zaakceptowanej odpowiedzi, miałem sukces przy użyciu fswatch do wywołania
scp
zmienionych plików dla gościa. W Linuksie jest to opakowanie uniwersalne,inotify
ale jest także wieloplatformowe (jestem na komputerze Mac z gościem QEMU z Arm). Skorzystałem również z wersjissh
zdalnej. Metoda push działa dobrze z udziałami, które zachowują się w mniej niż idealny sposób.źródło