Langsung ke konten utama

Cara Sinkronisasi file dan folder pada 2 (dua) server yang berbeda secara realtime pada OS Linux Debian 9

Hello gaes
kali ini saya akan membagikan bagaimana cara nya melakukan sinkronisasi folder 2 PC OS linux debian 9 yang berbeda dengan realtime. aplikasi yang kita butuhkan adalah sebagai berikut :
Rsync
Aplikasi untuk sinkronisasi file/folder dari satu server ke server yang berbeda. Jadi misal ada file baru di server A, maka tinggal jalankan script rynsc dan file tsb akan tercopy ke server B.
Tapi sayangnya, Rsync gak bisa mensinkronisasi secara realtime. Jadi ketika ada perubahan file lagi pada server, kita harus menjalankan ulang script rsync lewat CLI secara manual.
Inotify:
Aplikasi untuk memonitoring perubahan file/folder secara realtime. Jika ada perubahan file/folder, maka akan terdeteksi lewat inotify. Mantep.. Hm, tp sayangnya dia cuma bisa memonitoring file/folder aja, gak bisa melakukan copy file (Sinkronisasi) ke server lain.
Untuk itulah kita perlu 2 aplikasi tsb, Inotify untuk memantau perubahan file, sementara Rsync melakukan sinkronisasi(copy file) ke server lain jika Inotify mendeteksi adanya perubahan file.
Baiklah, ditutorial ini kita akan coba melakukan sinkronisasi dari server A (192.168.88.216) ke server B(192.168.88.215).
Berikut adalah summary tutorialnya :
1) buat folder yang akan disinkronisasikan
2) install rsync, buat script rsync, setting SSH
3) install inotify, buat script inotify
4) gabungin script inotify dan rsync, lalu jalankan secara bersamaan
5) autostart script inotify dan rsync saat komputer restart
Kita langsung saja ke TKP ..

1. Buat folder untuk sinkronisasi

Pertama, buat 2 folder.
1 folder di server A (192.168.88.216), 1 lagi di server B (192.168.88.215).
Buat folder di server A :


mkdir /home/shareserver1/
chmod 0777 /home/shareserver1/

ganti shareserver1 dengan nama folder kamu yang akan disinkronkan.

Buat folder di server B :


mkdir /home/shareserver2/

ganti shareserver2 dengan nama folder kamu yang akan menjadi tujuan sinkron.

2. Install Rsync, buat script Rsync, setting SSH

Selanjutnya kita masuk ke server A dulu :), lakukan step dibawah ini ..
– Install Rsync di server A dengan script :

apt-get install rsync
– Setelah terinstall, kita buat script rsync.sh :


touch /home/shareserver1/rsync.sh 
chmod 0777 /home/shareserver1/rsync.sh
Kemudian masukkan script berikut ke rsync.sh :



#!bin/bash
rsync -a /home/shareserver1/ root@192.168.88.215:/home/shareserver2/ --delete
Keterangan :
Rsync akan melakukan sinkronisasi dari folder shareserver1(192.168.88.216) ke folder shareserver2(192.168.88.215). Terdapat script root@192.168.88.215 diatas, artinya sinkronisasi dilakukan melalui SSH. Jadi langkah selanjutnya kita setting SSH dulu.
– Setting SSH
Setting SSH yg dimaksud disini adalah, menseting agar user bisa login SSH tanpa password. Jadi nanti server A akan login SSH ke server B tanpa password. Ini diperlukan supaya aplikasi Rsync bisa leluasa menyinkronisasikan file ke server B tanpa halangan password.
Berikut cara setting SSH :

Konfigurasi di server A :
1) Masih di server A, pastikan kita sudah login ke user root :


su - root

2) Abis itu, buat keygen SSH :


ssh-keygen -t rsa

Jika ada notifikasi, enter enter aja, sampe selesai.
Saat script diatas akan menggenerate file id_rsa.pub.

3) Masih di server A, buat folder .ssh di server B.


ssh root@192.168.88.215 mkdir -p .ssh
Jika muncul yes/no. Pilih yes, trus enter.
Nanti dia minta password. Masukkin password root server B.

4) Copy file id_rsa.pub yang sudah dibuat pada tahap 1, ke server B :


cat .ssh/id_rsa.pub | ssh root@192.168.56.102 'cat >> .ssh/authorized_keys'
Jika minta password lagi, masukkan password root server B.

5) Set permission folder .ssh :


ssh root@192.168.88.215 "chmod 700 .ssh; chmod 640 .ssh/authorized_keys"

6) Sekarang tinggal testing login SSH ke server B.

ssh root@192.168.88.215

Lihat, tidak ada inputan password saat login SSH.



[root@server1 ~]#ssh root@192.168.88.215
Last Login: Fri Jan

Kemudian tekan

exit
– Testing rsync.sh
Setelah berhasil setting SSH, sekarang saatnya menjalankan file rsync.sh.
1) Pada server A, buat sebuah folder “test” di dlm folder sync_a.
2) Buka terminal, ketikkan :


sh /home/shareserver1/rsync.sh

Script diatas akan mensinkronisasikan folder “test” dari server A, ke server B.

3) Sekarang lihat folder shareserver2 pada server B. Akan ada folder “test” juga.

Urusan setting aplikasi Rsync sudah sampai sini, selanjutnya kita masuk ke aplikasi Inotify.

3. Install Inotify, buat script Inotify

Masih di server A, masuk sebagai user root

apt-get 
install gcc make
Install Inotify
Setelah itu download aplikasi inotify :


wget http://jensd.be/download/inotify-tools-3.14.tar.gz

Lalu ektrak :


tar -xvzf inotify-tools-3.14.tar.gz

Masuk ke folder inotify :

cd inotify-tools-3.14

Konfigurasi dulu inotify sebelum diinstal :

./configure

Baru setelah itu kita install inotify :

make
make install
Cek inotify bahwa sudah terinstall :


ls -l /usr/local/bin/inotify*

hasilnya :

-rwxr-xr-x. 1 root root 60892 Jan 6 15:14 /usr/local/bin/inotifywait
-rwxr-xr-x. 1 root root 55183 Jan 6 15:14 /usr/local/bin/inotifywatch
Buat Script Inotify
Langkah selanjutnya membuat script inotify.
Disini kita akan mengetes untuk memonitoring folder shareserver1 pada server A.
Masih di server A, buka terminal lalu jalankan script berikut :

ldconfig

inotifywait -r -e close_write,delete,move /home/shareserver1
Keterangan :
-r artinya recursive
-e artinya event, kita pakai event close_write,delete,move
Jika script diatas dijalankan, maka Inotify akan aktif secara realtime :

Sekarang coba buat folder “test_2” didalam folder shareserver1, maka otomatis aplikasi Inotify akan mendeteksi bahwa ada folder baru.

Yup, urusan Inotify dah sampai sini, sekarang lanjut ke cara menggabungkan script Rsync dan Inotify.

4. Menggabungkan script Rsync dan Inotify, lalu menjalankannya bersamaan

Sebelumya kita sudah membuat script Rsync :



#!bin/bash
rsync -a /home/shareserver1/ root@192.168.88.215:/home/shareserver2/ --delete

Dan script Inotify :


inotifywait -r -e close_write,delete,move /home/shareserver1/

Sekarang tinggal kita gabungan scriptnya.
Masih di server A(jgn lupa login sbg user root), buka file rsync.sh tadi, lalu pastekan script berikut :


#!/bin/bash
while inotifywait -r -e close_write,delete,move /home/shareserver1/; do
    rsync -a /home/shareserver1/ root@192.168.88.215:/home/shareserver2 --delete
done &
exit 0

Keterangan :
di atas terdapat while, artinya inotifywait akan memonitoring file&folder secara berulang-ulang(looping). Jika Inotifywait menemukan adanya perubahan file/folder, otomatis script rsync -a /home/shareserver1/ akan dijalankan, dan otomatis sinkronisasi dilakukan ke server B.
Sebagai contoh, coba kita test..
– Jalankan dulu script rsync.sh

sh 
/home/shareserver1/rsync.sh
– Lalu buat folder “test_3” didalam folder “shareserver1”.
– Otomatis folder “test_3” akan tersinkronisasi juga ke folder “shareserver2” pada server B

Cukup sekian, semoga bermanfaat ..
"BERBAGI ITU INDAH".
jangan lupa ya doakan orang tua, anak dan istri saya agar sehat selalu.. amien

Komentar

Postingan populer dari blog ini

Cara mengaktifkan php pada web server NGINX pada debian 9 dengan PHP-FPM

Assalamu'alaikum WR WB Menyambung tutorial sebelumnya yaitu mengaktifkan domain name pada web server NGINX, karena pada tutorial sebelumnya apabila kita menjalankan file berekstensi php secara default browser akan mendonwload file tersebut, dan ternyata tidak sesuai dengan expetasi. Pada kesempatan kali ini saya akan membagikan bagaimana cara menampilkan halaman berekstensi php pada browser kalian. Baiklah tidak usah panjang lebar kita langsung saja ke TKP. Install modul PHP-FPM, disini saya menggunakan PHP5.6-FPM atau dengan menggunakan PHP versi 5.6 Caranya jalankan script berikut pada console server kalian apt-get update && apt-get install -y apt-transport-https lsb-release ca-certificates wget wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list apt-get update && apt-get install -y php5.6-fpm Tambahkan deklarasi lo...

Cara Membuat Valid SSL (https) di localhost untuk XAMPP

Penggunaan SSL sangatlah bermanfaat baik bagi end user maupun pemilik website. Pengguna sudah mulai peduli soal pentingnya keamanan internet di beberapa tahun terakhir ini. Itu berarti SSL menyediakan kelebihan yang sangat bagus bagi website modern mana pun. Adapun kelebihan dengan menggunakan SSL : Dengan SSL, tampilan website Anda akan lebih profesional Mengenkripsi informasi Google suka dengan situs yang menggunakan SSL Baiklah, tidak perlu panjang lebar kita langsung saja ke TKP . Pada langkah ini kita akan membuat SSL dan mengatur situs web "localhost.com" Buat folder "crt" didalam folder XAMPP "C:\xampp\apache" Buat file "cert.conf" dan isi dengan code dibawah ini : [ req ] default_bits = 2048 default_keyfile = server-key.pem distinguished_name = subject req_extensions = req_ext x509_extensions = x509_ext string_mask = utf8only [ subject ] countryName = Country Name (2 letter c...

Membuat Base Url Codeigniter Project Menjadi Dinamis

Assalamu'aikum WR WB Hello Gays, Pada kesempatan kali ini saya akan membagikan cara bagaimana agar base url pada project codeigniter menjadi dinamis sesuai dengan host name yang kita gunakan pada website kita. oke tak perlu panjang lebar, sekarang kita mulai saja : Pertama download framework Codeigniter pada link berikut :  Codeigniter Download Extract pada folder htdocs jika menggunakan xampp/ pada folder www jika menggunakan wampp Sebelumnya kita tambahkan dulu helper url pada file autoload.php yang ada pada folder application/config. untuk mengaktifkan base url pada codeigniter. Buka file config.php yang ada pada folder application/config Ubah pada bagian $config['base_url'] = ''; Menjadi berikut : $config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http"); $config['base_url'] .= "://".$_SERVER['HTTP_HOST']; $config['bas...