Keepalived test


Hammasini bir joyga qo'yish - rsync zaxira skriptini yozish



Yüklə 13,79 Mb.
səhifə58/125
tarix21.08.2023
ölçüsü13,79 Mb.
#140060
1   ...   54   55   56   57   58   59   60   61   ...   125
abdurakhmonov

Hammasini bir joyga qo'yish - rsync zaxira skriptini yozish


Keling, ushbu bobni Bash skripti bilan yopamiz, bu nafaqat foydali ekanligini isbotlaydi, balki sizning mahoratingizni oshirishga yordam beradi. Rsync yordam dasturi mening sevimli dasturlarimdan biridir; bu nafaqat ma'lumotlarni bir joydan ikkinchisiga nusxalash, balki zaxira ishini o'rnatish uchun ham juda foydali. Avtomatlashtirishni mashq qilish uchun quyidagi misol rsync buyrug'idan foydalanamiz:
rsync -avb --delete --backup-dir=/backup/incremental/08-17-2020 /src / target
Ushbu misol rsync buyrug'i -a (arxiv) opsiyasidan foydalanadi, u maqsadga ko'chiradigan fayl(lar)ning vaqt tamg'asi va egasi kabi metama'lumotlarini saqlaydi. -v opsiyasi bizga batafsil ma'lumot beradi, shuning uchun biz rsync nima qilayotganini aniq ko'rishimiz mumkin. -b opsiyasi zaxiralash rejimini yoqadi, ya'ni maqsaddagi fayl manbadagi fayl tomonidan qayta yozilsa, bu faylning oldingi versiyasi qayta nomlanadi, shuning uchun u qayta yozilmaydi. Ushbu uchta variantni birlashtirib, biz uni -a -v -b ni yozishdan ko'ra -avb ga soddalashtiramiz. --delete opsiyasi rsync-ga maqsaddagi manbada mavjud bo'lmagan barcha fayllarni o'chirishni aytadi (biz -b dan foydalanganimiz sababli, o'chirilgan har qanday fayl saqlanib qoladi). --backup -dir opsiyasi rsync- ga istalgan vaqtda fayl nomi shu tarzda o'zgartirilishi (yoki o'chirilishi) o'rniga uni boshqa katalogga nusxalash kerakligini aytadi. Bunday holda, biz qayta yozilgan fayllarni / backup/incremental/08-16-2020 katalogiga yuboramiz.
rsync ishini skript qilaylik. Skriptimizda darhol hal qilishimiz mumkin bo'lgan muammolardan biri bu --backup-dir uchun foydalanayotgan katalog ichida mavjud bo'lgan sana. Sana har kuni o'zgarib turadi, shuning uchun biz buni qattiq kodlamasligimiz kerak. Shuning uchun, keling, skriptimizni shu bilan bog'lashdan boshlaylik:
#/bin/bash
CURDATE=$(sana +%m-%d-%Y)
CURDATE deb nomlangan o'zgaruvchi yaratmoqdamiz. Biz uni chiqishiga tenglashtiramiz
$(sana +%m-%d-%Y) buyrug'i. Bu nima qilishini aniq ko'rish uchun terminal oynangizda sana +%m-%d-%Y ni bajarishingiz mumkin. Bunday holda, buyruqni (masalan, sana ) qavslar va dollar belgisini qo'yish biz buyruqni sub-shell da bajarayotganimizni anglatadi. Buyruq ishga tushadi va biz ushbu buyruqning natijasini olamiz va uni CURDATE o'zgaruvchisida saqlaymiz.
rsync haqiqatda o'rnatilganligiga ishonch hosil qilamiz va agar u o'rnatilmagan bo'lsa, uni o'rnatamiz:
If [ ! -f /usr/bin/rsync ]; then sudo apt install -y rsync fi
biz rsync o'rnatilmaganligini tekshiramiz. Agar shunday bo'lmasa, biz uni apt orqali o'rnatamiz. Bu biz ushbu bobda avvalroq apache2 mavjudligini tekshirganimizga o'xshaydi.
Endi biz oxirgi qatorni qo'shamiz:
rsync -avb --delete --backup-dir=/backup/incremental/$CURDATE /src / target
Biz $CURDATE ni buyrug'imizga kiritamiz, bu joriy sana qanday bo'lishidan qat'iy nazar o'rnatiladi. Hammasini qo'shsak, skriptimiz quyidagicha ko'rinadi:

#/bin/bash CURDATE=$(date +%m-%d-%Y)
if [ ! -f /usr/bin/rsync ]; then sudo apt install -y rsync fi
rsync -avb --delete --backup-dir=/backup/incremental/$CURDATE /src /
target

Ushbu skript ishga tushirilganda /src dan /target ga tarkibni ko'chiradigan rsync ishini bajaradi. (Ushbu kataloglarni zaxira nusxasini yaratmoqchi bo'lgan manba katalogiga va uni ko'chirmoqchi bo'lgan maqsadingizga mos keladigan tarzda o'zgartirganingizga ishonch hosil qiling). /target tashqi qattiq disk yoki tarmoq ulushi bo'lishi mumkin. Shunday qilib, bir so'z bilan aytganda, siz tungi zahirani avtomatlashtirishingiz mumkin. Ushbu zaxira, chunki biz --backup-dir bilan birga -b variantidan foydalanganmiz, faylning oldingi versiyalarini /backup/ incremental katalogidan olish imkonini beradi.
backup.sh kabi nom bilan saqlangan deb hisoblab, bajariladigan deb belgilashni unutmang:
chmod +x backup.sh
Ayni paytda siz ushbu skriptni ishga tushirishni avtomatlashtirish uchun cron ishiga qo'yishingiz mumkin. Buning uchun skriptni topish mumkin bo'lgan markaziy joyga qo'yish yaxshidir, masalan, /usr/ local/bin:
mv backup.sh /usr/local/bin
Ushbu skriptni vaqti-vaqti bilan ishga tushirish uchun cron ishini yaratish haqida o'ylashingiz mumkin.Xulosa
Ushbu bobda biz qobiq buyruqlari bilan bog'liq bir qancha ilg'or tushunchalarni ko'rib chiqdik, masalan, qayta yo'naltirish, Bash tarixi, buyruq taxalluslari, ba'zi buyruq qatori fokuslari va boshqalar. Qobiq bilan ishlash, albatta, siz yaxshilashda davom etadigan narsadir, shuning uchun agar siz ushbu bilimlarning barchasini xotiraga topshirishda muammoga duch kelsangiz, tashvishlanmang.

Yüklə 13,79 Mb.

Dostları ilə paylaş:
1   ...   54   55   56   57   58   59   60   61   ...   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