[ Updated, 29 Juni 2015 ]
Di post ini saya akan menjelaskan cara mengunakan Rsync untuk mensinkronisasi 2 buah file di antara 2 server ubuntu, cara ini juga bisa diterapkan antara debian dengan debian atau antara ubuntu dengan debian. Rsync dengan bantuan rsa key, kenapa ? agar setelahnya proses rsync akan bisa berjalan dengan baik tanpa masalah dan aman.
Di post ini saya akan menjelaskan cara mengunakan Rsync untuk mensinkronisasi 2 buah file di antara 2 server ubuntu, cara ini juga bisa diterapkan antara debian dengan debian atau antara ubuntu dengan debian. Rsync dengan bantuan rsa key, kenapa ? agar setelahnya proses rsync akan bisa berjalan dengan baik tanpa masalah dan aman.
Di sini saya mengunakan 2 komputer server ubuntu, proxy1 dan proxy2, dengan sistem operasi versi 14.04 32-bit. Kedua server ini masing-masing memiliki ip address yang berbeda segmen, proxy1 192.168.20.1 dan proxy2 192.168.80.1.
N.B. Apabila tidak mengunakan user root maka gunakan sudo untuk user sudoer.
Langkah-langkah rsync antara 2 server ubuntu adalah sebagai berikut :
1. Memeriksa konfigurasi sshd_config di masing server ubuntu, proxy1 dan proxy2.
Proxy1
root@proxy1: cat /etc/ssh/sshd_config |egrep "RSA|Pubkey|Authorized" |grep -v "#"
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
Jika tidak sama seperti hasil diatas maka di konfigurasi dahulu.
root@proxy1: nano /etc/ssh/sshd_configCari baris syntax diatas lalu di uncomment, simpan dan restart ssh.
root@proxy1: service ssh restartKemudian ulangi command diatas,
root@proxy1: cat /etc/ssh/sshd_config |egrep "RSA|Pubkey|Authorized" |grep -v "#"Seharusnya hasilnya sudah sama.
Proxy2
root@proxy2: cat /etc/ssh/sshd_config |egrep "RSA|Pubkey|Authorized" |grep -v "#"
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
2. Membuat rsa key dengan ssh-keygen di proxy1 dan di proxy2.
Proxy1
root@proxy1:~# nano /etc/ssh/sshd_config
root@proxy1:~# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
51:68:ec:f4:9f:c3:af:01:1b:2b:98:d9:04:99:77:68 root@proxy1
The key's randomart image is:
+--[ RSA 2048]----+
| . .. |
| o=o |
| ++E.. |
| +.o. |
| S oo . |
| * == |
| + o o .o |
| . .. |
| .. |
+-----------------+
Memeriksa keberadaan file rsa yang sudah dibuat dengan ssh-keygen di proxy1.
root@proxy1:~# cd .ssh/
root@proxy1:~/.ssh# ls -lrt
total 8
-rw-r--r-- 1 root root 393 Jun 26 13:13 id_rsa.pub
-rw------- 1 root root 1675 Jun 26 13:13 id_rsa
Proxy2
root@proxy2:~# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
96:47:b5:05:ad:43:c1:21:71:b8:ea:95:ae:9b:1f:67 root@proxy2
The key's randomart image is:
+--[ RSA 2048]----+
| o+*=. |
| .+oo. |
| .o.. |
| o. o |
| S... . |
| ...o |
| . o. E |
| ...+ |
| ++. |
+-----------------+
Memeriksa keberadaan file rsa yang sudah dibuat dengan ssh-keygen di proxy2.
root@proxy2:~# cd .ssh/
root@proxy2:~/.ssh# ls -lrt
total 8
-rw-r--r-- 1 root root 393 Jun 26 13:16 id_rsa.pub
-rw------- 1 root root 1679 Jun 26 13:16 id_rsa
3. Upload/transfer file rsa key dari proxy1 ke proxy2.
Karena saya tidak mengunakan port default [berbeda], maka dengan command,
root@proxy1:~/.ssh# scp -P 213 -r id_rsa.pub 192.168.80.1:/root/.ssh/authorized_keys
The authenticity of host '[192.168.80.1]:213 ([192.168.80.1]:213)' can't be established.
ECDSA key fingerprint is 0a:9d:c8:ad:20:15:62:11:87:ad:b3:2a:95:e2:c8:60.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[192.168.80.1]:213' (ECDSA) to the list of known hosts.
root@192.168.80.1's password:
id_rsa.pub 100% 393 0.4KB/s 00:00
4. Upload/transfer file rsa key dari proxy2 ke proxy1.
root@proxy2:~/.ssh# scp -P 212 -r id_rsa.pub 192.168.20.1:/root/.ssh/authorized_keys
The authenticity of host '[192.168.20.1]:212 ([192.168.20.1]:212)' can't be established.
ECDSA key fingerprint is bc:8d:a3:0c:1a:a4:21:ca:39:24:f2:73:5a:1f:0b:5f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[192.168.20.1]:212' (ECDSA) to the list of known hosts.
Password:
id_rsa.pub 100% 393 0.4KB/s 00:00
5. Tes koneksi ssh antar server ubuntu.
Proxy1
Karena mengunakan rsa key dan buka mengunakan port default [berbeda], dengan command,
root@proxy1: ssh 192.168.80.1 -p 213
Welcome to Ubuntu 14.04.2 LTS (GNU/Linux 3.13.0-53-generic i686)
* Documentation: https://help.ubuntu.com/
System information as of Fri Jun 26 13:28:19 WIB 2015
System load: 0.0 Processes: 136
Usage of /: 1.7% of 450.52GB Users logged in: 1
Memory usage: 5% IP address for p130p1: 192.168.80.1
Swap usage: 0%
Graph this data and manage this system at:
https://landscape.canonical.com/
Last login: Fri Jun 26 13:15:17 2015 from 10.7.70.82
root@proxy2:~#
Sukses!
Proxy2
root@proxy2: ssh 192.168.20.1 -p 212
Welcome to Ubuntu 14.04.2 LTS (GNU/Linux 3.8.0-29-generic i686)
* Documentation: https://help.ubuntu.com/
System information as of Fri Jun 26 13:29:21 WIB 2015
System load: 0.02 Processes: 134
Usage of /: 24.0% of 224.94GB Users logged in: 1
Memory usage: 4% IP address for eth0: 192.168.20.1
Swap usage: 0%
Graph this data and manage this system at:
https://landscape.canonical.com/
Last login: Fri Jun 26 13:09:27 2015 from 10.7.70.82
root@proxy1:~#
Sukses Juga!
6. Ujicoba sikronisasi antar server, proxy 1 dan proxy2.
Di sini saya akan mengunakan Rsync untuk mensinkronisasi 2 file yaitu file realname.cfg dari direktori lightsquid antara 2 server ubuntu, proxy1 dan proxy2. Bisa juga mensinkronisasi dua folder.
Dan file realname.cfg lightsquid di Proxy1 sebagai sumber [source], sedangkan file realname.cfg di Proxy2 sebagai destination [tujuan].
root@proxy2: rsync -av -e "ssh -p 223" 192.168.20.1:/var/www/lightsquid/realname.cfg /var/www/lightsquid/realname.cfg
receiving incremental file list
realname.cfg
sent 223 bytes received 12,048 bytes 24,542.00 bytes/sec
total size is 19,548 speedup is 1.59
Untuk memeriksa hasil sinkronisasinya, lihat perubahan tanggal dan waktu pada file tujuan yaitu realname.cfg, dengan,
root@proxy2: ls -lah /var/www/lightsquid
7. Membuat Bash Script.
Dari command Rsync diatas, maka untuk mempermudahnya dibuatkan saja bash script yang akan dijalankan secara otomatis melalui cronjob.
Buat file bash script.
Misalnya dibuat bash script rsync di proxy2.
root@proxy2: mkdir /rsync-lightsquidIsinya,
root@proxy2: nano /rsync-lightsquid/realname.sh
#!/bin/bash
dest=/var/www/lightsquid/`date +%A` # direktori tujuan
rsync -av -e "ssh -p 212" 192.168.20.1:/var/www/lightsquid/realname.cfg /var/www/lightsquid/realname.cfg
Beri hak akses,
root@proxy2: chmod 700 /rsync-lightsquid/realname.sh
Trial bash script realname.sh.
root@proxy2: cd /rsync-lightsquid
root@proxy2: ./realname.sh
receiving incremental file list
realname.cfg
sent 217 bytes received 228 bytes 296.67 bytes/sec
total size is 20,036 speedup is 45.02
Ok. Sukses.
8. Menjalankan bash script realname.sh via cronjob.
root@proxy2:crontab -e
# m h dom mon dow command
0 11 * * * /var/www/lightsquid/lightparser.pl today
30 12 * * 1,2,3,4,5,6 /bin/bash /rsync-lightsquid/realname.sh > /dev/null 2>&1
Tips. Bisa ditambahkan fitur pengiriman email pada cronjob agar ada laporan langsung via email, untuk lebih jelasnya silahkan baca artikel selnjutnya yaitu Mengirimkan File Hasil Sinkronisasi [Rsync] Mengunakan Mpack Di Server Ubuntu/Debian.
Selesai. Selamat Mencoba!.
Tidak ada komentar:
Posting Komentar