Admin (atau pengguna biasa) sering kali perlu mencadangkan file atau menyinkronkannya di antara banyak tempat (termasuk lokal dan jarak jauh) tanpa mentransfer dan menimpa semua file pada target setiap saat. Salah satu alat yang paling berguna di sabuk sysadmin untuk tugas semacam ini adalah rsync
.
rsync
alat dapat menavigasi struktur direktori secara rekursif dan memperbarui lokasi kedua dengan file baru/yang diubah/dihapus. Ini memeriksa untuk melihat apakah ada file di tujuan sebelum mengirimnya, menghemat bandwidth dan waktu untuk semua yang dilewatinya. Juga, rsync
menyediakan kemampuan untuk menyinkronkan struktur direktori (atau bahkan satu file) dengan tujuan lain, lokal atau jauh. Untuk mencapai ini secara efisien, secara default, ia akan memeriksa waktu modifikasi file. Itu juga dapat melakukan pemeriksaan hash cepat file pada sumber dan tujuan untuk menentukan apakah perlu mentransfer salinan baru atau tidak, mungkin menghemat waktu dan bandwidth yang signifikan.
[ Anda mungkin juga menyukai: 5 tips rsync lanjutan untuk sysadmin Linux ]
Karena ia dikemas dengan sebagian besar distribusi Linux secara default, seharusnya mudah untuk memulai. Hal ini juga terjadi pada macOS, *BSD, dan sistem operasi mirip Unix lainnya. Bekerja dengan rsync
mudah dan dapat digunakan pada baris perintah, dalam skrip, dan beberapa alat membungkusnya dalam UI yang bagus untuk mengelola tugas.
Pada baris perintah, rsync
umumnya dipanggil menggunakan beberapa parameter untuk menentukan perilakunya karena ini adalah alat yang fleksibel. Dalam bentuknya yang paling sederhana, rsync
dapat diberitahu untuk memastikan bahwa file di satu lokasi harus sama di lokasi kedua dalam sistem file.
Contoh:
# rsync file1.txt file2.txt
Biasanya diinginkan untuk melewati rsync
beberapa parameter untuk memastikan segala sesuatunya berperilaku seperti yang diharapkan manusia. Melewati parameter seperti -a
untuk "arsip" cukup umum karena merupakan "meta-parameter" yang secara otomatis memanggil beberapa orang lain untuk Anda. -a
setara dengan -rlptgoD
, yang dipecah menjadi:
-r
:Berulang melalui direktori (sebagai lawan hanya bekerja pada file di direktori saat ini)-l
:Salin symlink sebagai symlink baru-p
:Pertahankan izin-t
:Pertahankan waktu modifikasi-g
:Mempertahankan kepemilikan grup-o
:Pertahankan kepemilikan pengguna (yang dibatasi hanya untuk pengguna super saat menangani file pengguna lain)-D
:Menyalin file perangkat
Seringkali ini berfungsi sesuai keinginan pengguna dan tidak diperlukan perubahan signifikan. Namun, beberapa di antaranya mungkin bertentangan dengan apa yang dibutuhkan pengguna, jadi memecahnya menjadi fungsi tertentu mungkin menjadi jawaban yang tepat.
Opsi penting lainnya termasuk:
-n
:Jalankan perintah tanpa mentransfer file--list-only
:Hanya tampilkan daftar file yangrsync
akan mentransfer-P
:Menampilkan kemajuan per file-v
:Menampilkan kemajuan secara keseluruhan, mengeluarkan informasi tentang setiap file saat selesai-u
:Lewati pembaruan file target jika lebih baru dari sumbernya-q
:Mode senyap. Berguna untuk dimasukkan dalam skrip ketika keluaran terminal tidak diperlukan-c
:Gunakan nilai checksum untuk menentukan file mana yang akan dilewati, bukan waktu dan ukuran modifikasi--existing
:Hanya perbarui file, tetapi jangan buat file baru yang hilang--files-from=FILE
:Membaca daftar file sumber dari file teks--exclude=PATTERN
:Gunakan POLA untuk mengecualikan file dari sinkronisasi--exclude-from=FILE
:Sama seperti di atas, tetapi membaca dari file--include=PATTERN
:Juga digunakan untuk meniadakan aturan pengecualian--include-from=FILE
:Sama seperti di atas, tetapi membaca dari file
Kumpulan parameter default pribadi saya untuk rsync
akhirnya menjadi -avuP
(arsipkan, keluaran verbose, perbarui hanya file baru, dan tunjukkan kemajuan pekerjaan yang sedang dilakukan).
Sumber dan target
Sumber dan target untuk sinkronisasi adalah file dan direktori. Juga, rsync
menyediakan fungsionalitas untuk berinteraksi dengan sistem jarak jauh melalui SSH, yang membuat pengguna tidak perlu mengatur pembagian jaringan agar dapat menyinkronkan file dari satu tempat ke tempat lain. Ini berarti Anda dapat dengan mudah membuat skrip rsync
pekerjaan setelah mengonfigurasi kunci SSH di kedua ujungnya, menghilangkan kebutuhan untuk masuk secara manual untuk sinkronisasi file jarak jauh.
Contoh:

Merinci sintaks di sini:
- Menjalankan
rsync
perintah - Dengan
-avuP
parameter yang dijelaskan di atas - Untuk menyalin direktori Dokumen lokal
- Menggunakan steve sebagai pengguna di sistem jarak jauh
- Di mana sistem jarak jauh disebut server file dan bisa dihubungi dengan nama itu
- Dan jalur relatif dari rumah steve ditampilkan setelah : - dan dalam hal ini, itu berarti meletakkan ini di direktori home steve itu sendiri
Ini menyalin semuanya dari folder Dokumen steve ke direktori Dokumen pada sistem jarak jauh, hanya memperbarui file yang telah berubah atau baru. Menjalankan ini sekali sudah cukup (sampai ada perubahan baru). Menjalankannya lagi segera setelah itu akan menghasilkan jumlah output yang relatif sama tetapi jauh lebih cepat karena melewatkan semua file.
[ Panduan pemilik API:7 praktik terbaik program API yang efektif ]
Menutup
Ada banyak cara berguna untuk memanfaatkan kekuatan rsync
. Ini sering kali sesederhana menjalankannya dari baris perintah secara satu kali untuk menyalin sekumpulan file tanpa khawatir membuang waktu menyalin hal-hal yang sudah ada di tujuan. Membuat skrip ini, menambahkannya ke cron
pekerjaan, dan bereksperimen dengan parameter yang berbeda membantu mencapai lebih banyak tujuan untuk rata-rata sysadmin.