Langsung ke konten utama

Cara Mentransfer atau mengcopy file dengan cepat menggunakan rsync di Linux Ubuntu

ita bertemu lagi di blog Tutorial Linux Ubuntu Berbahasa Indonesia. Pernah tidak anda mengalami kejadian dimana anda harus mentransfer file dari satu server ke server yang lain, dan saat anda melakukannya dengan meremote salah satu server tersebut dan melakukan transfer file dengan scp. Apa yang anda rasakan? Apakah proses tersebut berjalan seperti yang anda inginkan? Tidak tau apa yang terjadi pada anda, tapi ketika saya melakukannya remote saya terputus dan ketika saya masuk kembali proses tersebut terhenti! Sangat menyebalkan! >_<
Berbagai cara saya coba untuk melakukannya dengan benar namun tidak ada satupun yang membuktikan cara yang efektif, sampai akhirnya saya menemukan sebuah cara yang mungkin cukup jarang orang melakukannya dengan ini untuk urusan transfer file biasa. Entahlah, pada awalnya saya hanya tau bahwa rsync adalah salah satu perintah linux yang diidentikan dengan mirroring file pada server (CMIIW). Setelah menemukan beberapa referensi untuk dipelajari, pada artikel ini saya akan sedikit membagikan knowledge saya mengenai cara cepat mentransfer atau mengcopy file menggunakan rsync di linux kepada anda.

[ Rsync adalah . . . ]

Rsync adalah tool untuk melakukan transfer atau sinkronisasi file atau tree (struktur direktori beserta semua isinya) secara satu arah, baik transfer lokal (di pc yang sama) maupun remote (jaringan). Fungsi rsync mirip dengan tools seperti scp, mv, cp, ftp client. Rsync biasanya digabungkan dengan SSH sebagai metode transfer remotenya, walaupun dapat juga diatur untuk menjadi daemon sehingga tidak memerlukan SSH. Untuk kasus-kasus tertentu rsync juga dapat digunakan menggantikan HTTP Client (seperti wget).

[ Kenapa harus rsync . . . ? ]

Jika pertanyaan ini yang ada dibenak anda jawabannya adalah, pertama kecepatan, rsync dapat melakukan kompresi data saat transfer. Dibandingkan dengan FTP pun rsync lebih cepat karena dapat melakukan pipelining, sementara transfer menggunakan ftp boros koneksi TCP/IP untuk setiap file yang ditransfer. Ini akan semakin kentara untuk tree berisi file kecil-kecil yang jumlahnya banyak, dimana rsync dapat beberapa kali hingga belasan kali lebih cepat dibandingkan FTP maupun SCP.
Kedua, jika metode ini dilakukan dalam jaringan internet maka irit bandwidth. jika dii sisi penerima file yang ingin dikirimkan sudah ada, tapi belum tentu sama (misalnya ukurannya lebih kecil atau lebih besar atau terdapat perbedaan karena versinya lebih lama), maka rsync dapat melakukan serangkaian pengecekan perbandingan checksum terhadap blok-blok dalam file di kedua sisi, untuk meminimalisir jumlah data yang harus di transfer. Algoritma ini disebut algoritma rsync. Bahkan sebetulnya rsync berawal dari sebuah paper yang menjelaskan algoritma ini. Jadi, misalnya anda memiliki 2 buah versi file berukuran kurang lebih 500 MB di dua tempat, dengan rsync anda mungkin hanya membutuhkan transfer data sebesar 50 MB, 10 MB atau bahkan dibawah 50, itu tergantung seberapa berbedanya file dari kedua sisi.
Ketiga, dibandingkan dengan metode lain rsync jauh lebih fleksibel. Rsync tidak hanya bisa mentransfer file tunggal, tapi juga direktori beserta sub direktori dan beserta seluruh file yang berada disana. Anda bisa memilih untuk menghapus file/direktori yang sudah tidak ada dari sisi pengirim tapi masih ada di sisi penerima, anda bisa memilih untuk mensinkronisasi juga metadata file seperti permission, owner, date created, ACL, dll. Rsync dapat menangani link simbolik, hardlink, device, dll. Dan ada banyak options lainnya, termasuk yang sering dijumpai di tool lain seperti tar, cp, dll.

[ Cara penggunaan ]

Pada umumnya perintah-perintah ini yang sering digunakan. Untuk transfer lokal ke lokal (di pc yang sama) bisa dengan melakukan perintah ini :
# rsync -av -P /path/sumber /path/tujuan
Untuk transfer lokal ke remote :
# rsync -e ssh -av -P -z /path/sumber user@host:/path/tujuan
Untuk transfer remote ke lokal :
# rsync -e ssh -av -P -z user@host:/path/sumber /path/tujuan
Keterangan :
Parameter -a (archive) adalah untuk mensinkronkan segala sesuatu, termasuk file / direktori secara rekursif dan metada dan file-file spesial seperti link simbolik. Umumnya ini yang kita mau, tapi dalam kasus-kasus tertentu dimana anda tidak ingin rekursif atau tidak ingin mensinkronkan salah satu dari tanggal atau owner atau yang lain, parameter ini dapat dihilangkan dan diganti dengan parameter lain seperti -r, -g, -o.
Parameter -v (verbose) membuat rsync memperlihatkan ke layar nama-nama file yang sedang ditransfer. Parameter ini membuat rsync lebih verbose lagi, yaitu menampilkan juga proses transfer. Jika menggunakan rsync dalam script non interaktif bisa jadi output yang dihasilkan terlalu banyak, maka dalam kasus tersebut kita dapat menghilangkan parameter ini dan -P.
Parameter -z (compress) membuat rsync mengkompress data yang akan ditransfer. Inilah sebabnya saya menganggap ini irit bandwidth. Untuk transfer remote, gunakan parameter lain, kecuali jika anda berada di internet yang amat cepat bahkan lebih cepat dari bandwidth harddisk (misalnya gigabit ethernet).

[ Akhiran garis miring ]

Ini benar-benar perlu saya ingatkan kepada anda yang menggunakan rsync, karena seringkali menjebak dan membuat bingung, rsync membedakan keberadaan garis miring penutup dalam spesifikasi path.
Garis miring diakhir path sumber berarti menghindari pembentukan level direktori tambahan.
# rsync -av /home/apocalypsix/data/debian /backup/
Maka hasilnya adlaah /home/apocalypsix/data/debian karena path sumber tidak diakhiri garis miring. Tapi jika kita menambahkan garis miring :
# rsync -av /home/apocalypsix/data/debian/ /backup/
maka isi dari direktori debian-lah yang akan tersalin ke /backup/ (kemungkinan ini bukan hal yang Anda inginkan, karena direktori /backup/ mungkin saja berisi hal-hal lain). Jika Anda ingin mengganti nama debian di path tujuan, maka sintaks berikut ini yang benar:
# rsync -av /home/apocalypsix/data/debian/ /backup/mirror-debian

Saya rasa sudah cukup untuk penjelasannya, jika anda ingin bertanya silahkan posting dikomentar. Semoga bermanfaat untuk anda,

Semoga bermanfaat,
Salam penguin! :)

Komentar

Postingan populer dari blog ini

hacking

How To Create Facebook Phishing Android Application (No Coding Needed) by PicaTesHackZ · Published January 18, 2015 · Updated September 3, 2016 image: https://i0.wp.com/picateshackz.com/wp-content/uploads/2015/01/fb2Bandroid2Bapp.jpg?resize=400%2C376 In this tutorial i’m going to explain how to make an android application with facebook phishing method, so you can get the username and password of each person who login to facebook using this app.  Note: This post is updated with new undetectable phishing files This app is actually looks like real facebook app with real facebook icon so victim can’t find out whether it’s a fake facebook application or not. Sending fake page’s url to victim is not possible now a days ,that method is easily detectable in firefox and google chrome browsers that’s why i’m tested this new method to phishing facebook and it works good. Read my previ...

Tentang Iptables - Drop all allow some Vs. Allow all drop some

Ketemu lagi di blog Tutorial Linux Ubuntu Berbahasa Indonesia. Kali ini kita berbicara tentang security, berbicara tentang security sudah tentu ini berkaitan dengan firewall. Pada linux atau unix, ada beberapa metode untuk memasang firewall. Sebagian ada yang memakai iptables, sebagian lagi menggunakan ufw. Saya sendiri lebih familiar dengan iptables. Seorang administrator tentunya tidak mau kan server-nya dijebol oleh pihak-pihak yang tidak bertanggung jawab. Jika hal itu terjadi rasanya langit telah runtuh tepat diatas kepala. Dalam hal keamanan linux mempunyai keunggulan jauh lebih baik daripada windows. Seperti kita tau bahwa Linux/Unix selain mempunyai tingkat keamanan yang tinggi, juga mempunyai umur yang lebih panjang daripada windows. Artikel ini akan membahas bagaimana caranya mencegah hal itu terjadi, saya akan menjelaskan beberapa cara menggunakan iptables sebagai firewall kita. Ada beberapa metode yang bisa kita gunakan, " Drop all allow some" atau ...

Kumpulan Perintah -Perintah Dasar di Linux Part 2

bertemu lagi dengan saya di blog Tutorial Linux Untuk Pemula. Pada postingan sebelumnya saya sudah menuliskan banyak perintah-perintah dasar di linux (part 1) . Pada postingan ini saya akan melanjutkan tugas saya berbagi dengan anda, blog ini adalah lanjutan dari postingan saya sebelumnya karena masih banyak perintah-perintah yang harus anda ketahui di linux. Oke langsung saja ya :D [ cat ] Teman kita yang satu ini bernama cat, tapi bukan kucing ya! :D untuk singkatan nya saya juga tidak ta u apa, tapi yan g pasti cat bisa kita gun akan untuk melihat isi file tanpa harus membuka file tersebut. Cara penggunaan : root@apocalypsix:# cat blogging.txt Perintah diatas akan menampilkan isi dari file blogging.txt tanpa harus membukanya. [ tail ] Selanjutnya ada tail , biasanya tail digunakan untuk meng ikuti perkembangan dari sebuah file se cara real t ime. Seperti misalnya pada file access.log milik apache. Jika server anda adalah termasuk server yang sibuk dari transaksi web, log ny...