__________________________________
TERIMA KASIH TELAH BERKUNJUNG TEMAN !
SEBELUM MELANJUTKAN MEMBACA, TOLONG SUBSCRIBE KE CHANNEL YOUTUBE SAYA YA KAWAN.
CARANYA KLIK TOMBOL MERAH DIATAS.
____________________________________________________________________________________________________________________________________
________________________
TERIMA KASIH TELAH BERKUNJUNG TEMAN !
SEBELUM MELANJUTKAN MEMBACA, TOLONG SUBSCRIBE KE CHANNEL YOUTUBE SAYA YA KAWAN.
CARANYA KLIK TOMBOL MERAH DIATAS.
____________________________________________________________________________________________________________________________________
________________________
Rsync adalah tool untuk melakukan transfer ataupun sinkronisasi baik berupa file maupun tree (struktur direktori + isinya) secara satu arah, baik transfer lokal (di PC yang sama) maupun remote (antar PC dalam 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).
Kelebihan rsync :
- Kecepatan : rsync dapat melakukan kompresi data saat mentransfer. Rsync lebih cepat dari FTP, karena dapat melakukan pipelining tidak seperti FTP yang boros koneksi TCP/IP untuk setiap file yang ditransfer. Ini semakin kentara untuk tree yang berisi file kecil-kecil yang jumlahnya banyak, dimana rsync dapat beberapa kali hingga belasan kali lebih cepat dibandingkan FTP maupun SCP.
- Irit Bandtwith : jika di sisi penerima file yang ingin dikirimkan sudah ada, tapi belum tentu sama (misalnya lebih kecil atau lebih besar), maka rsync dapat melakukan serangkaian perbandingan checksum terhadap blok-blok dalam file di kedua sisi, untuk meminimalisir jumlah data yang harus ditransfer. Algoritma ini disebut Algoritma Rsync. Misalnya anda memiliki 2 buah versi file berukuran 500MB di dua tempat, dengan rsync mungkin hanya membutuhkan transfer data sebesar 50MB, 10MB atau bahkan di bawah itu, tergantung seberapa berbedanya file dari kedua sisi.
- Fleksibel : Rsync tidak hanya bisa mentransfer file tunggal, tapi juga direktori beserta sub direktori dan beserta seluruh file yang berada di sana. Anda bisa memilih untuk menghapus file/direktori yang sudah tidak ada dari sisi pengirim tapi masih ada di sisi penerima, anda bisa memilih untuk juga mensinkronisasi metadata file seperti permission, owner, date created, ACL, dll. Rsync dapat menangani link simbolik, hardlink, device, dll. Dan ada banyak opsi lainnya.
- Sintax dasar pada perintah rsync :
#rsync options source destination
- Transfer dari lokal ke lokal :
# rsync -av -P /lokasi/sumber /lokasi/tujuan
- Transfer dari lokal ke remote :
# rsync -e ssh -av -P -z /lokasi/sumber user@host:/lokasi/tujuan
- Transfer dari remote ke lokal :
# rsync -e ssh -av -P -z user@host:/lokasi/tujuan /lokasi/sumberParameter -a (archive) adalah untuk mensinkronkan segala sesuatu, termasuk file/direktori secara rekursif dan metadata dan file-file spesial seperti simbolik. Umumnya ini yang kita mau, tapi dalam kasus-kasus tertentu anda tidak ingin rekursif atau tidak ingin mensinkronkan salah satu dari tanggal, owner atau yang lainnya, parameter ini dapat dihilangkan dan diganti dengan parameter lain seperti -r, -g, -o.
Parameter -v (verbose) membuat rsync menampilkan 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.
Aturan penggunaan garis miring
Rsync membedakan keberadaan garis miring penutup dalam spesifikasi lokasi folder (path). Garis miring di akhir path sumber berarti menghindari pembentukan level direktori di path tujuan. Sedangkan tanpa garis miring di akhir path sumber maka pada path tujuan akan terbentuk level direktori.
Contoh :
Saya memiliki struktur folder seperti berikut.
Struktur Folder
Untuk membuat struktur folder seperti diatas ketikkan perintah-perintah berikut :
it@it-H55M-S2:~/contohrsync$ mkdir FolderA it@it-H55M-S2:~/contohrsync$ mkdir FolderA/{Folder1,Folder2,Folder3,Folder4} it@it-H55M-S2:~/contohrsync$ mkdir -p FolderA/Folder2/Folder21/Folder22-Sumber it@it-H55M-S2:~/contohrsync$ mkdir -p FolderA/Folder4/Folder41/Folder42 it@it-H55M-S2:~/contohrsync$ touch FolderA/Folder1/{File1.txt,File2.txt} it@it-H55M-S2:~/contohrsync$ touch FolderA/Folder2/Folder21/{File4.txt,File5.txt} it@it-H55M-S2:~/contohrsync$ touch FolderA/Folder2/Folder21/Folder22-Sumber/{File6.txt,File7.txt,File8.txt,File9.txt} it@it-H55M-S2:~/contohrsync$ mkdir FolderB it@it-H55M-S2:~/contohrsync$ mkdir -p FolderB/{Folder1,Folder2/Folder-Tujuan} it@it-H55M-S2:~/contohrsync$ touch /home/it/contohrsync/FolderB/Folder2/Folder-Tujuan/{FileA.txt,FileB.txt}
Akhiran garis miring di folder sumberKetikkan perintah berikut di terminal :
it@it-H55M-S2:~/contohrsync$ rsync -av -P /home/it/contohrsync/FolderA/Folder2/Folder21/Folder22-Sumber/ /home/it/contohrsync/FolderB/Folder2/Folder-Tujuan/
Hasilnya adalah :
Tanpa Akhiran garis miring di folder sumberKetikkan perintah berikut di terminal :
it@it-H55M-S2:~/contohrsync$ rsync -av -P /home/it/contohrsync/FolderA/Folder2/Folder21/Folder22-Sumber /home/it/contohrsync/FolderB/Folder2/Folder-Tujuan/
Hasilnya adalah :
Ganti nama folder di path tujuan :Ketikkan perintah berikut di terminal :
it@it-H55M-S2:~/contohrsync$ rsync -av -P /home/it/contohrsync/FolderA/Folder2/Folder21/Folder22-Sumber/ /home/it/contohrsync/FolderB/Folder2/Folder-Tujuan/gantinama
Hasilnya adalah :
Opsi-opsi yang sering digunakan pada perintah-perintah Rsync :
-v : verboseBerikut ini adalah beberapa contoh perintah rsync yang lain :
-r : meng-copy data secara recursive (namun tidak menjaga/mengikutkan timestamp dan izin akses ketika data ditransfer).
-a : archive mode, archive mode memungkinkan kita meng-copy data secara recursive dan juga menjaga/mengikutkan symbolic links, hak akses file, ownership dari user & group, dan timestamp
-z : meng-compress file/data yang ditransfer
-h : human-readable, parameter-parameter output di layar konsol ditampilkan dalam format yang mudah difahami.
- Salin / Sinkronisasi satu file pada komputer lokal
Kita akan menyalin / men-sinkronkan sebuah file ke folder /home/Rey/backup.
[Rey@localhost ~]$ rsync -zvh checkout.pdf /home/Rey/backup/1file/ created directory /home/Rey/backup/1file checkout.pdf sent 66.29K bytes received 31 bytes 132.64K bytes/sec total size is 80.28K speedup is 1.21
Pada perintah di atas, apabila di dalam folder /home/Rey/backup/ tidak terdapat folder "1file", maka folder tersebut akan diciptakan secara otomatis. Namun, jika sudah ada folder "1file", maka file checkout.pdf akan langsung di salin kedalam nya tanpa ada folder yang diciptakan.
- Salin / Sinkronisasi folder pada komputer lokal
[Rey@localhost ~]$ rsync -avzh /home/Rey/Desktop /home/Rey/backup/ sending incremental file list Desktop/ Desktop/comodo-antivirus.desktop sent 284 bytes received 35 bytes 638.00 bytes/sec total size is 213 speedup is 0.67
Hasilnya adalah folder Desktop akan diciptakan di path tujuan beserta salinan seluruh isinya, sehingga struktur folder di path tujuan menjadi /home/Rey/backup/Desktop.
- Salin folder di komputer lokal ke komputer remote
[Rey@localhost ~]$ rsync -avz /home/Rey/Desktop/ it@192.168.1.7:/home/it/pwd/ it@192.168.1.7's password: sending incremental file list ./ comodo-antivirus.desktop sent 268 bytes received 34 bytes 67.11 bytes/sec total size is 213 speedup is 0.71
Hasilnya adalah isi dari folder /home/Rey/Desktop/ (komputer lokal) disalin ke /home/it/pwd/ (komputer remote). Yang disalin ke komputer remote hanyalah isinya saja, tanpa ada pembentukan direktori baru.
[Rey@localhost ~]$ rsync -avz /home/Rey/Desktop it@192.168.1.7:/home/it/pwd it@192.168.1.7's password: sending incremental file list Desktop/ Desktop/comodo-antivirus.desktop sent 284 bytes received 35 bytes 70.89 bytes/sec total size is 213 speedup is 0.67
Nah perintah diatas akan menyalin folder Desktop dan isinya ke komputer remote. Sehingga struktur folder di komputer remote saat ini menjadi /home/it/pwd/Desktop/
- Salin folder di komputer remote ke komputer lokal
[Rey@localhost ~]$ rsync -avzh it@192.168.1.7:/home/it/pwd /home/Rey it@192.168.1.7's password: receiving incremental file list pwd/ pwd/Desktop/ pwd/Desktop/comodo-antivirus.desktop sent 38 bytes received 307 bytes 53.08 bytes/sec total size is 213 speedup is 0.62
Ini mengakibatkan folder Desktop di komputer remote beserta isinya di salin ke folder /home/it komputer lokal. Perintah diatas juga membuat direktori pwd di komputer lokal, sehingga struktur folder di komputer lokal saat ini menjadi /home/Rey/pwd/Desktop/
- Salin sebuah file dari komputer lokal ke komputer remote melalui ssh
[Rey@localhost ~]$ rsync -avz /home/Rey/Desktop it@192.168.1.7:/home/it/pwd it@192.168.1.7's password: sending incremental file list Desktop/ Desktop/comodo-antivirus.desktop sent 284 bytes received 35 bytes 70.89 bytes/sec total size is 213 speedup is 0.67
Cara ini dikenal dengan Rsync Over SSH. Dengan menggunakan SSH, maka data yang kita transfer dengan rsync di jaringan / internet tidak akan bisa dibaca karena dienkripsi. Disamping itu juga mentransfer data antar komputer dalam jaringan, kita perlu memberikan password user/root komputer remote agar bisa diakses, sehingga dengan menggunakan koneksi SSH dalam menggunakan rsync akan membuat password yang kita kirimkan dalam jaringan menjadi aman. Untuk menjalankan rsync melalui SSH, kita harus menambahkan opsi "-e" yang diikuti protocol yang digunakan dalam hal ini "ssh", dan tentunya di komputer remote harus sudah terinstall SSH Server dan di komputer lokal sudah terinstall SSH Client. Perhatikan contoh di bawah ini.
[Rey@localhost ~]$ rsync -avzhe ssh checkout.pdf it@192.168.1.7:/home/it/pwd/ it@192.168.1.7's password: sending incremental file list checkout.pdf sent 66.31K bytes received 31 bytes 12.06K bytes/sec total size is 80.28K speedup is 1.21
- Salin sebuah file dari komputer remote ke komputer lokal melalui ssh
Sama halnya dengan contoh sebelumnya, hanya saja ini adalah kebalikannya. Perhatikan contoh di bawah ini.
[Rey@localhost ~]$ rsync -avzhe ssh it@192.168.1.7:/home/it/pwd/checkout.pdf /home/Rey/pwd/ it@192.168.1.7's password: receiving incremental file list checkout.pdf sent 30 bytes received 66.31K bytes 14.74K bytes/sec total size is 80.28K speedup is 1.21
- Tampilkan Progress saat mentransfer data
Untuk melakukan hal ini kita membutuhkan opsi --progress.
[Rey@localhost ~]$ rsync -avzhe ssh --progress it@192.168.1.7:/home/it/pwd/ /home/Rey/tes it@192.168.1.7's password: receiving incremental file list created directory /home/Rey/tes ./ checkout.pdf 80.28K 100% 25.52MB/s 0:00:00 (xfer#1, to-check=0/2) sent 33 bytes received 66.33K bytes 18.96K bytes/sec total size is 80.28K speedup is 1.21
- Batasi ukuran file yang ditransfer
Untuk melakukan hal ini membutuhkan opsi "--max-size". Misal kita akan membatasi hanya file yang berukuran lebih besar atau sama dengan 150kB saja yang ditransfer, maka opsinya adalah "--max-size=150k". Untuk ukuran Mega dan Giga dapat digunakan M dan G. Contoh :
[Rey@localhost ~]$ rsync -avzhe ssh --progress --max-size='150k' it@192.168.1.7:/home/it/BACKUP/reynes/sda1-windows/User/Desktop/ /home/Rey/tes/
- Batasi bandwith yang digunakan untuk transfer
Kita juga dapat membatasi besar bandwith saat mentransfer file dengan opsi "--bwlimit". Misal kita akan membatasi bandwith saat mentransfer file sebesar 10 kB/sec, maka perintahnya :
[Rey@localhost ~]$ rsync -avzhe ssh --progress --bwlimit=10 it@192.168.1.7:/home/it/BACKUP/reynes/sda1-windows/User/Desktop/ /home/Rey/tes/ it@192.168.1.7's password: receiving incremental file list ./ PeraturanDirjenPajak_36_PBBKehutanan_2012.jpg 376.83K 44% 10.00kB/s 0:00:46
Ok, kita cukupkan perkenalan dengan rsync sampai disini. Dari segitu banyak opsi lantas untuk menggunakan rsync kita harus mulai dari mana ?.
Hm...mm.. baiklah, saya akan memberikan contoh implementasi rsync untuk menyalin data antara 2 host (PC) linux dalam jaringan lokal. Adapun topology jaringan yang saya gunakan dapat dilihat pada gambar di bawah ini :
Transfer data antar 2 host linux dengan rsync
Saya akan menggunakan metode penyalinan data dari local ke remote. Komputer local dengan ip 192.168.1.99, komputer remote dengan ip 192.168.1.7. Komputer local = fedora 18, komputer remote = ubuntu 13.10 Desktop. Perintah yang digunakan :
rsync -e ssh -av -P -z /path/local /user@host:/path/tujuan
Karena saya menggunakan protocol ssh, maka di komputer remote harus sudah terinstall ssh server dan di komputer client sudah terinstall ssh client. Kalau pada kedua host tersebut belum tersedia ssh, install dengan perintah :
sudo apt-get install ssh
sudo yum install ssh
Setelah itu pastikan dari komputer lokal (Fedora 18) bisa melakukan remote ssh ke komputer remote (Ubuntu 13.10) :
[Rey@localhost ~]$ ssh it@192.168.1.7 The authenticity of host '192.168.1.7 (192.168.1.7)' can't be established. RSA key fingerprint is 5e:87:16:65:6f:c3:49:a7:c8:39:41:4f:0d:cd:ff:34. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.1.7' (RSA) to the list of known hosts. it@192.168.1.7's password: The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. it@it-desktop:~$ exit logout Connection to 192.168.1.7 closed. [Rey@localhost ~]$
Di komputer remote (Ubuntu 13.10) buat folder /home/it/BACKUP. Disini kita akan menyalin semua isi folder "/media/mount/sda5" dan "/media/mount/sda1/Documents and Settings" (komputer lokal) ke folder "/home/it/BACKUP" (komputer remote). Dari komputer lokal (Fedora 18), salin data (sda5) menggunakan rsync ke komputer remote (Ubuntu 13.10) :
[Rey@localhost ~]$ ls -l /media/mount total 48 drwxrwxrwx 1 root root 12288 Feb 27 14:10 sda1 drwxrwxrwx 1 root root 36864 Feb 27 22:18 sda5 [Rey@localhost ~]$ rsync -e ssh -av -P -z /media/mount/sda5/ it@192.168.1.7:/home/it/BACKUP/reynes/ it@192.168.1.7's password: sending incremental file list ./ .pdf 973151 100% 14.46MB/s 0:00:00 (xfer#1, to-check=1338/1340) 111.xlsx 8260 100% 128.04kB/s 0:00:00 (xfer#2, to-check=1337/1340) 222.xlsx 8329 100% 127.09kB/s 0:00:00 (xfer#3, to-check=1336/1340) 333.xlsx . . . . www/server/UbuntuServer.vmdk 3485466624 100% 17.18MB/s 0:03:13 (xfer#181688, to-check=14/190102) www/server/UbuntuServer.vmsd 0 100% 0.00kB/s 0:00:00 (xfer#181689, to-check=13/190102) www/server/UbuntuServer.vmx 2396 100% 6.41kB/s 0:00:00 (xfer#181690, to-check=12/190102) www/server/UbuntuServer.vmxf 267 100% 0.71kB/s 0:00:00 (xfer#181691, to-check=11/190102) www/server/vmware-0.log 81769 100% 216.99kB/s 0:00:00 (xfer#181692, to-check=10/190102) www/server/vmware-1.log 80089 100% 211.38kB/s 0:00:00 (xfer#181693, to-check=9/190102) www/server/vmware-2.log 91277 100% 238.98kB/s 0:00:00 (xfer#181694, to-check=8/190102) www/server/vmware.log 132667 100% 343.65kB/s 0:00:00 (xfer#181695, to-check=7/190102) www/server/vprintproxy.log 15712 100% 40.70kB/s 0:00:00 (xfer#181696, to-check=6/190102) www/server/application/ www/server/application/application/ www/server/application/application/views/ www/server/application/application/views/Blue/ www/server/application/views/ www/server/application/views/Blue/ sent 116587300909 bytes received 3485859 bytes 10397359.14 bytes/sec total size is 149834129962 speedup is 1.29
Setelah selesai menyalin isi folder sda5, lakukan lagi penyalinan untuk folder sda1 :
[Rey@localhost ~]$ rsync -e ssh -av -P -z /media/mount/sda1/Documents\ and\ Settings/ it@192.168.1.7:/home/it/BACKUP/reynes/sda1-windows . . . . teguhpriyadisetyawan/Templates/wordpfct.wpd 30 100% 0.05kB/s 0:00:00 (xfer#136022, to-check=1/217099) teguhpriyadisetyawan/Templates/wordpfct.wpg 57 100% 0.09kB/s 0:00:00 (xfer#136023, to-check=0/217099) sent 74973849140 bytes received 2765141 bytes 10716303.05 bytes/sec total size is 104932972576 speedup is 1.40
Ok, kita sudah selesai menyalin seluruh data sda5 dan "sda1/Documents and Settings" komputer lokal ke folder /home/it/BACKUP yang ada di komputer remote. Untuk opsi-opsi yang lain dalam perintah rsync, anda dapat mencobanya sendiri, sesuai dengan kebutuhan anda. Sebagai bonus saya akan memberikan satu lagi contoh. Anggap saat ini saya sudah memiliki 1 unit PC baru terinstall OpenSUSE 12.3 dan saya ingin mengambil / menyalin / me-sinkronisasi data di komputer Ubuntu 13.10 ke komputer saya saat ini (OpenSUSE 12.3). Posisi saya berada di terminal OpenSUSE 12.3, berarti metode yang saya gunakan adalah menyalin data komputer remote ke komputer lokal, maka perintah yang harus saya ketikkan adalah :
it@OpenSUSE:~> rsync -e ssh -avzh --progress it@192.168.1.7:/home/it/BACKUP /home/it/ The authenticity of host '192.168.1.7 (192.168.1.7)' can't be established. ECDSA key fingerprint is b8:fa:19:0c:75:3f:68:09:03:85:a6:4c:46:43:7b:92. Are you sure you want to continue connecting (yes/no)? yes it@192.168.1.7's password:
Dengan perintah diatas, pada komputer OpenSUSE 12.3 saya saat ini akan terbentuk folder baru (BACKUP) di lokasi /home/it beserta seluruh isinya.
Selamat mencoba.
"Everything should be made as simple as possible but not simpler...."
"Learning by doing..."
"Less theory more result..."
Sumber :
http://tutorialubuntuindonesia.blogspot.com/2013/07/mentransfer-atau-mengcopy-file-dengan.html
http://www.tecmint.com/rsync-local-remote-file-synchronization-commands/
JANGAN LUPA DI-SUBSCRIBE CHANNEL YOUTUBE-NYA YA KAWAN !
Tidak ada komentar:
Posting Komentar