Pengambilan berkas melalui Internet dapat dilakukan dengan berbagai cara. Cara mudah dan interaktif dapat dilakukan memanfaatkan browser seperti "Galeon", "Konqueror", "Mozilla", "Opera", dan sejenisnya. Apa bila mengambil beberapa berkas, dapat menggunakan shell atau perl script yang berbasis protokol ftp/http. Namun, semua metoda tersebut di atas tidak dirancang untuk penyalinan data skala besar sebuah mirror-server. Penyalinan data pada Mirror Server biasanya memanfaatkan "rsync".
Program "rsync" dapat dimanfaatkan untuk berbagai keperluan. Namun perlu diingat bahwa "rsync" rakus sumber daya seperti memori dan CPU. Jadi, janganlah menggunakan ini secara masal yang hanya mengambil satu atau dua berkas.
Rsync adalah tool untuk transfer dan sinkronisasi file atau tree (struktur direktori dan file) secara satu arah, baik transfer lokal (di sistem yang sama) maupun remote (jaringan/internet). Ini menggunakan algoritma pintar untuk mendeteksi perbedaan dalam file sehingga hanya yang beda yang perlu ditransfer, membuat backup secara teratur efisien dan cepat.
Keunggulan Rsync :
Hemat bandwidth dan Mendukung Resume. Jika di sisi penerima, file yang ingin dikirimkan sudah ada, tapi belum tentu sama (misalnya ukurannya lebih kecil/besar atau terdapat perbedaan karena versinya lebih lama), maka rsync dapat melakukan serangkaian pengecekan perbandingan checksum terhadap blok-blok dalam file di kedua sisi, untuk meminimalisasi jumlah data yang harus ditransfer. Algoritma ini disebut algoritma rsync. Bahkan sebetulnya rsync bermula dari sebuah paper yang menjelaskan algoritma ini.Jadi, misalnya Anda memiliki 2 buah versi file berukuran kurang lebih 100MB di dua tempat, dengan rsync Anda mungkin Anda hanya membutuhkan transfer data sebesar 50MB, 10MB, atau bahkan di bawah 1MB untuk menyamakan kedua buah versi file ini, bergantung pada seberapa mirip kedua file tersebut sebelumnya.Atau, misalnya Anda sedang mentransfer file besar lalu putus di tengah jalan. Anda dapat menjalankan kembali rsync dan rsync akan melanjutkan kembali transfer dari posisi putus dan memastikan hasil akhirnya nanti sama.
Cepat. Rsync cepat salah satunya karena algoritma rsync yang disebutkan di atas. Selain itu rsync dapat melakukan kompresi data saat transfer. Dibandingkan FTP pun rsync lebih cepat karena dapat melakukan pipelining, sementara transfer menggunakan FTP boros koneksi TCP/IP untuk setiap file yang ditransfer. Ini akan semakin kentara untuk tree berisi file kecil-kecil yang jumlahnya banyak (misalnya file-file website yang umumnya berisi banyak file HTML dan gambar), di mana rsync dapat beberapa kali hingga belasan kali lebih cepat dari FTP.
Fleksibel. Rsync tidak hanya bisa mentransfer file tunggal, tapi juga direktori dan tree secara rekursif. Anda bisa memilih untuk menghapus file/direktori yang sudah tidak ada dari sisi pengirim tapi masih ada di sisi penerima. Anda juga bisa memilih untuk melakukan proses sinkronisasi metadata file seperti permission, kepemilikan, tanggal, ACL, dll. Rsync dapat menangani link simbolik, hardlink, device, dll. Selain opsi tersebut, masih banyak opsi lainnya, termasuk yang sering juga dijumpai di tool lain seperti tar, cp, dll.
Berikut ini adalah langkah – langkah untuk melakukan rsync backup pada mesin linux :
Pastikan software rsync sudah terinstall di PC anda, cek dengan dengan cara mengetikan perintah berikut pada terminal:
root@martin-desktop ~# rsync --version
Nanti akan keluar keterangan apakah rsync sudah terinstall di PC atau belum. Jika belum, anda bisa install dulu dengan perintah aptitude install rsync pada Ubuntu atau zypper in rsync pada OpenSuse, dan lain sebagainya (bisa disesuaikan).
Jika sudah terinstall, kita dapat memulainya dengan :
root@martin-desktop ~# rsync -av /sumber/ /tujuan/
Sekilas, hal ini akan sama dengan perintah cp. Perbedaan akan terasa, jika melakukan perubahan/penambahan isi direktori /sumber/. Perintah "cp" akan menyalin ulang SEMUA berkas, namun "rsync" lebih cepat karena hanya akan menyalin berkas yang ditambah/diubah. Apa bila ingin menghapus berkas di /tujuan/ yang tidak ada di /sumber/, gunakan:
root@martin-desktop ~# rsync -av --delete /sumber/ /tujuan/
Jika penghapusan hanya boleh setelah penyalinan sukses:
root@martin-desktop ~# rsync -av --delete --delete-after /sumber/ /tujuan/
Terkadang ada berkas yang kita tidak ingin salin (umpama *.bak):
root@martin-desktop ~# rsync -av --exclude '*.bak' /sumber/ /tujuan/
Dan masih banyak lagi opsi lainnya.
Agar backup bisa dilakukan secara otomatis, script yang berisi perintah seperti diatas bisa di simpan di directory cron, atau menggunakan perintah crontab. Misalnya untuk backup tiap hari kita bisa buat script seperti diatas dan disimpan di /etc/cron.daily.
- Untuk melakukan rsync ke PC / Server lain yang terhubung dengan jaringan LAN atau Internet, pastikan terlebih dahulu software rsync dan SSH sudah terinstall dengan benar pada masing-masing PC / Server.
Jalankan test rsync dengan mengetikkan command berikut di console :
root@martin-desktop ~# rsync -avz -e ssh /path/yang/dibackup/ user@ipaddess:/lokasi/backup/
anda akan diminta memasukkan password untuk login ssh pada PC / Server tujuan. Masukkan password, dan rsync akan meng-copy semua file yang anda backup ke PC / Server tujuan.
Agar rsync dapat berjalan tanpa harus mengisi password ( jika anda ingin memasukkannya pada crontab ), maka kita harus men-set agar dapat login tanpa harus mengisi password. ;)
1 comments:
Gan mau tanya nih,
aku baru coba2 juga nih pake rsync dan crontab,
nah ini perlu utak atik file rsyncd.conf gak ya?
Kenapa ya punyaku ga bisa...
Thanks sebelumnya..
Post a Comment