Monday, September 14, 2009

Tutorial Rsync

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 :

1. mendukung penyalinan link, device, owner, grup, dan permisi.
2. Option exclude dan exclude-from serupa dengan GNU tar
3. sebuah mode CVS exclude untuk mengabaikan file-file yang sama yang akan diabaikan oleh CVS
4. dapat menggunakan sembarang remote shell transparan, termasuk rsh atau ssh
5. tidak membutuhkan root privilege
6. pipelining transfer file untuk meminimalkan biaya latency
7. dukungan bagi server rsync anonymous atau authenticated

2. Instalasi rsync

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

More...

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 : Membuka tarball dengan cara :

$ tar xvzf rsync-2.4.6.tar.gz

Pindah ke direktori rsync :

cd rsync-2.4.6

Menjalankan skrip ./configure Kemudian build rsync dengan cara :

make

Jika anda ingin menginstalasi rsync ke sistem anda, lakukan perintah berikut :

$ su
password :

# make install

3. Menggunakan rsync

Ada beberapa buah cara untuk menggunakan rsync :

* untuk menyalinkan file-file lokal. Ini dilakukan dengan tidak menggunakan tanda ":" pada path sumber dan tujuan.
* Untuk menyalinkan dari mesin lokal ke mesin remote dengan menggunakan program remote shell sebagai alat transpornya. Dapat dilakukan ketika path tujuan berisikan tanda pemisah ":".
* untuk menyalin dari mesin remote ke mesin lokal dengan menggunakan program remote shell sebagai alat transpornya. Dapat dilakukan ketika path sumber berisikan tanda pemisah "::" atau sebuah URL rsync://.
* Untuk menyalinkan dari mesin lokal ke server rsync remote. Ini dilakukan dengan memberikan tanda pemisah "::" pada path tujuan.
* Untuk menampilkan daftar file-file pada mesin tujuan. Dapat dilakukan dengan cara yang sama dengan transfer rsync kecuali anda tidak mengisikan tujuan lokal.

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 :

Menjalankan rsync dalam mode daemon, dengan memberikan perintah rsync --daemon pada perintah baris.

Menset file konfigurasi /etc/rsyncd.conf

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

Sedekah sedikit saja?

Beberapa banyak anda bersedekah? Berapa persen dari harta anda yg anda sedekahkan? Coba anda baca tulisan ini.

Salah seorang guru sekaligus sahabat saya bersedekah Rp 10 juta setiap harinya. Sahabat saya yang lain bersedekah Rp 2 miliar setiap bulannya. Dengerin beginian, orang-orang yang bermental miskin pasti langsung berseru, “Gimana caranya ya, saya bisa dapat sedekah sebesar itu?” Sebaliknya, orang-orang yang bermental kaya akan berseru, “Gimana caranya ya, saya bisa bersedekah sebesar itu?” (Hayo jujur, Anda termasuk yang mana?)
Setiap kali saya mengajak untuk memberi, menyumbang, berderma, atau bersedekah dalam jumlah jor-joran, orang-orang kiri (kuat otak kirinya) selalu punya segerobak alasan untuk ‘menyelamatkan’ dompetnya. Pokoknya, ada-ada saja alasan mereka untuk memperkecil jumlah sedekah, menunda sedekah, atau bersedekah tidak dalam bentuk uang. Misalnya saja:
--- Sedikit saja, yang penting ‘kan ikhlas! Padahal banyak dan ikhlas, jelas-jelas itu lebih baik tho? Dan hingga detik ini, saya tidak menemukan satu pun dalil agama untuk bersedekah sedikit. Yang ada hanyalah dalil-dalil untuk bersedekah banyak-banyak, sering-sering, dan segera. Sudahlah, jangan pelit!
--- Ah, tidak perlu banyak begitu. Ntar bisa riya, ujub, dan sombong lho! Padahal bukankah lebih baik bersedekah lebih banyak, lebih sering, dan lebih segera, sambil memelihara keikhlasan? Btw, ikhlas itu omongan para pemula. Mereka yang sudah terbiasa bersedekah, selalu lupa sudah sedekah berapa, sedekah di mana, sedekah kepada siapa. Sudahlah, jangan banyak alasan!
--- Siapa bilang sedekah itu harus dalam bentuk uang? Senyum itu ‘kan sedekah. Amal baik juga sedekah. Ilmu juga sedekah. Nah, ini ada benarnya. Hanya saja, itu semua tidak cukup. Tetap perlu sedekah dalam bentuk uang. Makanya muncul angka 2,5%, 10%, 10 kali lipat, dan 700 kali lipat. Sudahlah, jangan ngeles terus!
Barangkali orang-orang kiri ini menganggap Tuhan itu Maha Miskin, Maha Pelit dan Maha Pelupa, sehingga menurutnya Tuhan tidak mau dan tidak mampu mengganti sedekahnya. Ah, ngaco itu! Karena jelas-jelas Tuhan itu Maha Kaya, Maha Pemurah, dan Maha Membalas.
Terus, gimana dengan orang-orang kanan (kuat otak kanannya)? Ternyata, mereka selalu punya setumpuk alasan untuk memperbesar jumlah sedekah, menyegerakan sedekah, dan bersedekah dalam bentuk uang. Minimal 5% dari pendapatan kotor mereka dan itu pun terus mereka tingkatkan. Yah, walaupun sebenarnya mereka tidak terlalu mampu untuk itu. Kurang rasional memang. Namanya juga kanan.
Akhirnya, saya cuma bisa berharap. Semoga mereka yang bersedekah terang-terangan, niatnya sama ikhlasnya dengan mereka yang bersedekah diam-diam. Dan semoga mereka yang bersedekah diam-diam, jumlahnya sama banyaknya dengan mereka yang bersedekah terang-terangan. Yang celaka, mereka yang diam-diam tidak bersedekah, hehehe!???