rsync: The Best Tool for Backing Up Data
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:
Fitur | cp | rsync |
---|---|---|
Sinkronisasi | Tidak ada sinkronisasi | Sinkronisasi hanya file yang berubah / belum ada |
Jaringan | Tidak mendukung koneksi ke jaringan | Mendukung jaringan melalui SSH |
Kecepatan | Menyalin semua file | Lebih cepat karena hanya menyalin perubahan saja |
Melanjutkan Proses | Tidak | Bisa melanjutkan transfer yang terputus |
Fitur Tambahan | Sederhana, sedikit opsi | Banyak 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:
Distro | Command |
---|---|
Debian/Ubuntu | sudo apt install rsync |
Arch Linux | sudo pacman -Sy rsync |
Fedora | sudo dnf install rsync |
Opensuse | sudo 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/
Keterangan:
- -a : archive mode, menyalin data dengan tetap mempertahankan atribut-atributnya (timestamps, permissions, owner, etc)
- -r : recursive, mengambil semua file yang ada di dalam direktori
- -z : compress, mengkompres data selama proses transfer
- -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.
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 sistem operasi Debian dengan Tema: 52 Hz