Berkenalan dengan rsync

Tedi Heriyanto (tedi_heriyanto@yahoo.com)

4 Januari 2002




1. Apa itu rsync ?


Apakah anda pernah mengalami kesulitan untuk mensinkronkan file-file anda yang ada di satu mesin dengan mesin lainnya ?


Jika ya, anda tidak sendirian, karena saya pun mengalaminya, namun untunglah ada program rsync yang dibuat oleh Andrew Tridgell.


rsync adalah adalah sebuah program kecil yang berfungsi hampir sama dengan rcp, namun memiliki fitur tambahan yang lebih banyak dan menggunakan protokol rsync remote update untuk mempercepat transfer file bila file tujuan sudah ada.

Alih-alih membuat sebuah skrip sesi FTP atau berbagai bentuk skrip transfer file lainnya, rsync hanya menyalinkan perbedaan file-file saja, mengkompresinya dan mengirimkannya menggunakan ssh jika anda ingin keamanan.


Berikut ini adalah beberapa buah fitur tambahan rsync :


2. Instalasi rsync


rsync dapat anda instal dari RPM atau dari tarball. Kedua versi tersebut dapat diperoleh di rsync.samba.org.


Instalasi rsync versi RPM


Setelah anda mendownloadnya, anda kemudian dapat menginstalasinya :


su

password :


# rpm -ivh rsync-2.4.6-1.i386.rpm


Instalasi rsync versi tarball


Setelah anda mendownloadnya, silakan lakukan langkah berikut :



$ tar xvzf rsync-2.4.6.tar.gz



$ su

password :


# make install


3. Menggunakan rsync


Ada enam buah cara untuk menggunakan rsync :



Berikut ini adalah sintaks penggunaan rsync :


rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST


rsync [OPTION]... [USER@]HOST:SRC DEST


rsync [OPTION]... SRC [SRC]... DEST


rsync [OPTION]... [USER@]HOST::SRC [DEST]


rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST


rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]


Cara terbaik untuk menjelaskan sesuatu adalah dengan memberikan contoh nyata. Di bawah ini adalah beberapa buah contoh nyata dalam penggunaan rsync :


rsync *.sdw my-projects/


perintah ini akan mentransfer seluruh file yang cocok dengan kriteria *.sdw dari direktori saat ini ke direktori my-projects. Jika sembarang file telah ada pada direktori tujuan maka rsync akan menggunakan protokol remote-update agar mengirimkan perbedaannya saja.


rsync -avz public_html www.yourmachine.com:/public_html


perintah ini akan secara resursif mentransfer semua file dari direktori public_html ke direktori public_html yang ada di mesin www.yourmachine.com. File-file ditransfer dalam mode "archive", yang memastikan bahwa link simbolik, device, atribut, permisi, kepemilikan dan sebagainya disimpan saat transfer. Sebagai tambahan, digunakan pula kompresi untuk mengurangi ukuran data yang ditransfer.


rsync -avz foo:src/bar /data/tmp


perintah di atas akan mentransfer semua file yang ada pada direktori src/bar di mesin foo ke dalam direktori /data/tmp yang ada di mesin lokal.


rsync gue.pakelinux.ah::


perintah di atas akan menampilkan daftar semua modul rsync anonim yang tersedia pada host gue.pakelinux.ah.


4. Membuat server rsync


Untuk membuat sebuah server rsync ada dua langkah utama yang harus anda lakukan pada mesin yang ingin anda jadikan sebagai server rsync :


rsyncd.conf adalah sebuah file konfigurasi rsync ketika dijalankan dengan option --daemon. Saat itulah rsync menjadi rsync server yang listening ke TCP port 873. File rsyncd.conf mengendalikan otentikasi, akses, pencatatan dan modul yang tersedia.


Format File Konfigurasi


File konfigurasi ini terdiri dari modul dan parameter. Modul dimulai dengan nama modul dalam tanda kurung siku dan berlanjut terus hingga awal modul berikutnya. Modul berisikan parameter dalam bentuk "name = value".


Hanya tanda sama dengan pertama yang signifikan. Whitespace sebelum dan setelah tanda sama dengan pertama diabaikan.


Baris yang dimulai dengan tanda "#" akan diabaikan.


Nilai yang dapat diberikan mengikuti tanda sama dengan di parameter berupa string (tidak dibutuhkan quote) atau boolean, yang mungkin dapat diberikan sebagai yes/no, 0/1, true/false.


Option Global


Parameter pertama dalam file, sebelum header modul, adalah parameter-parameter global.


motd file


Option "motd file" memungkinkan anda untuk menspesifikasikan "pesan hari ini" yang akan ditampilkan ke client setiap kali koneksi. Defaultnya adalah tidak ada file motd.


log file


Option "log file" memberi tahu daemon rsync untuk mencatat pesan-pesan ke file alih-alih menggunakan syslog.


pid file


Option "pid file" memberitahu daemon rsync untuk mencatat id prosesnya ke file tersebut.


syslog facility


Option "syslog facility" memungkinkan anda menspesifikasikan nama fasilitas syslog yang akan digunakan ketika mencatat pesan-pesan ke server rsync. Anda dapat menggunakan sembarang nama fasilitas syslog standar yang didefinisikan pada sistem anda. Nama-nama umum tersebut antara lain auth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, security, syslog, user, uucp, local0, local1, local2, local3, local4, local5, local6 dan local7. Bakunya adalah daemon.


socket options


Option ini dapat menyediakan beragam kegembiraan bagi orang-orang yang suka mengotak-atik sistem mereka. Anda dapat menset segala macam option soket yang mungkin dapat mempercepat transfer atau memperlambatnya. Silakan baca man page untuk sistem call setsockopt() untuk rincinya. Bakunya tidak ada option soket khusus yang diset.


Contoh File Konfigurasi


Sebuah contoh file rsyncd.conf sederhana yang memungkinkan rsync anonim ke sebuah area ftp di /home/ftp adalah sebagai berikut :


[ftp]

path = /home/ftp

comment = ftp export area


Contoh yang lebih kompleks adalah :


uid = nobody

gid = nobody

use chroot = no

max connections = 4

syslog facility = local5

pid file = /etc/rsyncd.pid


[ftp]

path = /var/ftp/pub

comment = whole ftp area (approx 6.1 GB)


[sambaftp]

path = /var/ftp/pub/samba

comment = Samba ftp area (approx 300 MB)


[rsyncftp]

path = /var/ftp/pub/rsync

comment = rsync ftp area (approx 6 MB)


[sambawww]

path = /public_html/samba

comment = Samba WWW pages (approx 240 MB)


[cvs]

path = /data/cvs

comment = CVS repository (requires authentication)

auth users = osamu, lader

secrets file = /etc/rsyncd.secrets


File /etc/rsyncd.secrets akan tampak sebagai berikut :


osamu:mypass

lader:mypass



5. Daftar Pustaka