Cara Sinkronisasi Direktori Secara Real-Time di Linux

  • Bagikan

Sinkronisasi direktori di Linux dapat dilakukan dengan menggunakan rsync, dengan kombinasi cronjob sinkronisasi dapat berjalan secara otomatis pada waktu yang telah ditentukan. Namun pada situasi tertentu, kita ingin sinkronisasi berjalan secara live atau real-time ketika terjadi perubahan pada direktori atau file. Untuk kasus seperti itu kita bisa menggunakan tool lsyncd. lsyncd memantau perubahan pada direktori kemudian melakukan sinkronisasi ke target atau slave. Sinkronisasi hanya satu arah, dari source ke target.

0. Instalasi lsyncd

Di tutorial ini saya menggunakan distro Linux CentOS 7 untuk percobaan.

Instalasi lsyncd

 

1. Sinkronisasi di Lokal

File konfigurasi lsyncd berada di /etc/lsyncd.conf. Tersedia contoh konfigurasi di /usr/share/doc/lsyncd-2.2.2/examples.

a. Satu Source Satu Target

Percobaan pertama melakukan sinkronisasi dari folder /var/www/html ke folder /root/backup.

Buka file konfigurasi.

 

Ubah isinya menjadi seperti di bawah ini.

 

Aktifkan dan jalankan service.

 

Sekarang uji dengan melakukan perubahan pada folder /var/www/html dan periksa pada folder /root/backup apakah memiliki data yang sama.

Proses sinkronisasi terjadi di background, kita dapat memeriksa sinkronisasi apa saja yang telah dilakukan dengan membaca file log /var/log/lsyncd/lsyncd.log dan file status /var/log/lsyncd/lsyncd.status.

Jika masih ada folder yang ingin disinkronkan, tambahkan config sync.

 

Baca Juga:  Jaga Kestabilan Server dengan Load Balancing HAProxy Nginx di CentOS 7

Jangan lupa melakukan restart service setelah melakukan perubahan konfigurasi.

 

b. Satu Source Banyak Target

Percobaan kedua melakukan sinkronisasi dari satu sumber direktori ke lebih dari satu tujuan direktori. Target didefinisikan dalam array dan proses sinkronisasi dimasukkan ke dalam operasi pengulangan for.

 

c. Banyak Source Satu Target

Percobaan ketiga, banyak sumber direktori yang disinkronisasi ke satu direktori tujuan.

 

2. Sinkronisasi ke Remote Server

Selanjutnya sinkronisasi ke remote server. Sebelum melakukan konfigurasi lsyncd, terlebih dahulu mesin Master harus bisa login SSH ke Slave tanpa password.

Terdapat 3 mesin CentOS:

  1. Master: 45.76.180.137
  2. Slave 1: 149.28.153.15
  3. Slave 2: 139.180.208.163

a. Satu Source Satu Target

Pada opsi Target dituliskan nomor IP slave beserta direktorinya. Kemudian pada opsi rsync dituliskan perintah ssh login dengan username root dan private key.

 

b. Satu Source Banyak Target

jika terjadi error berikut :

Baca Juga:  Mencari direktori atau file terbesar di Linux

Anda bisa mendapatkan batas tontonan file inotify Anda saat ini dengan mengeksekusi:

$ cat /proc/sys/fs/inotify/max_user_watches

Ketika batas ini tidak cukup untuk memantau semua file di dalam direktori, batas harus ditingkatkan agar Dengarkan berfungsi dengan baik. Anda dapat menetapkan batas baru sementara dengan:

$ sudo sysctl fs.inotify.max_user_watches=524288
$ sudo sysctl -p

Jika Anda ingin membuat batas Anda permanen, gunakan:

$ echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
$ sudo sysctl -p

Anda mungkin juga perlu memperhatikan nilai max_queued_events dan max_user_instances jika Listen terus mengeluh.

selamat mencoba ?

  • Bagikan