Solusi 1:
Jika Anda cukup beruntung menggunakan distribusi berbasis debian, apt-get install dnotify
. Distribusi lain mungkin memiliki sesuatu yang serupa - cari dnotify
nama.
dnotify adalah program sederhana berdasarkan API dnotify kernel Linux 2.4.19+. dnotify dapat menjalankan perintah tertentu setiap kali konten direktori tertentu berubah. Ini dijalankan dari baris perintah dan membutuhkan dua argumen:satu atau lebih direktori untuk dipantau dan perintah untuk dijalankan setiap kali direktori berubah. Opsi mengontrol peristiwa apa yang akan dipicu:saat file dibaca di direktori, saat file dibuat, dihapus, dan seterusnya.
Jika Anda ingin menangani ini dalam program Anda sendiri, dnotify juga merupakan API yang ingin Anda gunakan.
Solusi 2:
Anda dapat menjalankan skrip dengan alat inotify, kira-kira seperti ini. Itu akan mengawasi direktori untuk perubahan pada file yang dimodifikasi, file baru, dan file yang dihapus, kemudian akan menjalankan skrip.
#!/bin/sh
while inotifywait -e modify -e create -e delete /home/me/code; do
rsync [options] /home/me/code/ /media/nfs/code/
done
Solusi 3:
incron pada dasarnya adalah apa yang Anda inginkan, saya pikir. Ini menggunakan inotify sebagai mekanisme notifikasi (yang, seperti yang telah ditunjukkan orang lain, menggantikan dnotify), tetapi tidak memerlukan skrip yang terus berjalan, menggunakan inotifywait atau serupa (walaupun, jelas, daemon incron berjalan sepanjang waktu). 'Crontab' seluruh sistem dan 'crontab' pengguna didukung dengan cara yang mirip dengan cron standar, tetapi alih-alih menentukan waktu sebagai pemicu, peristiwa inotifikasi dan nama file/direktori digunakan.
incron dikemas untuk banyak distribusi, termasuk Ubuntu dan Debian, saya yakin.