Skip to main content
  1. Teches/

rsync: A Powerful Tool for Backing Up Data

·4 mins· ·
Rsync Rsync Backup
Wildan
Author
Wildan
An Ordinary Human Being
Table of Contents

rsync adalah utility atau tools atau aplikasi berbasis terminal (CLI-based) yang digunakan untuk melakukan back up data. Kalau merujuk pada definisi resmi dari halaman manual (man page)-nya, rsync is a fast, versatile, remote (and local) file-copying tool . Yap, sebetulnya, rsync pada dasarnya memang mirip seperti cp yang digunakan untuk meng-copy file, tapi rsync tidak sama dengan cp. Berikut adalah perbandingan rsync dan cp (menurut ChatGPT) sehingga rsync bisa dibilang sebagai tools yang lebih fleksibel dan lebih canggih dibandingkan cp:

Fiturcprsync
SinkronisasiTidak ada sinkronisasiSinkronisasi hanya file yang berubah / belum ada
JaringanTidak mendukung koneksi ke jaringanMendukung jaringan melalui SSH
KecepatanMenyalin semua fileLebih cepat karena hanya menyalin perubahan saja
Melanjutkan ProsesTidakBisa melanjutkan transfer yang terputus
Fitur TambahanSederhana, sedikit opsiBanyak opsi (compress, progress, delete)

Karena rsync hanya meng-copy file atau data yang belum ada atau berubah saja, maka proses copy data via rsync menjadi relatif lebih cepat dibandingkan dengan copy data via cp. Intinya, rsync dapat bekerja lebih efektif ada efisien dalam hal copy data dibandingkan cp. Oleh karena itu, rsync sangat cocok digunakan untuk melakukan backup data.

Instalasi rsync
#

Cara instalasi rsync di masing-masing distro:

DistroCommand
Debian/Ubuntusudo apt install rsync
Arch Linuxsudo pacman -Sy rsync
Fedorasudo dnf install rsync
Opensusesudo zypper install rsync

Demonstrasi
#

Pola dasar perintah rsync sangat sederhana, sebagai berikut:

rsync [options] [source] [destination] 

Misalnya, saya ingin mem-backup seluruh file yang ada di folder/direktori ~/Templates ke direktori ~/backup, maka perintahnya:

rsync -arzv ~/Templates/ ~/backup/
Penting! Pastikan kita menambahkan tanda garis miring atau slash [ / ] di akhir nama direktori jika kita hanya ingin meng-copy isi file yang terdapat di dalam direktori tersebut. Dengan kata lain, kita tidak ingin direktori ~/Templates tersebut juga ikut ter-copy.

Keterangan:

  1. -a : archive mode, menyalin data dengan tetap mempertahankan atribut-atributnya (timestamps, permissions, owner, etc)
  2. -r : recursive, mengambil semua file yang ada di dalam direktori
  3. -z : compress, mengkompres data selama proses transfer
  4. -v : verbose, meningkatkan verbosity

Berikut demo-nya:

Tentang watch:
Saya menggunakan perintah watch berikut untuk memantau aktivitas di dalam direktori ~/backup:

watch -n 2 ls -l

Artinya, saya akan menginputkan perintah ls -l setiap 2 detik.

Selain digunakan untuk melakukan backup pada komputer lokal, rsync juga dapat digunakan untuk melakukan backup secara remote pada komputer server. Pola perintahnya juga masih sama seperti yang saya sampaikan di awal bagian demonstrasi ini. Hanya saja, kita perlu mengganti bagian source atau destination-nya dengan remote server yang ingin di-backup atau mem-backup. Sehingga kira-kira pola perintahnya akan seperti ini jika kita ingin melakukan backup dari sebuah server:

rsync [options] [username@ip-or-hostname:/source/path] [destination] 

Atau jika ingin melakukan backup ke sebuah server:

rsync [options] [source] [username@ip-or-hostname:/dest/path] 

Misalnya, saya ingin mem-backup file-file dari direktori ~/Templates yang ada di komputer saya ke direktori ~/backup di server Ubuntu 20.04, maka perintahnya adalah sebagai berikut:

rsync -arzv ~/Templates/ wildan@192.168.0.114:~/backup/

Berikut demonya:

Kiri adalah komputer lokal saya:Debian, kanan adalah komputer server:Ubuntu

Notes:
Ketika akan melakukan backup ke atau dari server, kita akan diminta untuk memasukkan password, karena memang rsync menggunakan SSH sebagai protokol komunikasinya.

Berikutnya, saya juga akan menunjukkan bagaimana rsync meng-handle hanya file yang belum ada atau berubah saja, artinya, tidak semua file yang akan ter-copy, tapi hanya file-file yang berubah atau belum ada saja yang akan ditambahkan dan atau diperbarui (di-update) sehingga lebih efisien dalam melakukan backup data.

Perhatikan, saya akan melakukan backup data dari direktori ~/Templates (di sebelah kiri) ke direktori ~/backup (di sebelah kanan). Secara rinci, saya akan memindahkan / meng-copy 3 file baru, yaitu baloon.jpg, ipaddr.sh, dan sample.pdf dari ~/Templates ke ~/backup serta memperbarui / meng-update isi konten pada file greetings.txt.

Gimana? Mudah bukan?
Kalau masih bingung atau mau explore lebih jauh tentang rsync, jangan sungkan-sungkan untuk baca-baca manual page-nya dengan perintah man rsync atau berselancar dan bertanya ke mbah Google atau mas ChatGPT ya. Berikut saya coba lampirkan cheatsheet rsync yang barangkali bisa sedikit membantu :)

rsync cheatsheet: https://devhints.io/rsync


Artikel ini ditulis menggunakan distro linux Debian dengan Tema: 52 Hz

ss1
Whalien 52 - Paus paling kesepian di dunia

Related

netcat: The Simplest Way to Transfer File
·2 mins
Netcat File Transfer Netcat
Learn the best way to transfer file(s) through a network.
Steganography - Hiding secret(s) Inside A File
·8 mins
Steganography Steganography Hacking Cyber Security
Steganography is the practice of representing information within another message or physical object.
Building VPN Server using OpenVPN
·3 mins
Openvpn Vpn Server Openvpn
A step by step vpn server installation using openvpn~