Tuesday, 31 March 2015

Tugas KOMDAT (rsync)


Apa itu rsync?


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). Fungsi rsync mirip/identik dengan tool-tool ini: cp, mv, scp, FTP client. Rsync biasanya digabungkan dengan SSH sebagai metode transpor remotenya, walaupun dapat juga disetup untuk menjadi daemon sehingga tidak membutuhkan SSH. Dalam kasus-kasus tertentu rsync juga dapat digunakan menggantikan HTTP client (seperti wget).

Sintaks

Pada umumnya sintaks-sintaks berikut ini yang paling sering digunakan. Untuk transfer lokal ke lokal:
$ rsync -av -P PATHSUMBER PATHTUJUAN
Untuk transfer lokal ke remote:
$ rsync -e ssh -av -P -z PATHSUMBER USER@HOST:PATHTUJUAN
Untuk transfer remote ke lokal, cukup kebalikan perintah sebelumnya:
$ rsync -e ssh -av -P -z USER@HOST:PATHSUMBER PATHTUJUAN


Opsi -a (archive) adalah untuk mensinkronkan segala sesuatu, termasuk file/direktori secara rekursif dan metadata (seperti tanggal, kepemilikan, permission) dan file-file spesial seperti link simbolik. Umumnya ini yang kita mau, tapi dalam kasus-kasus tertentu di mana Anda tidak ingin rekursif atau tidak ingin mensinkronkan salah satu dari tanggal/kepemilikan/dll, opsi -a dapat dihilangkan dan/atau diganti dengan opsi-opsi lain seperti -r, -g, -o,
Opsi -v (verbose) membuat rsync memperlihatkan ke layar nama-nama file yang sedang ditransfer. Opsi -P membuat rsync lebih verbose lagi, yaitu menampilkan juga progres/persentasi saat sebuah file sedang ditransfer. Jika kita menggunakan rsync dalam skrip noninteraktif, bisa jadi output yang dihasilkan terlalu banyak. Maka dalam kasus tersebut kita dapat menghilangkan opsi -v dan -P.
Opsi -z (compress) membuat rsync mengkompresi data yang ditransfer. Ini menghemat bandwidth. Untuk transfer remote, gunakanlah selalu opsi ini, kecuali jika Anda berada di intranet yang amat cepat bahkan lebih cepat dari bandwidth harddisk (mis: di lingkungan gigabit ethernet).

Selain opsi -av -P, dalam melakukan backup filesystem biasanya opsi -H dan -A juga berguna. Opsi -H untuk mempertahankan hubungan hardlink (contoh: /usr/bin/sudo dan /usr/bin/sudoedit di Debian adalah hardlink. Hanya ada satu salinan saja untuk kedua file tersebut. Tanpa opsi -H maka saat ditransfer akan menjadi dua salinan, menghabiskan ruang disk.
Opsi -A untuk menyalin juga metadata ACL, berguna jika Anda menggunakan ACL.
Sebuah contoh aplikasi rsync dalam membuat backup harian dengan histori backup akan dibahas dalam kesempatan lain.

Rsync menyediakan berbagai cara yang sangat fleksibel agar kita dapat memilih-milih file mana yang ingin disinkronkan dan mana yang ingin diabaikan (exclude). Beberapa contoh:
Jangan ikut sertakan file-file backup:
$ rsync -av --exclude '*~' --exclude '*.bak' SUMBER TUJUAN
Jangan ikut sertakan direktori metadata .svn (berguna untuk mentransfer direktori source code dari direktori kerja langsung):
$ rsync -av --exclude '.svn' SUMBER TUJUAN
Jika kita menyebutkan path absolut di --exclude, maka itu akan berarti posisinya relatif terhadap SUMBER. Keberadaan garis miring di akhir SUMBER akan lagi-lagi menentukan apakah titik awal yang dianggap akar (root) adalah selevel dengan SUMBER atau satu level di dalam SUMBER. Contoh:
$ rsync -av --exclude '/.*' /home/steven/ /backup/steven/

Perintah di atas akan membackup direktori home saya, tapi tanpa mengikutsertakan "dotfiles" yang ada tepat di bawah home (umumnya berisi file konfigurasi). Tapi seandainya ada dotfiles di bawah direktori lain, misalnya, /home/steven/proj1/.config maka file tersebut tidak akan di-exclude karena kita hanya menginstruksikan meng-exclude dotfiles yang berada di "root" (/.*).

Opsi --exclude dan pasangannya --include dapat disebutkan berselingan dan berulang kali. Terdapat pula opsi --filter yang lebih fleksibel lagi. Terdapat juga opsi --delete-excluded untuk menghapus file-file yang diexclude di sisi tujuan. Berguna misalnya untuk menghapus file-file backup (*~, *.bak) yang mungkin berserakan di sisi tujuan.

Sebuah contoh yang agak lengkap, dari potongan skrip backup yang pernah saya gunakan untuk membackup direktori home saya. Untuk mengirit waktu dan ruang disk, saya meng-exclude berbagai "sampah" seperti cache browser, trash, direktori temporer, file-file backup, dll. Anda mungkin bisa mengembangkan sendiri opsi favorit Anda.

Penjelasan ini saya dapat dari
http://kb.masterweb.net/beta/index.cgi/read/Artikel:Menggunakan_rsync

No comments:

Post a Comment