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 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

Cara Mengaktifkan Virtual Host / Domain Pada Mikrotik

Hello gaes, pada kesempatan kali ini saya akan membagikan bagaimana cara mengaktifkan Host / Domain pada mikrotic agar dapat diakses dikomputer lain dengan jaringan yang sama. Baiklah tidak perlu panjang lebar, kita langsung saja ke TKP Masuk kedalam jaringan dengan menggunakan WINBOX Pilih menu IP -> Hotspot -> Kemudian pilih tab server profiles Masukkan Name  dengan inisial host, masukkan hotspot dengan IP yang digunakan sebagai server, masukkan DNS name dengan nama host / domain Tekan tombol Apply -> OK Kemudian pilih menu  IP ->  DNS Selanjutnya tekan tombol static Kemudian tekan tombol add new Masukkan name dengan nama domain / host , masukkan address dengan IP yang akan kita jadikan sebagai server Kemudian Tekan Apply -> OK Untuk mengecek apakah domain sudah bisa diakses, jika buka browser kemudian buka nama domain. contoh : test.domain1.com Demikian tutorial dari saya, semoga bermanfaat. dan jangan lupa "

Cara Membuat Virtual Host / Domain Web Server Nginx pada Debian 9 (stretch)

Assalamu'alaikum WR WB hello gaes, pada kesempatan kali ini saya membagikan cara bagaimana membuat virtual host / domain pada web server nginx untuk OS debian 9. baiklah tidak perlu panjang lebar, kita langsung saja ke TKP : Buatlah folder yang akan kita gunakan sebagai folder penyimpanan file website. contoh : mkdir -p /var/www/domain1.com Buatlah file html pada folder penyimpanan website dengan cara sebagai berikut : nano /var/www/domain1.com/index.html Masukkan contoh kode html kedalam file tadi dan simpan. contoh kode html : <html> <head> <title>Domain 1</title> </head> <body> <h3> DOMAIN 1</h3> </body> </html> Buat file konfigurasi virtual host dengan cara sebagai berikut : nano /etc/nginx/conf.d/vhost.conf "vhost.conf" bisa diganti dengan inisial virtual host misalkan ada 2 domain yang hendak kita buat kita bisa menamainya dengan domain1.conf dan domain2.conf Tambahkan pengaturan sebagai