Dalam penggunaan harian komputer moden, sandaran data amat penting. Untuk pengguna Linux, arahan rsync ialah kaedah biasa untuk membuat sandaran dan menyegerakkan fail. Ia membolehkan penyegerakan data yang pantas dan cekap antara sistem atau folder tempatan yang berbeza.
Latar belakang projek: Penyegerakan data diperlukan antara pelayan A dan pelayan B (sama ada 1-ke-1 atau banyak-ke-banyak, berikut ialah contoh 1-ke-1 yang mudah Penyelesaian ini sering digunakan untuk pemulihan bencana jauh).
Terdapat kira-kira dua jenis penyelesaian penyegerakan berdasarkan senario aplikasi, penyegerakan berjadual dan penyegerakan masa nyata. Penyegerakan berjadual mempunyai ciri-ciri masa penyegerakan tetap, prestasi masa nyata yang lemah, dan penggunaan sumber yang rendah mempunyai ciri-ciri prestasi masa nyata yang kuat, penyegerakan intensif, dan penggunaan sumber yang tinggi;
1. Penyegerakan berjadual
1. Pasang perisian:
yum install rsync -y
2. Log masuk tanpa kata laluan (anda juga boleh menggunakan teks biasa untuk mensimulasikan log masuk interaktif, tetapi dari perspektif keselamatan, adalah disyorkan untuk menggunakan log masuk tanpa kata laluan):
ssh-keygen -t rsa
Selepas penjanaan, anda boleh memasukkan cd direktori ~/.ssh/ dan menyalin kekunci yang dijana ~/.ssh/id_rsa.pub kandungan ke /root/.ssh/authorized_keys pada hos jauh
Ramai pelajar di sini ingin tahu mengapa tidak perlu memasukkan kata laluan untuk operasi di atas Pelajar yang tahu log masuk tanpa kata laluan boleh melangkau pengenalan ini. Berikut ialah pengenalan kepada prinsip log masuk tanpa kata laluan:
rsa juga dipanggil algoritma kunci asimetri, yang sepadan dengan algoritma kunci simetri.
Algoritma kunci simetri yang dipanggil ialah komunikasi antara A dan B. Bagi membolehkan kedua-dua pihak mengesahkan identiti masing-masing, A dan B bersetuju dengan kunci k yang diketahui oleh kedua-dua pihak untuk menentukan identiti seperti berikut:
A => (mk) B A menghantar m teks biasa dan kunci K kepada B, dan B mengesahkan bahawa kekunci K adalah sama dengan perjanjian A sebelum ini, dan kemudian ia boleh memastikan bahawa identiti A adalah benar. Begitu juga sebaliknya, perkara yang sama berlaku untuk komunikasi dari B ke A.
Penyulitan asimetri memerlukan dua kunci: kunci awam dan kunci peribadi. Kunci awam dan kunci persendirian adalah sepasang Jika kunci awam digunakan untuk menyulitkan data, ia hanya boleh dinyahsulit dengan kunci persendirian yang sepadan. Jika kunci persendirian digunakan untuk menyulitkan data, ia hanya boleh dinyahsulit menggunakan kunci awam yang sepadan. Kerana kunci yang berbeza digunakan untuk penyulitan dan penyahsulitan, ia dipanggil penyulitan asimetri.
Jadi operasi di atas berkongsi kunci awam pelayan A dengan pelayan B (hos jauh), jadi pelayan A tidak lagi memerlukan input kata laluan interaktif tradisional untuk log masuk ke pelayan B. Pelayan B boleh mengesahkannya melalui kunci awam pelayan A . Ketulenan pelayan A (kunci peribadi).
[root@localhost ~]# cd ~/.ssh/ [root@localhost .ssh]# ls id_rsa id_rsa.pub known_hosts
3. Tulis skrip shell
[root@localhost ~]# vim back.sh #!/bin/sh rsync -avz -e 'ssh -p 22' root@x.x.x.x:/XXX/pub /data/
Nota: Penyegerakan data rsync dibahagikan kepada dua tindakan berbeza: tarik dan tolak Sebelum menulis skrip, pastikan anda menguji sama ada arahan itu boleh dilaksanakan secara normal.
4. Konfigurasi pelaksanaan berjadual Crontab (laksanakan skrip pada pukul 3 setiap hari)
Pada ketika ini, penyegerakan berjadual dikonfigurasikan.
2. Penyegerakan masa nyata
Pengenalan kepada Inotify
Inotify ialah ciri Linux, tersedia sejak versi 2.6.13, yang memantau operasi sistem fail seperti membaca, menulis dan mencipta. Inotify sangat responsif, sangat mudah untuk digunakan dan jauh lebih cekap daripada mengundi sibuk tugas cron.
Mula mengkonfigurasi Inotify
Nota: rsync perlu dipasang pada kedua-dua pelayan A dan B sebelum bermula.
1 Laraskan parameter kernel inotify pada pelayan B, vim /etc/sysctl.conf
fs.inotify.max_queued_events = 16384 fs.inotify.max_user_instances = 1024 fs.inotify.max_user_watches = 1048576
2 Jadikan pelarasan parameter kernel inotify berkuat kuasa serta-merta
sysctl -p
3. Pasang Inotify-Tool
# 先安装扩展包源,否则inotify-tools找不到 yum install epel-release yum install inotify-tools
4. Buka dua terminal, satu terminal melakukan operasi seperti penciptaan dan pemadaman, dan satu lagi melaksanakan alat Inotify-Tool Ia berfungsi seperti biasa apabila menguji alat Inotify-Tool
inotifywait -mrq -e modify,create,move,delete /var/www/ inotifywait:用于持续监控,实时输出结果 inotifywatch:用于短期监控,任务完成后再出结果
#!/bin/bash INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /root/cs" RSYNC_CMD="rsync -avz -e 'ssh - p 22' /root/cs/ root@x.x.x.x:/root/cs/ " $INOTIFY_CMD | while read DIRECTORY EVENT FILE do if [ $(pgrep rsync | wc -l) -le 0 ] ; then $RSYNC_CMD fi done
.
/bin/bash /root/tongbu.sh &
Atas ialah kandungan terperinci Sandaran semudah itu: mengajar anda cara menggunakan perintah rsync Linux dengan mudah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!