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 filed
– menunjukkan file tujuan yang dimaksudt
– menunjukkan stempel waktu telah berubahs
– menunjukkan ukuran telah berubah