Grep nədir? ətraflı grep istifadəsi
Bu məqalədə Unix-ə bənzər əməliyyat sistemlərində mətn və log təhlili üçün grep əmrindən necə istifadə ediləcəyi ətraflı müzakirə olunur. Əsas və qabaqcıl grep seçimlərini öyrənməklə gündəlik qeydlərin təhlili və səhv aşkarlama tapşırıqlarında necə daha effektiv ola biləcəyinizə diqqət yetirin.
grep nədir?
grep Unix kimi əməliyyat sistemlərində mətn axtarışı və təhlili üçün əvəzsiz vasitədir. DevOps və Bulud domenlərində grep log analizi, xətaların aşkarlanması və sistem monitorinqi kimi bir sıra kritik tapşırıqlar üçün istifadə olunur. Bu məqalə grep-in əsas və qabaqcıl istifadəsini, xüsusən də log analizi kontekstində əhatə edəcəkdir.
Grep tarixi
grep komandası ilk dəfə 1970-ci illərin əvvəllərində Unix əməliyyat sistemi üçün hazırlanmışdır. Onun adı ed əmrlərindən gələn “global/regular expression/print” sözlərinin baş hərflərindən ibarətdir. Yarandığı gündən grep mətn emalı və məlumatların təhlili üçün güclü alətə çevrilmişdir.
Əsas grep istifadəsi
grep komandası müəyyən nümunəni özündə əks etdirən edən sətirləri çap etmək üçün istifadə olunur. Burada bəzi əsas seçimlər var
-i : Reqlament fərqinə məhəl qoymur -v : Uyğun olmayan xətləri çap edir -c : Uyğun sətirlərin sayını çap edir
Nümunı olaraq
# -i parametri ilə iş ayrı-seçkiliyi olmadan axtarın: grep -i "GET" /var/log/nginx/access.log # Nümunə çıxışı: # 192.168.1.1 - - [27/Noyabr/2024:14:32:10 +0000] "GET /index.html" 200 ... # -v parametri ilə uyğun gəlməyən sətirləri çap etməyin: grep -v "GET" /var/log/nginx/access.log # Nümunə çıxışı: # 192.168.1.1 - - [27/Noyabr/2024:14:32:15 +0000] "POST /api/v1/data" 201 ... # -c parametrinə uyğun sətirlərin sayını çap etmək: grep -c "GET" /var/log/nginx/access.log # Nümunə çıxışı: #124
Təkmiləşdirilmiş Grep istifadəsi
Qabaqcıl grep istifadəsində müntəzəm ifadələr mühüm yer tutur. Bundan əlavə, grep-in digər qabaqcıl seçimləri də gündəlik iş axınlarında çox faydalıdır. Bu bölmədə biz müntəzəm ifadələrin gücünü və onlardan grep ilə necə istifadə edəcəyini ətraflı müzakirə edəcəyik. Biz grep-in bəzi digər inkişaf etmiş xüsusiyyətlərini də nəzərdən keçirəcəyik.
# Sətrin əvvəlində müəyyən bir IP ünvanı olan sətirləri ekranda çap edir: grep "^78\.172\.216\.215" /var/log/nginx/access.log # Nümunə çıxışı: # 78.172.216.215 - - [27/Noyabr/2024:13:32:10 +0000] "GET /index.html" 200 ... # "404" xəta kodunu ehtiva edən çap xətləri: grep " 404 " /var/log/nginx/access.log # Nümunə çıxışı: # 78.172.216.215 - - [27/Noyabr/2024:14:45:12 +0000] "GET /non-existent-file.html" 404 ... # "Səhv" sözü olan və "client" sözü ilə başlayan sətirlərin çapı: grep "^client.*error" /var/log/nginx/error.log # Nümunə çıxışı: # müştəri: "78.172.216.215", server: , sorğu: "GET /non-existent-file.html", xəta: ...
Sıra nəzarət seçimləri
-A NUM: Uyğun sətirdən sonra göstərilən sətir sayını çap edir.
-B NUM: Uyğun sətirdən əvvəl göstərilən sətir sayını çap edir.
-C NUM: Uyğun sətirdən əvvəl və sonra göstərilən sətir sayını çap edir.
# Uyğun sətirdən sonra 3 sətir ekranda göstərilir grep -A 3 "error" /var/log/nginx/error.log # Nümunə çıxışı: # 2024/11/27 14:32:12 [error] ... #... #... #... # Uyğun sətirdən əvvəl 3 sətir çap: grep -B 3 "səhv" /var/log/nginx/error.log # Nümunə çıxışı: #... #... #... # 2024/11/27 14:50:12 [error] ... # Uyğun sətirdən əvvəl və sonra 3 sətir çap etmək: grep -C 3 "error" /var/log/nginx/error.log # Nümunə çıxışı: #... #... #... # 2024/11/27 14:58:12 [xəta] ... #...
Uyğun mətn və fayl yoxlanışıni edək
-o: Yalnız uyğun olan hissəni çap edir.
-l və ya –files-with-matches: Uyğunluqları olan faylları siyahıya alır.
–exclude, –include: Müəyyən fayl növlərini daxil etmək və ya xaric etmək üçün istifadə olunur.
# Yalnız uyğun hissəni ekranda çap edin: grep -o "error" /var/log/nginx/error.log # Nümunə çıxışı: #error #error #error # Uyğunluğu olan faylların siyahısı: grep -l "error" /var/log/nginx/*.log # Nümunə çıxışı: # /var/log/nginx/error.log # Müəyyən fayl növlərini istisna edin: grep "error" /var/log/nginx/*.log --exclude=*.gz # Nümunə çıxışı: # /var/log/nginx/error.log:2024/11/27 14:14:12 [xəta] ...
Grep ilə Log analizi etmək
Log analizi sistemlərdə baş verən səhvləri və xəbərdarlıqları aşkar etmək üçün vacibdir.
Açar söz axtarışı etmək üçün aşağıdakı komandadan sitifadə etməliyik
# "error" sözünü özündə əks etdirən edən sətirləri tapın və müvafiq məlumatları çap edin: grep -i "error" /var/log/nginx/error.log | awk '{$1, $2, $3, $4, $5 çap edin}'
Loglardakı unikal məlumatların tapılması
Siz loglarda unikal məlumatları tapmaq və saymaq üçün grep və sıralama əmrlərindən birlikdə istifadə edə bilərsiniz.
# Unikal IP ünvanlarını və hit saylarını tapmaq üçün: grep -oE "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} " /var/log/nginx/linuxpedi.com.access.log.1 | sort | uniq -c # Nümunənin çıxışı: 1 1.8.1.7 1 1.9.0.1 2 101.0.0.0 4 101.200.46.19 8 102.0.0.0 19 103.0.0.0 28 103.154.125.98 2 103.194.186.170 3 103.212.81.99 2 103.30.212.11 16 104,209,133,168 1 104.21.60.244 1 104.234.204.134 1 104.238.83.221 2 104,247,162,213
grep mətn emalı və log təhlili üçün çox güclü və çevik vasitədir. Normal ifadələr və grep (awk, sed və s.) ilə istifadə oluna bilən digər alətlərlə siz sistem monitorinqi və xəta aşkarlama tapşırıqlarını asanlıqla yerinə yetirə bilərsiniz.