RSYNC: Fasilitas Salin Data Skala Raksasa
Pendahuluan
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.
Ilustrasi sederhana: menyalin isi direktori
Menyalin utuh sebuah direktori (umpama /sumber/ ) ke direktori lain (umpama /tujuan/ ) dapat dilakukan dengan perintah "cp":
cp -a /sumber/* /tujuan/
Perintah "rsync" yang setara ialah:
rsync -av /sumber/ /tujuan/
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:
rsync -av --delete /sumber/ /tujuan/
Jika penghapusan hanya boleh setelah penyalinan sukses:
rsync -av --delete --delete-after /sumber/ /tujuan/
Terkadang ada berkas yang kita tidak ingin salin (umpama *.bak):
rsync -av --exclude '*.bak' /sumber/ /tujuan/
Tentu saja, silakan menggabungkan opsi-opsi seperti "--delete" dan dan "exclude" tersebut di atas.
Menyalin "Anonymous" Dari Situs Jaringan
Walau pun perintah dapat digunakan untuk keperluan lokal seperti contoh di atas, lazimnya perintah "rsync" digunakan antar komputer melalui jaringan. Tentunya, ini hanya dapat dilakukan, jika komputer tersebut dikonfigurasi untuk keperluan tersebut! Cara mengkonfigurasi, akan dijabarkan pada bagian akhir tulisan ini.
Melihat daftar modul yang tersedia pada situs ibiblio.org:
rsync ibiblio.org::
Maka akan muncul "Message of today" dan daftar-daftar modul.
------------------------------------------------------------------------- Welcome to the ibiblio rsync server! [SISA "MESSAGE OF TODAY" DIHAPUS] pub EVERYTHING in our FTP tree (use this only for subdirectories) chinese-music Chinese music collection CPAN CPAN distros Linux Distributions (use this to get at particular distros) Docsouth Documenting the American South Dr-Fun Doctor Fun freedos FreeDOS gentoo Gentoo Linux Distribution ggi GGI gnome Gnome stable tree gnu GNU software grass GRASS mirror gutenberg Project Gutenberg htdig htdig mirror iupac iupac downloads kde our KDE mirror (complete) kernel.org the kernel.org mirror ldp_mirror Linux Documentation Project Linux ibiblio linux archive maven maven mutopia mutopia archive obp Open Book Project pld PLD Linux Distribution rpmhelp rpmhelp sourcemage sourcemage sun-info Sun Info sun-packages Sun Solaris Packages -------------------------------------------------------------------------
Untuk mencari kernel linux terakhir, silakan melihat dengan perintah:
rsync ibiblio.org::kernel.org/pub/linux/kernel/
Untuk menyalin isi direktori kernel tersebut ke /tujuan/
rsync -av --delete ibiblio.org::kernel.org/pub/linux/kernel/ /tujuan/
Silakan menyimak kembali, opsi-opsi yang dijabarkan pada butir dua di atas.
Setting "rsync"
Langkah pertama ialah menginstall program "rsync" ke direktori "/usr/bin/" (atau direktori lainnya). Jika tidak tersedia paket tersebut, silakan mengkompail source yang dapat diambil di "http://samba.anu.edu.au/rsync/" atau mirror dekat anda.
- rsync bisa digunakan sebagai rsyncd, serta dipanggil
melalui "/etc/inetd.conf". Jadi, silakan menambahkan ke
berkas "/etc/inetd.conf" baris berikut ini:
# ---------------------------------------------------------- # /etc/inetd.conf rsync stream tcp nowait root /usr/bin/rsync rsyncd --daemon # asumsi, "rsync" ada di "/usr/bin/" #-----------------------------------------------------------
- silakan membuat berkas text (ASCII) "/etc/rsyncd.motd" yang
berisi pesan "Message of today" yang sesuai dengan selera anda.
- silakan membuat berkas konfigurasi "/etc/rsyncd.conf" dengan isi:
# ---------------------------------------------------------------- # /etc/rsyncd.conf # nama berkas "message of the day" yang dibuat di atas motd file = /etc/rsyncd.motd # berapa concurrent connections? max connections = 2 # syslog ke mana? syslog facility = local3 # Alamat atau blok IP mana yang diizinkan mengakses "rsync"? # /32 --> satu host; # /16 --> 64k host; dst. hosts allow = \ 10.118.0.0/16 \ 192.168.1.2/32 \ 127.0.0.0/8 # labelmodul: [labelmodul] comment = Komentar ini dapat dibaca dengan perintah "rsync nama.host::" path = /var/dir/yang/mau/di/sync read only = yes use chroot = yes list = yes uid = nobody gid = nogroup #---------------------------------------------------------------
Harap mengganti "labelmodul" dengan nama modul, dan "/var/dir/yang/mau/di/sync" dengan direktori tempat modul
- Agar "rsyncd" dapat berfungsi, silakan restart "initd" anda.
kill -1 "PID_INITD"
(mungkin juga menggunakan "initd restart"; tergantung variasi linux anda).
- Silakan mencoba rsyncd dengan perintah:
rsync localhost::
Seharusnya akan keluar pesan "Message of today" yang diikuti dengan daftar modul yang ada.
- Rsync anda siap digunakan!
Catatan: Versi awal tulisan ini diterbitkan di Koran Tempo, 17 Desember 2003, halaman B8.
Rujukan
- http://samba.anu.edu.au/rsync/ -- info rsync.