Anda juga dapat menggunakan inotifywait
dari paket inotify-tools.
inotifywait -r -m -e close_write --format '%w%f' /tmp | while read MODFILE
do
echo need to rsync $MODFILE ...
done
Lsyncd akan menjadi solusi yang bagus untuk ini.
Lsyncd menonton antarmuka monitor acara pohon direktori lokal (inotify atau fsevents). Ini mengumpulkan dan menggabungkan acara selama beberapa detik dan kemudian memunculkan satu (atau lebih) proses untuk menyinkronkan perubahan. Secara default ini adalah rsync. Dengan demikian, Lsyncd adalah solusi cermin langsung yang ringan yang relatif mudah dipasang, tidak memerlukan sistem file atau perangkat blok baru, dan tidak menghambat kinerja sistem file lokal.
Intinya, ini menggunakan jenis alat yang sama untuk melakukan pekerjaan (inotify dan rsync) seperti yang disarankan oleh jawaban lain, tetapi lebih mudah disiapkan untuk seseorang yang tidak terbiasa dengan skrip shell.
Saya sangat membutuhkan ini karena kode saya perlu dijalankan di kotak jarak jauh dan saya menulis kode di mesin lokal. Saya menemukan alat bagus yang dapat Anda gunakan untuk terus memantau folder lokal Anda dan menyinkronkannya ke folder jarak jauh atau lokal:https://github.com/axkibe/lsyncd
Perintah sederhana untuk terus menyinkronkan dir lokal dengan mesin jarak jauh melalui ssh adalah:
lsyncd -log all -nodaemon -rsyncssh <local_path> <user>@<ip> <remote_path>
Sama seperti perintah rsync lainnya, pastikan Anda memberikan jalur folder dengan benar dan periksa sebelum Anda menjalankan perintah. Saya hampir membunuh salah satu mesin jarak jauh saya karena saya lupa memberikan direktori tujuan yang benar. Pastikan Anda tidak melewatkan jalur jarak jauh dan jangan menggunakan '/' kecuali Anda tahu apa yang Anda lakukan.