Rsync Untuk Mentransfer & Mensinkronisasikan File & Tree


Menurut apa Saya baca di internet, bahwa Rsync adalah suatu tool (perangkat lunak serbaguna) yang digunakan untuk mentransfer (menyalin) dan mensinkronisasikan file dan Tree (struktur direktori dan file bisa juga beserta metadatanya seperti permission, kepemilikan, tanggal dll) dari suatu Sumber ke Tujuan secara satu arah, baik transfer dari lokal ke local (sistem yang sama), local ke remote atau remote ke local, transfer ke- atau dari- daemon rsync.

Saya akan memberikan gambaran yang sederhana dari penggunaan rsync ini, agar bisa dimengerti dengan mudah dan bisa dipraktekkan langsung di komputer sendiri. kira-kira begini.... 

Apabila penjelasan ini kurang tepat mohon diperbaiki ya :D 

Saya menggunakan operating sistem linux ubuntu 12.04 LTS dekstop, contoh transfer file yang akan dilakukan adalah dari "lokal ke lokal" (masih dalam komputer yang sama) yaitu dari folder sumber ke folder tujuan.

sebagai gambaran,
folder Sumber berada di alamat  /home/pembega/sumber/
folder Tujuan berada di alamat  /home/pembega/tujuan/
catatan: pembega adalah nama_user Saya di linux, jika anda belum memiliki folder sumber dan tujuan maka buatlah terlebih dahulu.

folder Sumber berisikan 2 buah file yaitu lagu.mp3 (ukuran file sedang misalnya 4 Mb) dan linux.iso (ukuran file besar misalnya 3Gb), sedangkan folder Tujuan tidak berisikan file apapun (kosong).


bentuk umum transfer lokal ke local:
$ rsync -av -P PATHSUMBER PATHTUJUAN

Untuk melakukan transfer dari folder sumber ke folder tujuan dengan mengetikan perintah berikut ini di terminal: 
$ rsync -av -P /home/pembega/sumber/ /home/pembega/tujuan/

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 menyinkronkan 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 non-interaktif, bisa jadi output yang dihasilkan terlalu banyak. Maka dalam kasus tersebut kita dapat menghilangkan opsi -v dan -P.

Setelah mengetikan perintah diatas maka folder tujuan akan memiliki 2 file yang sama dengan yang ada pada folder sumber (rsync digunakan untuk mentransfer /menyalin).

Kemudian pada folder sumber Saya menambahkan satu file yaitu ketikan.txt (ukuran file kecil misalnya 50 bytes), kemudian mengetikan perintah yang sama seperti sebelumnya, maka program rsync hanya akan melakukan transfer file ketikan.txt saja, file lagu.mp3 dan linux.iso tidak di copy ulang (rsync digunakan untuk mensinkronisasikan / menyamakan file, direktori dll dari sisi sumber ke tujuan).

lalu, diumpamakan terjadi perubahan pada file ketikan.txt di folder sumber yang semula 50 bytes sekarang menjadi 160 bytes, kemudian mengetikan perintah yang sama seperti sebelumnya, maka pada pengiriman berikutnya rsync melakukan serangkaian pengecekan perbandingan checksum terhadap blok-blok dalam file ketikan.txt di kedua sisi (tujuan & sumber) untuk meminimalisasi jumlah data yang harus ditransfer, jadi rsync bisa mengirim kurang dari 160 bytes untuk menyamakan file ketikan.txt dikedua sisi, bergantung pada seberapa mirip kedua file tersebut sebelumnya.

Berikutnya yang perlu dipahami oleh pengguna rsync, bahwa rsync membedakan keberadaan garis miring penutup dalam suatu path. misalnya,

$ rsync -av -P /home/pembega/sumber/ /home/pembega/tujuan/ <---perintah pertama
$ rsync -av -P /home/pembega/sumber /home/pembega/tujuan/  <---perintah kedua

bisa melihat perbedaan diantara perintah yang pertama dan kedua (tulisan yang berwarna merah), perintah pertama menggunakan "/" diakhiran kata sumber, sedangkan yang kedua tidak, kedua perintah ini mengakibatkan hasil yang berbeda,

hasil dari perintah pertama : semua isi dari folder sumber disalin ke folder tujuan, jadi alamatnya ditujuan /home/pembega/tujuan [file-file disini]

hasil dari perintah kedua : menyalin folder sumber + beserta isinya ke dalam folder tujuan, jadi folder tujuan yang tadinya beralamat /home/pembega/tujuan menjadi /home/pembega/tujuan/sumber [file-file disini]

Tambahan, membuat folder langsung dalam perintah  rsync :
$ rsync -av -P /home/pembega/sumber/ /home/pembega/tujuan/backup-sumber/
"dengan catatan" kita belum membuat folder "backup-sumber" secara manual di folder tujuan, maka hasilnya di tujuan adalah /home/pembega/tujuan/backup-sumber [file-file disini]


Ketikan perintah dibawah di terminal untuk menampilkan manual rsync:
$ man rsync


SYNOPSIS

Local:  rsync [OPTION...] SRC... [DEST]

Access via remote shell:
  Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
  Push: rsync [OPTION...] SRC... [USER@]HOST:DEST

Access via rsync daemon:
  Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
        rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
  Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
        rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

Untuk membaca lebih lanjutnya tentang Rsync bisa ke link berikut ini:
tutorial penggunaan rsync di everythinglinux.org

semoga bermanfaat ... 
 
 



WARNING, Apabila Anda Ingin Menyebarkan Atau Mengambil Sebagian Atau Seluruh Artikel Dari Blog Ini Harap Menyertakan Sumbernya :D . Hatur nuhun sedulur kabeh...

0 komentar:

Terima Kasih sudah berkunjung dan berkomentar, semoga menjadikan sebagai bahan pengembangan dalam penulisan selanjutnya