RSYNC: Alat yang berkuasa untuk menyegerakkan direktori tempatan dan jauh
RSYNC adalah utiliti yang teguh dan serba boleh untuk menyegerakkan direktori, dengan cekap memindahkan hanya bahagian fail yang diubahsuai. Ini menjadikannya sesuai untuk menguruskan direktori besar dengan fail yang sering dikemas kini, sama ada antara dua mesin atau pada satu sistem. Fleksibilitasnya dipertingkatkan dengan ciri -ciri seperti integrasi SSH, pemampatan data, pemeliharaan atribut fail (keizinan dan cap waktu), dan keupayaan untuk mengeluarkan fail dari destinasi yang tidak hadir dari sumber.
Struktur Perintah RSYNC:
rsync [pilihan] [sumber] [destinasi]
Pilihan RSYNC Utama:
-a
( --archive
): Memelihara metadata fail penting (pautan simbolik, keizinan, timestamps).-v
( --verbose
): Menyediakan output terperinci.-r
( --recursive
): memproses direktori secara rekursif.--delete
: Menghapuskan fail dari destinasi yang tidak ada di sumbernya. Penting untuk penyegerakan sebenar.-z
( --compress
): Memampatkan data semasa pemindahan, menjimatkan jalur lebar.-h
( --human-readable
): Memaparkan saiz fail dan data berangka lain dalam format mesra pengguna.-P
: Menggabungkan --partial
(resume pemindahan terganggu) dan --progress
(memaparkan kemajuan pemindahan).Senario dan persediaan penyegerakan:
RSYNC adalah berharga untuk pelbagai tugas: Menyandarkan data ke pelayan jauh, berkongsi fail di seluruh mesin, menggunakan kod untuk pengeluaran, dan mengekalkan konsistensi antara persekitaran pembangunan dan pementasan.
Untuk contoh panduan ini, kami akan menggunakan:
Sistem Tempatan: Debian 11 Desktop, Direktori Tempatan: ~/local/sync/
Sistem Jauh: Debian 12 Server, Pengguna Jauh: ostechnix
, Jauh IP: 192.168.1.12
, Direktori Jauh: ~/remote/sync/
Penggunaan Asas:
Dengan mengandaikan rsync
dipasang dan keizinan ditetapkan dengan betul, salinan arahan berikut/menyegerakkan direktori tempatan ke jauh:
rsync -avzp ~/local/sync/ostechnix@192.168.1.12: ~/jauh/sync/
Ingatlah untuk menggantikan ruang letak dengan laluan sebenar, alamat IP, dan nama pengguna anda.
Penyegerakan yang benar dengan --delete
:
Perintah di atas mencerminkan sumber ke destinasi. Untuk memastikan penyegerakan lengkap (kandungan yang sama), gunakan --delete
:
rsync -avzp - -delete ~/local/sync/ostechnix@192.168.1.12: ~/jauh/sync/
Ini menghilangkan fail dari destinasi yang tidak hadir di sumbernya. Berhati -hati dengan --delete
untuk mengelakkan kehilangan data yang tidak disengajakan.
Pertimbangan penting:
/
) selepas laluan direktori adalah penting. Menghilangkan mereka boleh membawa kepada penciptaan direktori yang tidak dijangka.Penambahbaikan selanjutnya:
Pengesahan SSH berasaskan utama: Menjana pasangan kunci SSH ( ssh-keygen
), salin kunci awam ke pelayan jauh ( ssh-copy-id
), dan gunakan laluan kunci lalai atau nyata menentukan laluan kunci peribadi dalam perintah rsync
anda.
Penyegerakan masa nyata (inotify): Campurkan rsync
dengan inotifywait
(dari pakej inotify-tools
) untuk mencetuskan penyegerakan apabila perubahan fail. Skrip sampel disediakan dalam dokumen asal.
Penjadualan dengan cron
: Automasi Penyegerakan menggunakan cron
untuk dijalankan pada selang masa tertentu (contohnya, setiap hari, setiap jam). Contoh penyertaan cron
disediakan dalam dokumen asal.
Laluan Utama SSH yang jelas: Walaupun secara amnya tidak perlu dengan lokasi utama lalai, secara eksplisit menentukan laluan utama peribadi dalam skrip anda menawarkan lebih banyak kawalan.
Kesimpulan:
RSYNC adalah alat yang berkuasa untuk penyegerakan fail yang cekap. Memahami pilihannya dan menggunakan amalan terbaik, seperti pengesahan berasaskan kunci SSH dan tugas yang dijadualkan, memastikan pengurusan data yang boleh dipercayai dan selamat. Sentiasa menguji dengan teliti sebelum menggunakan arahan rsync
ke persekitaran pengeluaran, terutamanya apabila menggunakan pilihan --delete
.
Atas ialah kandungan terperinci Cara Menyegerakkan Direktori Tempatan dan Jauh Menggunakan RSYNC di Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!