CodeGym /Kurslar /Docker SELF /Mətn məlumatlarının işlənməsi və sistemin yenilənməsi

Mətn məlumatlarının işlənməsi və sistemin yenilənməsi

Docker SELF
Səviyyə , Dərs
Mövcuddur

Mətn məlumatlarının işlənməsi və sistemin yenilənməsi

1. Mətn məlumatlarının emalı

Bu gün bütün biliklərimizi toplayacağıq və onları praktiki olaraq tətbiq edəcəyik ki, mətn məlumatlarını emal edək və sistemi yeniləyək. Sistemin jurnal analizindən başlayaraq paketlərin qurulması və tənzimləmələrinin avtomatlaşdırılmasına qədər real istifadə ssenariləri ilə tanış olacağıq.

Tapşırıq 1: Jurnaldakı xətaları axtarma

Ssenari: Təsəvvür edin ki, siz sistem administratorusunuz və sistemdə nə baş verdiyini tez bir zamanda başa düşməlisiniz. Bunun üçün biz sistem jurnallarını (/var/log/syslog) analiz edəcəyik.

Addım 1: Açar sözlər üzrə filtrasiya

Xətalarla bağlı sətirləri tapmaq üçün grep istifadə etməyə başlayaq:

grep "error" /var/log/syslog

Aha, nəsə tapdıq! Amma gəlin daha da yaxşılaşdırın. Tutaq ki, qeydiyyatı nəzərə almamaq istəyirsiniz (istər ERROR, istərsə də error):

grep -i "error" /var/log/syslog

İndi daha çox uyğunluq görəcəyik. Amma bəzən qəti olaraq xətalarla əlaqəli olmayanları tapmaq lazımdır:

grep -v "error" /var/log/syslog

Addım 2: cut vasitəsilə çıxışı sadələşdirmək

Tutaq ki, sizə yalnız vaxt ştampı və mesaj maraqlıdır. Gəlin müvafiq sütunları çıxaraq:

grep "error" /var/log/syslog | cut -d' ' -f1,2,3,5-

Burada biz cut istifadə edirik ki, sətirləri boşluğa görə ayıraq -d' ', sütunlardan 1, 2, 3 (vaxt) və qalan mətn seçilsin.

Tapşırıq 2: Hadisələrin tezliyinin hesablanması

İndi isə biz başa düşmək istəyirik ki, xətalar nə qədər tez-tez baş verir. grep, cut, sortuniq-u birləşdiririk:

grep "error" /var/log/syslog | cut -d' ' -f5 | sort | uniq -c

Bu komanda:

  1. grep vasitəsilə xətalarla əlaqəli sətirləri axtarır.
  2. cut vasitəsilə yalnız xəta mənbəyi haqqında məlumat çıxarır.
  3. sort məlumatları sıralayır ki, uniq hər sətir üçün təkrarlanma sayını hesablasın.

Nəticə belə görünəcək:

  10 systemd
   7 kernel
   5 cron

systemd-dən gələn xətalar daha tez-tez rast gəlinir. Nəticələr çıxarmağın vaxtıdır!


2. Xarici məlumatların yüklənməsi və işlənməsi

Ssenari: Xarici mənbədən məlumatların analizi

Tutaq ki, bizə veb serverdən bir mətn faylı (məsələn, log faylı) yükləmək və onu analiz etmək lazımdır. Gəlin bunu addım-addım edək.

Addım 1: Faylın yüklənməsi

Əvvəlcə faylı wget vasitəsilə yükləyək:

wget -O data.log http://example.com/logs/data.log

Fayl data.log adı ilə yüklənib saxlanıldı. Əgər yükləmə zamanı xəta baş verərsə, davam etdirmə funksiyasını əlavə edək:

wget -c -O data.log http://example.com/logs/data.log

Əgər üstünlük verdiyiniz vasitə curl-dursa:

curl -o data.log http://example.com/logs/data.log

Addım 2: Məlumat axtarışı

İndi müəyyən bir şablonu, məsələn, WARNING-u ehtiva edən sətirləri axtaraq:

grep "WARNING" data.log

Addım 3: awk ilə məlumatların formatlanması

Tutaq ki, logda üç sütun var: tarix, vaxt və mesaj. Sadəcə tarixi və mesajı göstərmək istəyirik:

awk '{print $1, $3}' data.log

Əgər mesajda error sözünü ehtiva edən sətirləri süzmək lazımdırsa, şərt əlavə edə bilərsiniz:

awk '/error/ {print $1, $3}' data.log

3. apt-getyum vasitəsilə sistemin yenilənməsi

İndi isə daha "sistem" tapşırıqlara keçək. Paketlərin yenilənməsi — sistemin təhlükəsizliyini və sabitliyini qorumaq üçün vacib prosesdir. Bunun necə edildiyini göstərək.

Ssenari: Sistem yenilənir

1-ci addım: Paketlərin siyahısının yenilənməsi

Debian əsaslı distributivlər üçün:

sudo apt-get update

RedHat əsaslı distributivlər üçün:

sudo yum check-update

2-ci addım: Yeniləmələrin qurulması

Debian-based:

sudo apt-get upgrade
RedHat-based:
sudo yum update

3-cü addım: Yeni paketin quraşdırılması

Məsələn, vim mətn redaktorunu quraşdırmaq üçün:

sudo apt-get install vim
sudo yum install vim

Faydalı məsləhət

Əgər hansı paketi quraşdırmaq istədiyinizi bilirsinizsə, amma onun adında əmin deyilsinizsə, apt search və ya yum search istifadə edin:

apt search paket_adı
yum search paket_adı

4. Yekun vəzifə

Tapşırıq: Yenilənmə və məlumatların işlənməsi avtomatlaşdırması

  1. Bash-skript yaradın, bu skript:
    • Sistemi yeniləyir;
    • Mətn faylı (məsələn, log faylı) yükləyir;
    • Bu faylı səhvlər üçün təhlil edir;
    • Təhlilin nəticələrini yeni faylda saxlayır.

Belə bir skriptin nümunəsi:

# Adım 1: Sistemin yenilənməsi
echo "Sistemi yeniləyirik..."
sudo apt-get update && sudo apt-get -y upgrade

# Adım 2: Faylın yüklənməsi
echo "Log faylını yükləyirik..."
wget -O data.log http://example.com/logs/data.log

# Adım 3: Faylın təhlili
echo "Log faylını səhvlər üçün təhlil edirik..."
grep "ERROR" data.log | cut -d' ' -f1,5- | sort | uniq -c > analysis.log

echo "Təhlil tamamlandı. Nəticələr analysis.log faylında saxlanıldı."

Bu skripti, məsələn, update_and_analyze.sh adı ilə saxlayın, icazə hüquqlarını təyin edin:

chmod +x update_and_analyze.sh

Və işə salın:

./update_and_analyze.sh

Diqqət: Tipik səhvlər

  • Əgər "icazə qadağandır" mesajını görsəniz, skripti sudo hüquqları olan istifadəçi adı ilə işə saldığınızdan əmin olun.

  • Əgər wget və ya curl quraşdırılmayıbsa, onları skriptin əvvəlində əlavə edin:

    sudo apt-get install -y wget
    

Praktiki faydası nədir?

Bu bacarıqlar sizə təkcə işdə yox, həm də müsahibələrdə faydalı olacaq. Loglarda səhvləri tapmaq, məlumatları filtrləmək və sistem yenilənmələrini işə salmaq bacarığı adminlər və mühəndislər arasında dəyərlidir. Skriptlər tapşırıqları avtomatlaşdırmağa, vaxt qazanmağa və insan səhvlərinin qarşısını almağa imkan verir.

P.S. Yadda saxlayın ki, real dünyada siz elə tapşırıqlarla qarşılaşacaqsınız ki, orada komandaları birləşdirmək, çıxışı modifikasiya etmək və sistemi avtomatik olaraq qurmaq lazım gələcək. Bugünkü nümunə — gələcək təcrübənizin sadəcə "buzdağının görünen hissəsidir".

1
Опрос
Linux-da xidmət utilitləri,  8 уровень,  6 лекция
недоступен
Linux-da xidmət utilitləri
Linux-da xidmət utilitləri
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION