முக்கிய உள்ளடக்கத்திற்குச் செல்லவும்
தொகுதி 8 · பாடம் 2 இன் 4பாடத்திட்டத்தில் 30/32~12 min
தொகுதி பாடங்கள் (2/4)

அப்பாச்சி பதிவு பாகுபடுத்தி

அப்பாச்சி பதிவுகள் (ஒருங்கிணைந்த வடிவம்) துல்லியமான கட்டமைப்பைக் கொண்டுள்ளன:

Code
127.0.0.1 - - [10/Oct/2024:13:55:36 +0000] "GET /index.html HTTP/1.1" 200 1234

பெயரிடப்பட்ட குழுக்களுடன் ஒவ்வொரு புலத்தையும் ஒரே ஷாட்டில் பிரித்தெடுக்கிறது:

Code
^(?<ip>\d+\.\d+\.\d+\.\d+)\s+\S+\s+\S+\s+\[[^\]]+\]\s+"(?<metodo>\w+)\s+(?<path>\S+)\s+\S+"\s+(?<status>\d+)\s+(?<size>\d+)

இது பயங்கரமாகத் தெரிகிறது, ஆனால் இது எளிய வடிவங்களின் இணைப்பு:

  • (?<ip>\d+\.\d+\.\d+\.\d+) -- ஆதாரம் IPv4.
  • \s+\S+\s+\S+ -- பயனர் ஐடிகள் (பொதுவாக -).
  • \[[^\]]+\] -- சதுர அடைப்புக்குறிக்குள் தேதி.
  • "(?<metodo>\w+)\s+(?<path>\S+)\s+\S+" -- மேற்கோள்களில் கோரிக்கை, HTTP முறை, பாதை மற்றும் பதிப்பு.
  • (?<status>\d+)\s+(?<size>\d+) -- நிலைக் குறியீடு மற்றும் பைட்டுகள் அனுப்பப்பட்டன.

பொது மூலோபாயம்

  1. உண்மையான வரியிலிருந்து தொடங்கவும் மற்றும் டிலிமிட்டர்களை பின் செய்யவும்: இடைவெளிகள், மேற்கோள்கள், அடைப்புக்குறிகள்.
  2. டிலிமிட்டர்களுக்கு இடையே, வகை டோக்கனை (ஐபி, சொல், எண்) அடையாளம் காணவும்.
  3. பெயரிடப்பட்ட குழுக்களில் மடிக்க நீங்கள் பிரித்தெடுக்க வேண்டியதை மட்டும்.

சிக்கலான பதிவுகளை பாகுபடுத்துதல்

பதிவு பாகுபடுத்தலில், மேற்கோள் காட்டப்பட்ட சரங்கள் அல்லது அடைப்புக்குறிகள் (எ.கா. பயனர்-ஏஜெண்ட்) கொண்டிருக்கும் போது தவிர, புலங்கள் பொதுவாக இடத்தால் பிரிக்கப்பட்டிருக்கும். வைல்டு கார்டு புள்ளிக்குப் பதிலாக எழுத்து வகுப்புகளைத் தவிர்த்துப் பயன்படுத்துவது பல நெடுவரிசைகளை தவறாக இணைப்பதைத் தடுக்கிறது.

முயற்சி செய்து பாருங்கள்

உடற்பயிற்சி#regex.m8.l2.e1
முயற்சிகள்: 0ஏற்றுகிறது…

ஒவ்வொரு பதிவு வரியின் தொடக்கத்திலும் IPv4 ஐ 'ip' என்ற பெயரிடப்பட்ட குழுவாக பிரித்தெடுக்கவும்.

எடிட்டரை ஏற்றுகிறது…
குறிப்பைக் காட்டு

^ மற்றும் m கொடியுடன் வரியின் தொடக்கத்தில் நங்கூரமிட்டு, ஐபியை (?<ip>...) மடிக்கவும்.

3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்

மதிப்பாய்வு பயிற்சி

உடற்பயிற்சி#regex.m8.l2.e2
முயற்சிகள்: 0ஏற்றுகிறது…

மேற்கோள்களுக்கு இடையே உள்ள கோரிக்கையின் HTTP முறை மற்றும் பாதையை பிரித்தெடுக்கவும், குழுக்களாக `metodo` மற்றும் `path`.

எடிட்டரை ஏற்றுகிறது…
குறிப்பைக் காட்டு

" உடன் திறக்கவும், பின்னர் (?<metodo>\\w+)\\s+(?<path>\\S+).

3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்

கூடுதல் சவால்

உடற்பயிற்சி#regex.m8.l2.e3
முயற்சிகள்: 0ஏற்றுகிறது…

Extract only the date and time part enclosed in brackets in logs, e.g. `10/Oct/2024:13:55:36 +0000`, as a named group `timestamp`.

எடிட்டரை ஏற்றுகிறது…
குறிப்பைக் காட்டு

Use \[(?<timestamp>[^\]]+)\] to prevent the engine from matching past the closing bracket.

3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்