10 Contoh Perintah rsync Linux yang Berguna

Diterbitkan: 2022-10-28
Laptop Linux menampilkan prompt bash
fatmawati achmad zaenuri/Shutterstock.com

Perintah rsync Linux adalah alat penyalinan file dan sinkronisasi folder yang kuat. Berikut adalah sepuluh kasus penggunaan umum yang dapat Anda manfaatkan dengan baik di sistem Anda sendiri.

Daftar isi

Alat rsync

Alat rsync menyalin file dan direktori di antara dua komputer. Ini menggunakan algoritme canggih yang memindai pohon direktori untuk menemukan file di komputer sumber yang tidak ada di komputer tujuan. File-file ini ditransmisikan ke komputer tujuan. Apa yang membuat rync sangat pintar adalah ia dapat mengetahui bagian mana dari file yang ada yang telah dimodifikasi, dan hanya mengirimkan bagian yang diubah .

Anda dapat menggunakan rsync untuk menyalin file ke lokasi berbeda di hard drive Anda, ke hard drive berbeda di komputer yang sama, ke drive USB yang terhubung secara eksternal, atau lokasi lain yang dapat diakses jaringan.

Cara Mencadangkan Sistem Linux Anda Dengan rsync
TERKAIT Cara Mencadangkan Sistem Linux Anda Dengan rsync

Selain itu, rsync secara opsional dapat mempertahankan tautan simbolik, tautan keras, dan metadata file seperti kepemilikan file, izin, dan waktu akses. Untuk mendukung semua fungsi ini, rsync memiliki banyak opsi dan mencari semuanya membutuhkan waktu. Kami telah mengumpulkan 10 contoh ini untuk membantu Anda memulai. Kami telah menulis tentang melakukan pencadangan dengan rsync , jadi kami berkonsentrasi pada kegunaan lain di sini.

Untuk semua pilihannya, struktur perintah rsync sederhana. Kita perlu menyediakan sumber, tujuan, dan opsi yang ingin kita gunakan. Anda mungkin akan menemukan bahwa rsync sudah terinstal di komputer Linux Anda—pada semua mesin uji kami—tetapi jika belum, pasti ada di repositori distribusi Anda.

1. Salin File ke Direktori Lain

Berikut adalah contoh sederhana untuk membuat kita maju. Kita akan menyalin file dari direktori "project-files" ke direktori "Documents". Kami menggunakan dua opsi, opsi -a (arsip) dan opsi -v (verbose). Opsi verbose memberi tahu rsync untuk menjelaskan apa yang dilakukannya saat melakukannya. Opsi archive mempertahankan kepemilikan file dan beberapa item lain yang akan segera kita lihat.

Format perintahnya adalah options source-location destination-location .

 rsync -av /home/dave/project-files/ /home/dave/Documents/ 

Menyalin file ke direktori berbeda di komputer yang sama dengan rsync

Menggunakan ls pada folder "Documents" menunjukkan file telah disalin.

Mencantumkan file di direktori dokumen

Saat rsync berfungsi, file terdaftar saat disalin. Kami diberitahu:

  • Jumlah byte yang dikirim.
  • Jumlah byte yang diterima. Sebelum transfer file dilakukan, rsync harus menentukan file mana yang perlu ditransfer. Untuk melakukan itu, beberapa informasi tentang file di tujuan harus diambil oleh rsync . Informasi ini terkandung dalam byte yang diterima.
  • Kecepatan transfernya.
  • Ukuran total file yang disalin.
  • "Percepatan." Ini adalah rasio ukuran total dibagi dengan jumlah byte yang dikirim dan diterima. Semakin tinggi angka ini, semakin efisien transfernya.

Kami memodifikasi file teks di direktori sumber dan mengulangi perintah rsync .

 rsync -av /home/dave/project-files/ /home/dave/Documents/ 

Menyalin file ke direktori berbeda di komputer yang sama dengan rsync

Kali ini satu-satunya file yang perlu diperbarui adalah file teks yang kita modifikasi. Angka percepatan sekarang 30.850. Ini jauh lebih efisien untuk menyalin bagian yang dimodifikasi dari satu file itu, daripada menyalin semua file.

Opsi -a (arsip) sebenarnya mewakili kumpulan opsi lain. Ini sama dengan menggunakan semua opsi ini:

  • r : Secara rekursif bekerja melalui pohon direktori di direktori sumber dan menyalinnya ke direktori tujuan, membuatnya jika belum ada di sana.
  • l : Salin symlink sebagai symlink.
  • p : Pertahankan izin file.
  • t : Pertahankan waktu modifikasi file.
  • g : Pertahankan izin grup.
  • o : Pertahankan kepemilikan file.
  • D : Salin file khusus dan file perangkat. File khusus dapat berupa item yang berpusat pada komunikasi yang diperlakukan seperti file, seperti soket dan pipa masuk pertama, keluar pertama (fifos). File perangkat adalah file khusus yang menyediakan akses ke perangkat dan perangkat semu.

Ini adalah kombinasi yang sering digunakan sehingga rsync menyediakan opsi -a (arsip) sebagai cara singkat untuk memanggil semuanya.

2. Salin Direktori ke Direktori Lain

Jika Anda melihat perintah rsync sebelumnya, Anda akan melihat garis miring “/” di jalur file direktori sumber. Ini signifikan. Ini memberitahu rsync untuk menyalin isi direktori. Jika Anda tidak memberikan garis miring ke depan, rsync akan menyalin direktori dan isinya.

 rsync -av /home/dave/project-files /home/dave/Documents/ 

Menyalin direktori dan isinya ke direktori berbeda di komputer yang sama dengan rsync

Kali ini nama direktori ditambahkan ke nama file seperti yang terdaftar. Jika kita melihat ke dalam direktori tujuan, kita akan melihat folder sumber telah disalin dengan file di dalamnya.

 ls Dokumen/
 ls Dokumen/file proyek/ 

Mencantumkan file yang disalin di direktori yang ditransfer

3. Salin Direktori ke Drive yang Berbeda

Menyalin file ke lokasi lain pada hard drive yang sama tidak memberikan perlindungan terhadap kegagalan drive. Jika drive itu melepaskan ghost, Anda telah kehilangan salinan sumber dan tujuan dari file-file itu. Menyalinnya ke hard drive lain adalah cara yang jauh lebih kuat untuk melindungi data Anda. Yang perlu kita lakukan adalah memberikan jalur yang benar ke drive tujuan.

 rsync -av /home/dave/project-files /run/mount/drive2 

Menyalin file ke hard drive yang berbeda di komputer yang sama

Melihat hard drive lain menunjukkan kepada kita direktori dan file disalin ke sana.

 ls jalankan/mount/drive2/file-proyek/ 

Mencantumkan file yang disalin ke hard drive lain di komputer yang sama

TERKAIT: Apa yang Harus Dilakukan Saat Hard Drive Anda Gagal

4. Lakukan Lari Kering Terlebih Dahulu

Sebelum kita melihat bagaimana rsync dapat menghapus file secara berguna untuk kita, mari kita lihat bagaimana kita dapat membuat rsync melakukan dry run.

Dalam proses kering, rsync melakukan gerakan melakukan tindakan yang kami minta, tetapi tidak benar-benar melakukannya. Ini melaporkan apa yang akan terjadi jika perintah telah dieksekusi. Dengan cara ini, kita dapat memastikan bahwa perintah melakukan persis seperti yang kita harapkan.

Untuk memaksa lari kering, kami menggunakan opsi --dry-run .

 rsync -av --dry-run /home/dave/geocoder /run/mount/drive2 

Melakukan dry run dari perintah rsync

File yang akan disalin terdaftar untuk kami, dan kami mendapatkan statistik biasa, diikuti oleh pesan (DRY RUN) sehingga kami tahu tidak ada yang benar-benar terjadi.

5. Menghapus File di Direktori Tujuan

Opsi --delete memberitahu rsync untuk menghapus file dan direktori di direktori tujuan yang tidak ada di direktori sumber. Ini berarti direktori tujuan akan menjadi salinan persis dari direktori sumber. Kami akan berhati-hati dan menggunakan opsi --dry-run terlebih dahulu.

 rsync -av --delete --dry-run /home/dave/geocoder /run/mount/drive2 

Melakukan dry run dari perintah rsync yang dapat menghapus file

Kami diberitahu bahwa dua file akan dihapus. Jika kami yakin kami tidak peduli bahwa mereka akan dihapus, kami dapat menghapus opsi --dry-run dan menjalankan perintah secara nyata.

 rsync -av --delete /home/dave/geocoder /run/mount/drive2 

Menyalin file dan menghapus file dari direktori tujuan yang tidak ada di direktori sumber

Kali ini isi direktori disinkronkan dan dua file tambahan dihapus.

6. Menghapus File Sumber

Anda dapat memilih untuk menghapus file sumber setelah transfer berhasil , membuat rsync beroperasi lebih seperti pemindahan daripada salinan. Jika transfer tidak berhasil, file sumber tidak akan dihapus. Opsi yang perlu kita gunakan adalah --remove-source-files .

 rsync -av --remove-source-files /home/dave/geocoder /run/mount/drive2 

Memaksa rsync untuk menghapus file sumber setelah transfer berhasil

Perhatikan bahwa file dapat dihapus meskipun tidak ada file yang ditransfer. Itu karena jika rsync memeriksa, dan semua file sudah ada di direktori tujuan dan tidak ada yang bisa dilakukan rsync , rsync menganggap bahwa transfer berhasil.

Juga, rsync hanya menghapus file dari direktori sumber. Itu tidak menghapus direktori sumber atau sub-direktori apa pun, hanya file di dalamnya. Kita dapat melihat ini dengan menggunakan opsi -R (rekursif) dengan ls , pada direktori sumber.

 ls -R geocoder 

Pohon direktori kosong setelah rsync menghapus file sumber

7. Salin File ke Komputer Jarak Jauh

Untuk menyinkronkan folder dengan komputer jarak jauh, rsync harus diinstal di kedua komputer. Siapkan komunikasi SSH antara dua komputer sebelum Anda mencoba menggunakan rsync ke komputer jarak jauh.

Cara Membuat dan Menginstal Kunci SSH Dari Shell Linux
TERKAIT Cara Membuat dan Menginstal Kunci SSH Dari Shell Linux

Anda harus dapat masuk dari jarak jauh sebagai pengguna biasa di komputer jarak jauh agar rsync berfungsi. Tidak masalah apakah Anda menggunakan ID dan kata sandi untuk masuk, atau jika Anda telah menyiapkan kunci SSH untuk akses tanpa kata sandi yang aman, tetapi jika Anda tidak dapat masuk sebagai pengguna, maka rsync tidak akan berfungsi salah satu.

Jika Anda masuk dengan kata sandi, rsync akan meminta kata sandi Anda. Jika Anda menggunakan kunci SSH untuk masuk, prosesnya mulus.

Satu-satunya hal tambahan yang perlu Anda lakukan adalah menambahkan nama akun pengguna dan alamat IP komputer jarak jauh ke awal jalur file tujuan. Gunakan tanda “ @ ” untuk memisahkan nama pengguna dari nama komputer atau alamat IP, dan tanda titik dua “ : ” untuk memisahkan nama komputer atau alamat IP dari jalur direktori.

Di jaringan pengujian kami, kedua perintah ini setara.

 rsync -av /home/dave/geocoder [email protected]:/home/dave/Downloads
 rsync -av /home/dave/geocoder [email protected]:/home/dave/Downloads 

Menyalin file ke komputer jarak jauh melalui SSH dengan rsync

Kami mendapatkan informasi yang sama yang dilaporkan kepada kami seperti yang kami lakukan saat menyalin file secara lokal.

8. Sertakan atau Kecualikan File atau Direktori

Anda mungkin memiliki file dan direktori di direktori sumber yang tidak ingin Anda salin ke komputer tujuan. Anda dapat mengecualikannya menggunakan opsi --exclude . Dengan cara yang sama, Anda dapat memilih untuk menyertakan file dan direktori tertentu dengan opsi --include .

Keunikannya adalah jika Anda menggunakan opsi --include sendiri, semua file akan disalin, seperti biasa—termasuk file yang Anda sertakan secara khusus. Untuk hanya menyalin file yang disertakan, Anda harus --exclude yang lainnya.

Anda dapat menggunakan opsi --include dan --exclude dalam perintah sebanyak yang Anda suka, tetapi pastikan Anda meletakkan opsi --include sebelum opsi --exclude Anda. Juga, pastikan Anda memiliki garis miring di jalur file sumber Anda.

Perintah ini hanya menyalin file kode sumber C dan file data CSV ke komputer tujuan.

 rsync -av --include="*.c" --include="*.csv" --exclude="*" /home/dave/geocoder/ /run/mount/drive2/geocoder

Menggunakan rsync untuk menyalin file yang dipilih ke hard drive yang berbeda di komputer yang sama

Satu-satunya file yang disalin adalah yang kami sertakan secara khusus.

9. Kompres File dalam Transfer

Opsi -z (kompres) menyebabkan rsync mengompresi file yang ditransfer. Mereka tidak disimpan sebagai file terkompresi di komputer tujuan, mereka hanya dikompresi selama transfer itu sendiri. Ini dapat mempercepat transfer yang lama.

 rsync -avz /home/dave/geocoder /run/mount/drive2 

Mengompresi file saat ditransfer dengan opsi -z rsync

10. Memantau Kemajuan

Berbicara tentang transfer yang panjang, kami dapat menambahkan beberapa statistik sehingga kami dapat melihat kemajuan transfer.

Opsi -P (parsial, kemajuan) sebenarnya menambahkan dua opsi, --partial dan --progress . Opsi --partial memberitahu rsync untuk menyimpan sebagian file yang ditransfer jika transfer gagal. Ini menghemat waktu saat transfer dimulai ulang.

Opsi --progress mencetak, untuk setiap file, data yang ditransfer dalam byte dan sebagai persentase, kecepatan transfer, waktu yang dibutuhkan, jumlah file yang ditransfer, dan jumlah file yang tersisa.

 rsync -aP /home/dave/geocoder /run/mount/drive2 

Menggunakan opsi -P untuk menyediakan statistik untuk transmisi setiap file

Keluaran bergulir cukup cepat, dan sulit dibaca. Anda dapat sedikit memperbaikinya dengan menghapus opsi -v (verbose) dari perintah. Bahkan saat itu masih sulit dibaca karena mendesing.

Statistik transfer untuk setiap file yang ditransfer

Seringkali lebih berguna untuk memantau kemajuan transfer secara keseluruhan. Anda dapat melakukan ini dengan opsi –info, dan meneruskannya “progress2” sebagai parameter.

 sync -a --info=progress2 /home/dave/geocoder /run/mount/drive2 

Statistik untuk transfer rsync keseluruhan

Ini memberikan laporan kemajuan yang sebenarnya berguna.

Suka cp di Steroid

Perintah rsync cepat, fleksibel, dan sepadan dengan waktu yang diperlukan untuk membiasakan diri dengannya. Bentuk dasar dari perintah rsync dengan opsi -av , direktori sumber, dan direktori tujuan tidak sulit untuk diingat sama sekali.

Untuk banyak kasus penggunaan, hanya itu yang Anda butuhkan. Dapatkan nyaman dengan itu dan sisanya akan datang dengan mudah.

TERKAIT: Panduan Non-Pemula untuk Menyinkronkan Data dengan Rsync