Rabu, 23 Juli 2014

Mirroring WEBSERVER menggunakan RSYNC

Dapet tugas untuk setup 2 buah webserver, yang mana salah satu akan digunakan sebagai "Publisher" dan satu lagi sebagai "Developer". Setelah dipersiapkan kebutuhannya, diputuskanlah menggunakan Linux distro Centos 5.7. Skip,,,Skip,,,

Setelah proses instalasi dan konfigurasi website di kedua server selesai, gue harus membuat perintah agar server tersebut melakukan mirroring 1 arah dari Developer ke Publisher. Sebenarnya ada beberapa pilihan antara lain menggunakan scp atau menggunakan rsync.

Namun kali ini gue memilih menggunakan rsync karena tidak perlu melakukan perubahan owner database setelah proses mirror selesai.  Perintah nya pun cukup sederhana, yaitu menggunakan "rsync -e ssh -arzgov /home/situs1/ root@xxx.xxx.xxx.xxx:/home/situs1/ " dan semua data sudah mirror ke server Publisher.

Karena ada beberapa website yang harus di mirror, dan harus dimasukkan kedalam pekerjaan rutin. Rasanya malas juga kalau harus lakukan hal tersebut secara manual. Mengingat postingan gue sebelumnya soal otomatisasi wifi,  Maka gue kepikiran untuk membuat hal serupa untuk ini.

Berikut script yang gue buat.


#!/usr/bin/expect

set timeout 120

spawn ssh localhost
expect "password:"
send "my_pass1\r"
expect "~]#"
send "date \r"
expect " ~]#"
send "rsync -e ssh -arzgov /home/situs1/ root@xxx.xxx.xxx.xxx:/home/situs1/ \r"
expect "root@xxx.xxx.xxx.xxx's password:"
send "my_pass2\r"
expect "~]#"
send "rsync -e ssh -arzgov /home/situs2/ root@xxx.xxx.xxx.xxx:/home/situs2/ \r"
expect "root@xxx.xxx.xxx.xxx's password:"
send "my_pass2\r"
expect " ~]#"
send "rsync -e ssh -arzgov /home/situs3/  root@xxx.xxx.xxx.xxx:/home/situs3/ \r"
expect "root@xxx.xxx.xxx.xxx's password:"
send "my_pass2\r"
expect "~]#"
send "ssh root@xxx.xxx.xxx.xxx\r"
expect "root@xxx.xxx.xxx.xxx's password:"
send "my_pass2\r"
expect "~]#"
send "/etc/init.d/mysqld restart \r"
expect "~]#"

#interact
exit

Read More »