Perintah rsync Linux: sinkronkan berkas dan periksa dry-run
Perintah rsync menyalin berkas dan menyinkronkan perubahan antara lokasi lokal atau remote. Mulailah dengan --dry-run untuk memeriksa rencana perubahan, lalu pastikan urutan sumber–tujuan dan garis miring akhir benar sebelum menjalankan salinan sebenarnya.
Secara bawaan, rsync memilih berkas yang perlu diperbarui berdasarkan ukuran dan waktu modifikasi. Mode arsip -a menggabungkan penyalinan rekursif dengan pelestarian sejumlah atribut. Sinkronisasi berulang berguna untuk memperbarui salinan, tetapi penggantian atau penghapusan yang salah juga dapat diterapkan pada tujuan.
Sintaks dan persiapan direktori
rsync [opsi] sumber tujuan
opsi, sumber, dan tujuan adalah penanda. Periksa rsync --version serta man rsync pada sistem yang digunakan. Siapkan direktori sumber yang dapat dibaca, ruang tujuan, dan izin tulis yang sesuai. Contoh lokal mengasumsikan Anda menjalankannya dari direktori yang berisi project dan backup; buat direktori induk backup terlebih dahulu jika belum ada.
Nama jalur yang sama dapat menunjuk lokasi berbeda jika direktori kerja berubah. Sebelum menjalankan perintah, pastikan lokasi kerja dan isi sumber benar, terutama bila sumber atau tujuan berada pada media yang perlu dipasang. Direktori kosong akibat media belum terpasang bukan bukti bahwa data memang sudah tidak dibutuhkan.
Pratinjau sebelum melakukan perubahan
rsync -av --dry-run project/ backup/project/
Perintah ini merencanakan penyalinan isi project/ ke backup/project/. Opsi -v menampilkan rincian, sedangkan --dry-run tidak menerapkan perubahan. Baca daftar dan pastikan berkas berasal dari project yang dimaksud serta lokasi penerima benar.
Pratinjau bukan jaminan bahwa penyalinan berikutnya pasti berhasil: sumber, tujuan, ruang, dan izin dapat berubah di antaranya. Gunakan rencana yang baru dengan argumen yang sama dengan eksekusi sebenarnya. Jangan menganggap statistik pratinjau sebagai ukuran jumlah data atau kecepatan transfer aktual.
Menyinkronkan direktori lokal
rsync -av project/ backup/project/
Setelah rencana diperiksa, jalankan bentuk tanpa --dry-run untuk menerapkan salinan. Dengan project/ sebagai sumber, berkas project/notes.txt diharapkan berada pada backup/project/notes.txt. Periksa hasil itu pada tujuan setelah proses selesai.
Tanpa opsi penghapusan, berkas yang hanya ada pada tujuan umumnya tetap ada. Jadi, perintah ini bukan jaminan dua direktori menjadi cermin identik. Perubahan yang memenuhi kriteria pembaruan dapat menimpa berkas tujuan dengan nama sama; simpan versi sebelumnya secara terpisah jika perlu pemulihan.
Perbandingan ukuran dan waktu modifikasi adalah pemilihan berkas untuk pembaruan, bukan pembuktian bahwa setiap berkas yang dilewati identik byte demi byte. Untuk hasil penting, tambahkan pemeriksaan isi yang sesuai dengan kebutuhan, bukan hanya membaca daftar nama.
Mengirim melalui SSH
rsync -av project/ alice@server.example.com:/home/alice/project/
Bentuk pengguna@host:jalur memakai koneksi shell remote, lazimnya Secure Shell (SSH). rsync perlu tersedia di kedua sisi dan akun alice harus mempunyai izin pada /home/alice/project/. Ganti server.example.com dan akun contoh dengan nilai yang benar.
Verifikasi kunci host dan autentikasi seperti pada koneksi SSH ke server. Jika memakai port lain, pola -e 'ssh -p port' memilih perintah SSH serta portnya; port adalah penanda angka sebenarnya. Bentuk host::modul atau rsync:// menggunakan akses daemon dan berbeda dari contoh SSH ini.
Saat masalah terjadi, bedakan kegagalan koneksi SSH, rsync yang tidak tersedia di sisi remote, dan izin tujuan. Berhasil masuk lewat SSH belum memastikan ruang penyimpanan serta hak tulis pada direktori target mencukupi.
Garis miring akhir dan potongan keluaran
rsync -av --dry-run source/ backup/
Jika source/ berisi notes.txt yang belum ada pada tujuan, potongan daftar pratinjau dapat berbentuk berikut. Ini adalah ilustrasi dari sumber; keluaran lengkap dapat menyertakan baris direktori dan ringkasan lain.
sending incremental file list
notes.txt
Dengan backup/ sebagai direktori tujuan yang sudah ada, source/ menyalin isi ke backup/notes.txt. Jika sumber ditulis source tanpa garis miring akhir, direktori bernama source ikut dibuat di bawah tujuan, sehingga contoh berkas berada pada backup/source/notes.txt. Pertahankan kondisi tujuan yang sama saat membandingkan kedua bentuk.
Untuk mencoba perbedaannya, gunakan direktori percobaan dengan satu berkas yang dikenali dan dua tujuan kosong terpisah. Bandingkan rencana --dry-run terlebih dahulu sebelum menerapkan salinan. Jangan mengubah sumber sekaligus opsi penghapusan pada salinan data utama hanya untuk mengamati perbedaan jalur.
Opsi yang perlu dibedakan
| Opsi | Fungsi dan batasnya |
|---|---|
-a |
Mode arsip: penyalinan rekursif dan pelestarian sejumlah atribut. |
-v |
Menampilkan rincian proses. |
-n, --dry-run |
Pratinjau rencana tanpa menerapkan perubahan. |
--delete |
Menghapus berkas tujuan yang tidak ada pada sumber dalam cakupan sinkronisasi dan aturan filter. |
--exclude=pola |
Mengecualikan kecocokan pola; perhatikan interaksinya dengan filter penghapusan. |
-e 'ssh -p port' |
Memilih shell remote dan port SSH. |
-a bukan pelestarian otomatis semua atribut. Access Control List (ACL), yaitu daftar kendali akses, atribut tambahan atau extended attributes, serta hubungan hard link memerlukan perhatian dan opsi tersendiri. Hard link berarti beberapa nama menunjuk data berkas yang sama. Kemampuan sistem berkas tujuan dan hak pengguna tetap membatasi metadata yang dapat disimpan.
Jika metadata itu penting, tentukan apa yang harus dipulihkan sebelum memilih opsi. Salinan isi berkas yang berhasil dibaca belum membuktikan izin, kepemilikan, atau hubungan antarberkas sudah sesuai kebutuhan pemulihan.
Memeriksa penghapusan dan kemampuan pemulihan
Gunakan --delete hanya jika tujuan memang perlu membuang item yang tidak lagi ada pada sumber. Periksa sumber, tujuan, garis miring, dan filter melalui --dry-run dengan opsi yang benar-benar akan digunakan. Tinjau setiap rencana penghapusan; jika daftar tidak sesuai harapan, hentikan dan perbaiki argumennya sebelum eksekusi.
Filter dapat memengaruhi item yang dikirim maupun dilindungi dari penghapusan. Jangan menilai cakupan penghapusan hanya dari nama --exclude tanpa membaca aturan lengkap. Simpan salinan terpisah atau versi sebelumnya untuk data yang perlu dapat dikembalikan setelah kesalahan.
Setelah eksekusi, periksa status keluar dan pesan galat, lalu verifikasi berkas penting di tujuan. Bandingkan jumlah, ukuran, dan bila perlu checksum, yaitu nilai ringkas isi berkas, memakai metode yang sama di kedua sisi. Jumlah atau ukuran saja tidak membuktikan isi identik.
rsync dapat menjadi bagian alur pencadangan, tetapi sinkronisasi yang menyalin kerusakan atau kesalahan sumber bukan pengganti versi cadangan dan uji pemulihan. Untuk memperluas pemeriksaan, lihat panduan berbahasa Inggris tentang cadangan tar dan verifikasi hasil pemulihan serta pencadangan server dan pemeriksaan kondisi secara independen. Rincian opsi tersedia dalam manual resmi rsync.
FAQ
Apa perbedaan source dan source/ pada rsync?
Untuk direktori tujuan yang sudah ada, source/ menyalin isinya langsung ke tujuan. source menyertakan nama direktori itu di bawah tujuan. Periksa jalur yang direncanakan dengan --dry-run.
Apakah -a berarti salinan sudah menjadi cadangan lengkap?
Belum tentu. Periksa metadata yang diperlukan, kemampuan tujuan, versi data yang disimpan, dan hasil uji pemulihan. ACL, atribut tambahan, dan hard link tidak otomatis semuanya tercakup oleh -a.




