10 Contoh Perintah rsync Linux yang Berguna
Diterbitkan: 2022-10-28 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.
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.
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/
Menggunakan ls
pada folder "Documents" menunjukkan file telah disalin.
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 olehrsync
. 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/
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/
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/
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
Melihat hard drive lain menunjukkan kepada kita direktori dan file disalin ke sana.
ls jalankan/mount/drive2/file-proyek/
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
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
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
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
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
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.
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
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
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
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
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.
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
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