
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 menyalin file dan direktori di antara dua komputer. Ini menggunakan algoritme canggih yang memindai hierarki direktori untuk menemukan file di komputer sumber yang tidak ada di komputer tujuan. File-file ini ditransmisikan ke komputer tujuan. Apa yang membuat rync begitu pintar adalah ia dapat mengetahui bagian mana dari file yang sudah 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 lain di komputer yang sama, ke drive USB yang terhubung secara eksternal, atau lokasi lain yang dapat diakses jaringan.
Selain itu, rsync secara opsional dapat menyimpan 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 dari banyak opsi, 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—itu, di semua mesin uji kami—tetapi jika tidak, itu pasti ada di repositories.
1.Salin File ke Direktori Berbeda
Berikut adalah contoh sederhana untuk memulai. Kami akan menyalin file dari direktori "file proyek" ke direktori "Dokumen". Kami menggunakan dua opsi, opsi -a (arsip) dan opsi -v (verbose). Opsi verbose memberi tahu rsync untuk menjelaskan apa yang dilakukannya saat melakukannya. Opsi arsip mempertahankan kepemilikan file dan beberapa item lain yang akan segera kita lihat.
Format perintahnya adalah opsi sumber-lokasi tujuan-lokasi.
rsync -av /home/dave/project-files/ /home/dave/Documents/
Menggunakan ls pada folder "Documents" menunjukkan file telah disalin.
Saat rsync bekerja, 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 transfer. 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 transfer.
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 diupdate 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: Bekerja secara rekursif melalui pohon direktori di direktori sumber dan menyalinnya ke direktori tujuan, membuatnya jika belum ada di sana.l: Salin symlink sebagai symlinks.p: Pertahankan file permissions.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 pseudo-devices.
Ini adalah kombinasi yang sering digunakan sehingga rsync menyediakan opsi -a (arsip) sebagai cara singkat untuk memanggil semuanya.
2. Salin Direktori ke Direktori Berbeda
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 sebagai mereka terdaftar. Jika kita melihat ke dalam direktori tujuan, kita akan melihat folder sumber telah disalin dengan file di dalamnya.
ls Documents/ls Documents/project-files/
3. Menyalin 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 hantu, Anda 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 run/mount/drive2/project-files/
4. Melakukan Dry Run Terlebih Dahulu
Sebelum kita melihat bagaimana rsync dapat menghapus file yang berguna untuk kita, mari kita lihat bagaimana kita dapat membuat rsync melakukan dry run.
Dalam menjalankan kering, rsync melakukan gerakan melakukan tindakan yang kita 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 menjalankan kering, kita 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 dengan pesan (DRY RUN) sehingga kami tahu tidak ada yang benar-benar terjadi.
5. Menghapus File di Direktori Tujuan
Opsi --delete memberi tahu 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 untuk real.
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 geocor
7. Menyalin 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 baik.
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.
Pada jaringan pengujian kami, kedua perintah ini setara.
rsync -av /home/dave/geocoder dave@nostromo.local:/home/dave/Downloadsrsync -av /home/dave/geocoder dave@192.168.86.60:/home/dave/Downloads
Kami mendapatkan informasi yang sama seperti yang dilaporkan kepada kami lakukan ketika kita sedang 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 disertakan secara khusus . Untuk hanya menyalin file yang disertakan, Anda harus --mengecualikan yang lainnya.
Anda dapat menggunakan opsi --include dan --exclude dalam perintah sebanyak yang Anda suka, tetapi pastikan Anda meletakkan opsi --include sebelum --exclude pilihan. Selain itu, pastikan Anda memiliki garis miring di jalur file sumber.
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/geocor
Satu-satunya file yang disalin adalah file yang kami sertakan secara khusus.
9. Kompres File di 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, kita dapat menambahkan beberapa statistik sehingga kita dapat melihat kemajuan transfer.
Opsi -P (sebagian, 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 kembali.
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. Meski begitu, masih sulit untuk dibaca karena mendesing oleh.
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.
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. Merasa nyaman dengan itu dan sisanya akan datang dengan mudah.
Disadur dari HowToGeek.com.