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
, sort
və uniq
-u birləşdiririk:
grep "error" /var/log/syslog | cut -d' ' -f5 | sort | uniq -c
Bu komanda:
grep
vasitəsilə xətalarla əlaqəli sətirləri axtarır.cut
vasitəsilə yalnız xəta mənbəyi haqqında məlumat çıxarır.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-get
və yum
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ı
- 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ə yacurl
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".
GO TO FULL VERSION