Keepalived test


Rsync bilan fayllarni uzatish



Yüklə 13,79 Mb.
səhifə110/125
tarix21.08.2023
ölçüsü13,79 Mb.
#140060
1   ...   106   107   108   109   110   111   112   113   ...   125
abdurakhmonov

Rsync bilan fayllarni uzatish


Linux va Unix dunyosida mavjud bo'lgan son-sanoqsiz vositalar va yordam dasturlari orasida rsync kabi sevimlilari kam. rsync - bu ma'lumotlarni bir joydan boshqa joyga juda oson nusxalash uchun foydalanishingiz mumkin bo'lgan yordamchi dastur bo'lib, ma'lumotlar qanday uzatilishini aniq bilish imkonini beruvchi ko'plab variantlar mavjud. Uning ko'p foydalanish holatlariga misollar ruxsatlarni saqlab qolgan holda fayllardan nusxa ko'chirish, almashtirilgan fayllarni zaxiralash paytida fayllardan nusxa ko'chirish va hatto qo'shimcha zaxiralarni o'rnatishni o'z ichiga oladi. Agar siz rsync dan qanday foydalanishni hali bilmagan bo'lsangiz, ehtimol siz u bilan ko'p amaliyot olishni xohlaysiz, chunki bu Linux ma'muri sifatidagi karerangiz davomida ajralmas bo'lishini tez orada ko'rasiz va bu ham shunday narsadir. Linux hamjamiyati odatda siz allaqachon bilasiz deb taxmin qiladi. rsync-ni o'rganish qiyin emas. Aksariyat ma'murlar asosiy foydalanishni taxminan bir soat yoki undan kamroq vaqt ichida o'rganishlari mumkin, ammo mavjud son-sanoqsiz variantlar sizni hatto yillar davomida yangi fokuslarni o'rganishga olib keladi.
Rsync- ni moslashuvchan qiladigan yana bir jihat - bu manba va maqsadli kataloglarni boshqarishning ko'plab usullari. Yuqorida aytib o'tgan edimki, rsync ma'lumotlarni bir joydan ikkinchi joyga ko'chirish uchun foydalanishingiz mumkin bo'lgan vositadir. Buning go'zalligi shundaki, manba va maqsad tom ma'noda siz xohlagan joyda bo'lishi mumkin. Masalan, rsync ning eng keng tarqalgan qo'llanilishi ma'lumotlarni bir serverdagi katalogdan tarmoq orqali boshqa serverdagi katalogga nusxalashdir. Biroq, tarmoqdan foydalanish ham shart emas; siz hatto bitta serverda ma'lumotlarni bir katalogdan boshqasiga nusxalashingiz mumkin. Avvaliga bu foydali ish bo'lib ko'rinmasa-da, maqsadli katalog zaxira diskiga olib keladigan ulanish nuqtasi yoki aslida boshqa serverda mavjud bo'lgan NFS ulushi bo'lishi mumkinligini hisobga oling. Bu ham teskari ishlaydi: agar xohlasangiz, ma'lumotlarni tarmoq joylashuvidan mahalliy katalogga nusxalashingiz mumkin.
rsync bilan mashq qilishni boshlash uchun men sizga ishlash uchun ba'zi namuna fayllarni topishingizni tavsiya qilaman. Ehtimol, sizda foydalanishingiz mumkin bo'lgan hujjatlar to'plami, MP3 fayllari, videolar, matnli fayllar, asosan sizda mavjud bo'lgan har qanday ma'lumotlar mavjud. Ushbu ma'lumotlarning nusxasini yaratish muhimdir. Agar xatoga yo'l qo'ysak, biz narsalarni qayta yozishimiz mumkin, shuning uchun mashq paytida ma'lumotlarning nusxasi yoki sizga ahamiyat bermaydigan ma'lumotlar bilan ishlash yaxshiroqdir. Agar sizda ishlash uchun hech qanday fayl bo'lmasa, matnli fayllarni yaratishingiz mumkin. Maqsad - fayllarni bir joydan boshqa joyga nusxalashni mashq qilish; nimadan nusxa ko'chirishingiz yoki uni qaerga jo'natishingiz muhim emas. Men sizga bir necha rsync misollarini ko'rsataman, ular asta-sekin murakkablashadi. Birinchi bir nechta misollar sizga uy katalogining zaxira nusxasini qanday yaratishni ko'rsatib beradi, ammo keyingi misollar potentsial halokatli bo'ladi, shuning uchun siz namuna fayllari bilan ishlashni xohlaysiz.
Mana bizning birinchi misolimiz:
sudo rsync -r /home/myuser /backup
rsync ( root sifatida) dan myuser katalogi uchun uy katalogining mazmunini zaxira katalogiga, /backup- ga nusxalash uchun foydalanamiz (maqsadli katalog mavjudligiga ishonch hosil qiling). Misolda men -r opsiyasidan foydalandim, ya'ni rsync kataloglarni ham rekursiv ushlaydi. Endi siz /backup katalogingizda /home/myuser katalogining nusxasini ko'rishingiz kerak.
Biroq, bizda biroz muammo bor. Agar /backup/ myuser katalogidagi ruxsatlarga qarasangiz, maqsaddagi hamma narsa endi root ga tegishli ekanligini ko'rishingiz mumkin. Bu yaxshi narsa emas; foydalanuvchining uy katalogining zaxira nusxasini yaratganingizda, ularning ruxsatlarini saqlab qolishni xohlaysiz. Bundan tashqari, iloji boricha ko'proq metama'lumotlarni, jumladan vaqt belgilari kabi narsalarni saqlashingiz kerak. Keling, rsync ning boshqa variantini sinab ko'raylik. Xavotir olmang, /backup-da oldingi zaxira nusxamizdan mening foydalanuvchi bosh katalogining nusxasi allaqachon mavjud. Keling, yana zaxira nusxasini yarataylik, lekin bu safar biz -a opsiyasidan foydalanamiz:
sudo rsync -a /home/myuser /backup
-r variantini -a (arxiv) bilan almashtirdik, u iloji boricha ko'proq metama'lumotlarni saqlaydi (ko'p hollarda u hamma narsani aniq nusxaga aylantirishi kerak). Endi e'tibor berishingiz kerak bo'lgan narsa shundaki, zaxiradagi ruxsatlar biz ko'chirib olgan foydalanuvchining uy katalogidagi ruxsatlarga mos keladi. Endi fayllarning vaqt belgilari ham mos keladi. Bu ishlaydi, chunki har doim rsync ishga tushirilganda, u oxirgi ishlaganidan farq qiladigan narsalarni nusxalaydi. Bizning birinchi zaxiramizdagi fayllar allaqachon mavjud edi, lekin ruxsatnomalar noto'g'ri edi. Ikkinchi buyruqni bajarganimizda, rsync faqat boshqa narsalarni nusxalash uchun kerak edi, shuning uchun u fayllarga to'g'ri ruxsatlarni qo'lladi. Agar buyruqni oxirgi marta bajarganimizdan beri manba katalogiga biron bir yangi fayl qo'shilsa, yangi yoki yangilangan fayllar ham nusxalanadi.
Arxiv rejimi ( biz oldingi buyruq bilan foydalangan -a varianti) aslida juda mashhur; Ehtimol, sayohatlaringiz davomida buni ko'p ko'rasiz. -a opsiyasi aslida quyidagi variantlarni bir vaqtning o'zida o'z ichiga olgan o'rash variantidir:
-rlptgoD
Agar siz ushbu variantlarning har biri nima qilishini bilmoqchi bo'lsangiz, batafsil ma'lumot uchun rsync uchun man sahifasiga murojaat qiling. Xulosa qilib aytganda, -r opsiyasi ma'lumotlarni rekursiv nusxa ko'chiradi (biz allaqachon bilamiz), -l opsiyasi ramziy havolalarni nusxalaydi, -p ruxsatlarni saqlaydi, -g guruh egaligini saqlaydi, -o egasini va -D qurilma fayllarini saqlaydi. Agar siz ushbu variantlarni birlashtirsangiz, biz -rlptgoD ni olamiz. Shuning uchun, -a aslida -rlptgoD ga teng. Men buni eslab qolish osonroq deb bilaman.
Arxiv rejimi juda zo'r, lekin u ishlayotganida rsync nima bo'lishini tomosha qilish yaxshi bo'lmaydimi ? -v variantini qo'shing va buyruqni qaytadan sinab ko'ring:
sudo rsync -av /home/myuser/backup
Bu safar rsync terminalda ishlayotgan vaqtda nima qilayotganini ko'rsatadi ( -v batafsil rejimni faollashtiradi ). Bu, aslida, rsync buyrug'ining eng sevimli o'zgarishlarimdan biri, chunki men hamma narsani nusxalashni va barcha metama'lumotlarni saqlashni, shuningdek, rsync nima qilayotganini kuzatishni yaxshi ko'raman.
rsync sukut bo'yicha SSH-ni qo'llab-quvvatlaydi, deb aytsam nima bo'ladi ? Bu to'g'ri! rsync dan foydalanib, ma'lumotlarni bir tugundan boshqasiga, hatto SSH orqali ham osongina nusxalashingiz mumkin. Xuddi shu variantlar qo'llaniladi, shuning uchun siz mahalliy serveringizdagi boshqa katalogga emas, balki boshqa serverga rsync- dan boshqa hech narsa qilishingiz shart emas:
sudo rsync -av /home/myuser admin@192.168.1.5:/backup
foydalanuvchi uchun uy katalogini 192.168.1.5 serveridagi /backup katalogiga ko'chiryapman. Boshqa serverga administrator foydalanuvchi sifatida ulanyapman. Foydalanuvchi hisobini va IP manzilini mos ravishda o'zgartirganingizga ishonch hosil qiling, shuningdek siz foydalanadigan foydalanuvchi hisobi /backup katalogiga kirish huquqiga ega ekanligiga ishonch hosil qiling. Ushbu buyruqni ishga tushirganingizda, serverga ulanish uchun oddiy SSH dan foydalanganda bo'lgani kabi, sizdan SSH parolini so'rashingiz kerak. Ulanish o'rnatilgandan so'ng, fayllar maqsadli server va katalogga ko'chiriladi.
bular uchun haqiqiy uy katalogi bilan ishlashni xohlamasligimiz mumkin, agar u sinov hisobi bo'lsa va sizga ahamiyat bermasangiz. tarkibi. Yuqorida aytib o'tganimdek, sizda o'ynash uchun ba'zi sinov fayllari bo'lishi kerak. Amaliyot paytida, mening kataloglarimni o'zingizniki bilan almashtiring. Sinab ko'rishga arziydigan yana bir variant:
sudo rsync -av --delete /src /target
--delete varianti bilan tanishtiraman. Ushbu parametr ikkita katalogni sinxronlashtirishga imkon beradi. Bu nima uchun muhimligini tushuntirib beraman. Hozirgacha har bir rsync misolida biz fayllarni A nuqtadan B nuqtaga nusxa ko'chirdik, lekin hech narsani o'chirmadik. Masalan, siz A nuqtadan B nuqtaga tarkibni nusxalash uchun rsync- dan allaqachon foydalandingiz deylik. Keyin A nuqtadan ba'zi fayllarni o'chirib tashlaysiz. Fayllarni A nuqtadan B nuqtaga qayta nusxalash uchun rsync- dan foydalansangiz, o'chirilgan fayllar. A nuqtasi B nuqtasida o'chirilmaydi. Ular hali ham o'sha erda bo'ladi. Buning sababi, sukut bo'yicha, rsync ma'lumotlarni ikki joy o'rtasida nusxa ko'chiradi, lekin u hech narsani olib tashlamaydi. --delete opsiyasi bilan siz ikkita nuqtani samarali sinxronlashtirasiz, shuning uchun siz rsync-ga maqsaddagi manbada bo'lmagan fayllarni o'chirishga ruxsat berish orqali ularni bir xil qilishini aytasiz.
-b (zaxira) variantini qo'shamiz:
sudo rsync -avb --delete /src /target
Bu, ayniqsa, foydalidir. Odatda, fayl /src da yangilanib, keyin /target ga ko'chirilsa, /target dagi nusxa yangi versiya bilan qayta yoziladi. Ammo biror faylni almashtirishni xohlamasangiz nima bo'ladi? -b opsiyasi qayta yozilayotgan maqsaddagi fayllar nomini o'zgartiradi, shuning uchun siz hali ham asl faylga ega bo'lasiz. Agar siz --backup-dir variantini qo'shsangiz, narsalar juda qiziq bo'ladi:
sudo rsync -avb --delete --backup-dir=/backup/incremental /src /target
/src dan /target ga avvalgidek nusxa ko'chirmoqdamiz, lekin endi almashtirilgan fayllarni /backup/incremental katalogiga yubormoqdamiz. Bu shuni anglatadiki, fayl maqsadli o'zgartirilsa, asl fayl /backup/ incremental ga ko'chiriladi. Bu ishlaydi, chunki biz -b variantidan (zaxira nusxasi) foydalanganmiz, lekin biz --backup-dir variantidan ham foydalandik, ya'ni almashtirilgan fayllar nomi o'zgartirilmaydi, ular shunchaki belgilangan katalogga ko'chiriladi. Bu bizga qo'shimcha zahiralarni samarali bajarish imkonini beradi.
Oldingi misolimizga asoslanib, biz qo'shimcha zaxiralarni yanada yaxshiroq ishlashi uchun Bash qobig'ining o'zidan foydalanishimiz mumkin. Ushbu buyruqlarni ko'rib chiqing:
CURDATE=$(date +%m-%d-%Y) export $CURDATE sudo rsync -avb --delete --backup-dir=/backup/incremental/$CURDATE /src /target
Ushbu misol bilan biz joriy sanani olamiz va uni o'zgaruvchida saqlaymiz ( CURDATE ). Shuningdek, biz yangi o‘zgaruvchini to‘liq foydalanish mumkin bo‘lishi uchun eksport qilamiz. Buyruqning rsync qismida biz bu o'zgaruvchidan --backup-dir opsiyasi uchun foydalanamiz. Bu almashtirilgan fayllarni buyruq bajarilgan sana bilan atalgan zaxira katalogiga ko'chiradi. Asosan, agar bugungi sana 08-17-2020 bo'lsa, natijada olingan buyruq biz quyidagilarni bajarganimiz bilan bir xil bo'ladi:
sudo rsync -avb --delete --backup-dir=/backup/incremental/08-17-2020 / src /target
rsync qanchalik moslashuvchan ekanligini va undan nafaqat kataloglar va/yoki tugunlar o'rtasida fayllarni nusxalash uchun emas, balki zaxira yechim sifatida ham foydalanish mumkinligini ko'rishingiz mumkin (agar sizda fayllarni nusxalash uchun masofaviy manzil mavjud bo'lsa). Eng yaxshi tomoni shundaki, bu faqat boshlanishi. Agar siz rsync uchun man sahifasiga murojaat qilsangiz, uni yanada sozlash uchun foydalanishingiz mumkin bo'lgan ko'plab variantlar mavjudligini ko'rasiz. Bir oz mashq qiling va siz uni qisqa vaqt ichida o'rganishingiz kerak.

Yüklə 13,79 Mb.

Dostları ilə paylaş:
1   ...   106   107   108   109   110   111   112   113   ...   125




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin