GNU/Linux >> Belajar Linux >  >> Linux

Perintah Rsync:20 Contoh Bermanfaat di Linux

Pendahuluan

Rsync, atau Sinkronisasi Jarak Jauh, adalah alat baris perintah gratis yang memungkinkan Anda mentransfer file dan direktori ke tujuan lokal dan jarak jauh. Rsync digunakan untuk mirroring, melakukan backup, atau migrasi data ke server lain.

Alat ini cepat dan efisien, hanya menyalin perubahan dari sumber dan menawarkan opsi penyesuaian.

Ikuti tutorial ini untuk mempelajari cara menggunakan rsync dengan 20 contoh perintah untuk mencakup sebagian besar kasus penggunaan di Linux.

Prasyarat

  • Pengguna dengan sudo atau root hak istimewa
  • Akses ke terminal/baris perintah
  • Akses SSH untuk contoh rsync jarak jauh

Sintaks Perintah Rsync

Sintaks untuk rsync perintah berubah tergantung pada penggunaan alat. Kami akan membahas semua skenario dalam contoh berikut. Sintaks Rsync dalam bentuk paling dasar terlihat seperti ini:

rsync options SOURCE DESTINATION

Transfer data jarak jauh mengharuskan Anda menentukan alamat host, tetapi lebih lanjut tentang itu nanti.

Opsi Rsync

Alat rsync hadir dengan banyak opsi. Anda dapat memasukkan rsync di terminal Anda dan dapatkan semua detailnya. Kami akan mencantumkan beberapa opsi rsync yang paling umum.

Ini termasuk:

-r Memungkinkan untuk menyinkronkan data secara rekursif tetapi tidak mempertahankan kepemilikan untuk pengguna dan grup, izin, stempel waktu, atau tautan simbolis.
-a Mode arsip berperilaku seperti mode rekursif tetapi menyimpan semua izin file, tautan simbolis, kepemilikan file, dll.
-z Digunakan untuk mengompresi data selama transfer untuk menghemat ruang.
-b Melakukan pencadangan selama sinkronisasi data.
-h Menampilkan angka dalam output dalam format yang dapat dibaca manusia.
-n Melakukan lari kering. Digunakan untuk pengujian sebelum sinkronisasi yang sebenarnya terjadi.
-e Menginstruksikan rsync untuk menggunakan protokol SSH untuk transfer jarak jauh.
-progress Menampilkan kemajuan transfer selama sinkronisasi.
-v Keluaran bertele-tele. Menampilkan detail transfer.
-q Digunakan untuk menekan output untuk perintah dan opsi rsync.

Contoh Perintah Rsync

Rsync adalah alat sinkronisasi serbaguna yang dapat Anda sesuaikan agar sesuai dengan penggunaan spesifik Anda. Dalam panduan ini, kita akan menggunakan arsip (-a ) dan verbose (-v ) pilihan bila diperlukan.

Lihat contoh rsync di bawah ini untuk mencakup sebagian besar penggunaan rsync.

1. Salin Satu File Secara Lokal

Untuk menyalin satu file ke direktori lain di mesin lokal, ketik path lengkap file sumber, diikuti dengan tujuan target.

Misalnya:

rsync -v /home/test/Desktop/sample.txt /home/test/Desktop/rsync/

Perintah mentransfer sample.txt file ke rsync direktori. Jika direktori tujuan tidak ada, tambahkan garis miring di akhir, dan rsync akan membuatnya, seperti dalam contoh kita.

Jika Anda ingin menyalin file dari direktori kerja saat ini, Anda dapat memasukkan nama file, bukan path lengkapnya.

2. Salin Banyak File Secara Lokal

Untuk menyalin banyak file dengan rsync, tambahkan path lengkap dari file sumber:

rsync -v /home/test/Desktop/sample.txt /home/test/Desktop/sample2rs.txt /home/test/Desktop/rsync

Anda harus menggunakan metode ini untuk sejumlah kecil file. Jika daftarnya lebih besar, Anda dapat merujuk ke --exclude pilihan.

3. Menyalin Direktori dan Semua Subdirektori Secara Lokal (Menyalin File dan Direktori Secara Rekursif)

Untuk menyalin direktori dan isinya ke lokasi lain di mesin Anda, gunakan -a atau -r pilihan. Kami menggunakan arsip opsi :

rsync -av /home/test/Desktop/Linux /home/test/Desktop/rsync

Contoh di atas menunjukkan cara menyalin Linux direktori ke rsync direktori. Perhatikan bahwa kami tidak menggunakan garis miring setelah Linux . Oleh karena itu, alat rsync membuat Linux direktori dan isinya di dalam rsync direktori.

4. Salin File atau Direktori dari Mesin Lokal ke Jarak Jauh

Untuk menyalin direktori /home/test/Desktop/Linux ke /home/test/Desktop/rsync pada mesin jarak jauh, Anda perlu menentukan alamat IP tujuan.

Tambahkan alamat IP dan tujuan setelah direktori sumber. Ingatlah untuk memberi tanda titik dua (: ) setelah alamat IP host jarak jauh, tanpa spasi sebelum tujuan.

Perintahnya terlihat seperti ini:

rsync -av /home/test/Desktop/Linux 192.168.56.100:/home/test/Desktop/rsync

Masukkan kata sandi untuk pengguna saat ini untuk melanjutkan. Jika Anda ingin menggunakan akun lain untuk koneksi jarak jauh, tentukan sebelum alamat IP:

rsync -a /home/test/Desktop/Linux [email protected]:/home/test/Desktop/rsync

Untuk menyalin satu file ke host jarak jauh, tentukan path lengkap file dan tujuannya.

Misalnya:

rsync -av /home/test/Desktop/sample_file.txt 192.168.56.100:/home/test/Desktop/rsync

5. Salin Banyak File atau Direktori dari Mesin Lokal ke Mesin Jarak Jauh

Mirip dengan menyalin data secara lokal, buat daftar beberapa file atau beberapa jalur direktori yang ingin Anda salin ke server jauh. Ikuti sintaks yang sama seperti menyalin satu file atau direktori.

Misalnya:

rsync -av /home/test/Desktop/Linux/ /home/test/Music 192.168.56.100:/home/test/Desktop/rsync

6. Tentukan Protokol rsync untuk Transfer Jarak Jauh

Alat rsync dapat diinstruksikan dengan -e pilihan untuk menggunakan protokol khusus untuk transfer file. Untuk menggunakan Rsync melalui SSH untuk mentransfer file dari jarak jauh, tambahkan -e ssh ke rsync perintah.

Misalnya, untuk mentransfer sample.txt dari desktop Anda ke desktop mesin jarak jauh:

rsync -e ssh /home/test/Desktop/sample.txt 192.168.56.100:/home/test/Desktop

7. Menyalin File atau Direktori dari Jarak Jauh ke Mesin Lokal

Rsync mendukung transfer file dari server jauh ke mesin lokal Anda.

Untuk menarik direktori dari server, tentukan alamat IP-nya sebelum sumbernya.

Misalnya:

rsync -av 192.168.56.100:/home/test/Desktop/DirM /home/test/Desktop

Perintah ini menyalin DirM direktori dari 192.168.56.100 ke /home/test/Desktop di server lokal.

Untuk menyalin file tertentu dari host jarak jauh, masukkan jalur lengkap file sumber dan tujuan di komputer lokal Anda. Misalnya:

rsync -v 192.168.56.100:/home/test/Desktop/testfile.txt /home/test/Desktop

8. Salin Banyak File atau Direktori dari Mesin Lokal ke Mesin Jarak Jauh

Untuk mentransfer banyak file atau beberapa direktori dari server jarak jauh, buat daftar jalur menggunakan tanda kurung kurawal setelah alamat IP server. Pisahkan jalur dengan koma.

Misalnya:

rsync -av 192.168.56.100:{/home/test/Desktop/DirM,/home/test/Desktop/Dir1} /home/test/rsync

Hal yang sama berlaku untuk file. Cantumkan file sebanyak yang Anda butuhkan di dalam kurung kurawal.

9. Tampilkan Kemajuan rsync Selama Transfer Data

Saat melakukan pencadangan data besar, Anda mungkin ingin melihat kemajuan transfer.

Tambahkan --progress tandai ke rsync perintah untuk melihat jumlah data yang ditransfer, kecepatan transfer, dan waktu yang tersisa.

Misalnya, untuk mencadangkan Dir1 ke server jauh dan tunjukkan progresnya, masukkan:

rsync -av --progress /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync

10. Hapus File Sumber atau Direktori yang Tidak Ada dari Tujuan

Gunakan --delete opsi untuk menjaga sumber dan target tetap sinkron.

Opsi ini memberi tahu rsync untuk menghapus file atau direktori apa pun di tujuan jika sumbernya tidak memilikinya.

rsync -av --delete /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync

11. Hapus File Sumber Setelah Transfer

Dalam beberapa skenario, Anda mungkin ingin menghapus file sumber setelah transfer. Misalnya, Anda mungkin memindahkan cadangan mingguan ke server baru. Setelah transfer selesai, Anda tidak lagi memerlukan file sumber di server lama.

Dalam hal ini, gunakan --remove-source-files tandai untuk menghapus file sumber yang Anda tentukan.

Misalnya, perintah ini mentransfer file cadangan weekly.zip dan kemudian menghapusnya dari sumbernya:

rsync -v --remove-source-files /home/test/backup/weekly.zip 192.168.56.100:/home/test/Desktop/rsync/

12. Rsync Dry Run

Rsync adalah alat sinkronisasi yang kuat. Karena alat ini memungkinkan Anda untuk menyalin dan menghapus data, kami menyarankan Anda untuk melakukan uji coba terlebih dahulu untuk menguji apakah rsync melakukan apa yang Anda inginkan.

Opsi dry run sangat berguna saat Anda ingin menghapus file. Untuk melakukan lari kering, gunakan --dry-run pilihan dan ikuti sintaks rsync biasa.

Misalnya:

rsync -av --dry-run --delete /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync

Outputnya terlihat sama seperti saat Anda benar-benar menyinkronkan file. Namun, data kali ini tidak akan disinkronkan. Untuk mengonfirmasi bahwa pengujian telah dilakukan dan bukan transfer yang sebenarnya, terminal menunjukkan (DRY RUN) di bagian bawah.

13. Setel Ukuran File Maksimum untuk Transfer

Untuk menentukan ukuran file maksimum yang akan ditransfer rsync, gunakan --max-size=add_size .

Misalnya, untuk mentransfer file yang tidak lebih besar dari 500KB, gunakan perintah ini:

rsync -av --max-size=500k /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync/

14. Setel Ukuran File Minimum untuk Transfer

Gunakan --min-size=add_size dengan rsync ketika Anda tidak ingin mentransfer file yang lebih kecil dari ukuran yang Anda tentukan. Opsi ini berguna, misalnya, saat Anda ingin melewati file log atau thumbnail kecil.

Untuk melewati file apa pun yang lebih kecil dari 10KB, jalankan perintah ini:

rsync -av --min-size=10k /home/test/Desktop/ 192.168.56.100:/home/test/Desktop/rsync/

15. Setel Batas Bandwidth rsync

Jika Anda ingin menentukan batas bandwidth selama transfer data antar mesin, gunakan --bwlimit=KB/s .

Opsi ini berguna jika Anda tidak ingin menyumbat throughput jaringan Anda.

Untuk mengatur kecepatan transfer maksimum ke 50KB/s, masukkan:

rsync -av --bwlimit=50 --progress /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync/

Kami juga menggunakan --progress opsi untuk mendemonstrasikan penggunaan --bwlimit .

16. Salin Jenis File Tertentu

Anda dapat menggunakan rsync untuk menyalin hanya jenis file tertentu. Untuk melakukannya, gunakan tanda bintang (* ) alih-alih nama file dan tambahkan ekstensi.

Misalnya, untuk menyalin file .txt saja, masukkan:

rsync -v /home/test/Documents/*.txt /home/test/Desktop/rsync/

rsync . ini perintah mentransfer semua file teks dari Dokumen direktori ke rsync direktori di desktop Anda.

17. Salin Struktur Direktori tetapi Lewati File

Rsync memungkinkan Anda untuk mentransfer hanya struktur direktori jika Anda tidak memerlukan file di lokasi lain.

Untuk melakukannya, tambahkan -f"+ */" -f"- *" sebelum direktori sumber.

Misalnya, untuk menyalin struktur Linux direktori ke Dokumen , masukkan:

rsync -av -f"+ */" -f"- *"  /home/test/Desktop/Linux /home/test/Documents

18. Tambahkan Cap Tanggal ke Nama Direktori

Anda dapat dengan mudah menambahkan tanggal ke nama direktori jika Anda ingin memberi cap tanggal pada transfer Anda.

Tambahkan $(date +%Y-%m-%d) ke nama direktori tujuan yang ingin Anda buat. Opsi ini berguna saat Anda ingin melacak kapan transfer terjadi tanpa membuka properti direktori.

Misalnya:

rsync -av /home/test/Desktop/Linux /home/test/Desktop/rsync$(date +%Y-%m-%d)

19. Jangan Menyalin File Sumber jika File Tujuan yang Sama Dimodifikasi

Jika Anda tetap menyinkronkan dua direktori, rsync tidak menyalin file jika file yang sama ada di tujuan.

Kadang-kadang mungkin terjadi bahwa Anda memodifikasi file di tujuan dan tidak ingin membiarkan rsync menimpanya.

Untuk menghindari menimpa file tujuan yang dimodifikasi, gunakan -u pilihan.

Misalnya:

rsync -avu /home/test/Desktop/Linux/ /home/test/Desktop/rsync

20. Tunjukkan Perbedaan Antara File Sumber dan Tujuan

Saat Anda mulai mentransfer data, Anda dapat menggunakan -i tandai dengan rsync untuk memeriksa apakah ada perbedaan antara sumber dan tujuan.

Misalnya:

rsync -avi /home/test/Desktop/Linux/ /home/test/Desktop/rsync

Contoh di atas menunjukkan sample2rs.txt file tidak ada di tujuan.

Kemungkinan huruf dalam output adalah:

  • f singkatan dari file
  • d menunjukkan file tujuan yang dimaksud
  • t menunjukkan stempel waktu telah berubah
  • s menunjukkan ukuran telah berubah

Linux
  1. Perintah cp di Linux:7 Contoh Praktis

  2. Contoh Praktis Perintah rsync di Linux

  3. Perintah cp Linux

  1. 7 Contoh Perintah Linux df

  2. Perintah rsync Linux dengan contoh praktis

  3. Contoh Perintah rm di Linux

  1. 8 Contoh Perintah Linux TR

  2. Contoh Perintah ps di Linux

  3. sa Contoh Perintah di Linux