rsync sebagai proses latar belakang?

4

Saya telah menggunakan rsync untuk menyinkronkan banyak file antara dua server saya. Saya mengatur pekerjaan cron yang akan menjalankan rsync setiap menit. Namun, saya lebih suka jika saya bisa menjalankannya selalu, sehingga file disinkronkan saat mereka diubah. apa jalan terbaik melakukan ini?

Terima kasih.

Ariod
sumber

Jawaban:

7

Jika Anda memiliki inotify di kernel Anda, periksa inotify-tools .

Ada contoh di halaman itu:

#!/bin/sh
# A slightly complex but actually useful example
inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %f' \
 -e close_write /home/billy | while read date time file; do
    rsync /home/billy/${file} rsync://[email protected]/backup/${file} && \
    echo "At ${time} on ${date}, file ${file} was backed up via rsync"
done
Doug Harris
sumber
Saya tertarik dengan solusi ini. Maukah Anda menjelaskan apa yang dilakukan berbagai bagian skrip ini?
Amelio Vazquez-Reina
FWIW (empat tahun kemudian), lsyncdadalah program mirip daemon yang merangkum fungsi ini dengan cara yang sangat elegan dan cukup lintas platform: code.google.com/p/lsyncd
Zac B
1

gunakan sistem inotify dari linux, dikombinasikan dengan incron .

akira
sumber
Doug Harris memiliki contoh penggunaan yang bagus. Ingin mendokumentasikan Anda juga?
Jeremy L
doug copyNpasted sampel langsung dari halaman itu :) untuk menghindari melakukan hal yang sama: inotify.aiken.cz/?section=incron&page=doc&lang=en (rtfm) ... ini berfungsi seperti cron, hanya di direktori yang berbeda (/ etc /incron.d/)
akira