Mirror Lintas Mesin

Foto os

Anda memiliki server evoucher dimana ada banyak informasi penting di situ, khususnya saldo para member. Mesin server ini diletakkan di rumah. Anda membutuhkan tingkat keamanan data yang lebih, guna mengantisipasi kejadian yang tidak diinginkan pada rumah tersebut. Disinilah mirror lintas mesin diperlukan dimana data secara periodik di-download oleh mesin lain di luar rumah.

Program yang digunakan adalah rsync, biasanya sudah terpasang setelah instalasi Debian, khususnya Ubuntu.

Rsync Server
Ini berada di server rumah yang akan di-mirror. Buatlah /etc/rsyncd.conf:

uid = root
gid = root
read only = yes
hosts allow = 192.168.0.2
max connections = 1
 
[var]
path = /var
 
[etc]
path = /etc

Makna dari segi keamanan adalah hanya IP 192.168.0.2 saja yang boleh download dan hanya boleh 1 koneksi saja. Kemudian aktifkan init script di /etc/default/rsync:
RSYNC_ENABLE=true

Lalu jalankan:
# /etc/init.d/rsync start

Pada saat restart nanti daemon ini akan aktif secara otomatis.

Rsync Client
Ini terletak di IP 192.168.0.2. Buatlah /usr/local/bin/mirror-server:

#!/bin/sh
 
mkdir -p /home/server/var/lib/postgresql
 
while true; do
  rsync -va --delete-after 192.168.0.1::var/lib/postgresql/ /home/server/var/lib/postgresql/
  echo "Selesai"
  sleep 7
done

IP 192.168.0.1 adalah Rsync Server. Lalu ubah izinnya:
# chmod 755 /usr/local/bin/mirror-server

Cobalah dulu secara verbose mode:
# mirror-server

Tekan Ctrl-C bila telah selesai. Sekarang buatlah agar otomatis dijalankan saat boot. Buat /etc/init.d/mirror-server:
#!/bin/sh
 
/usr/local/bin/mirror-server >/dev/null 2>&1 &

Ubah izinnya:
# chmod 755 /etc/init.d/mirror-server

Lihat runlevel saat ini, biasanya 2:
# runlevel
N 2

Pastikan script mirror aktif di runlevel ini:
# cd /etc/rc2.d
# ln -s ../init.d/mirror-server S70mirror-server

Restart dan pastikan aktif secara otomatis:
# ps ax | grep mirror

Untuk lebih meyakinkan lagi, letakkan /home/server/var/lib/postgresql di /var/lib/ pada client. Pasang PostgreSQL dengan versi yang sama. Lalu periksalah saldo para member atau data lainnya menggunakan perintah SQL.