Időnként alábecsüljük a naplók olvasásának és értelmezésének fontosságát. A rendszergazda vagy a felhasználó számára számára a naplók igen fontosak lehetnek. A naplók olvasásával elemezhetjük, hogy mi okozza a hibát vagy hibákat. A dmesg egy olyan, sokak által kedvelt parancssoros alkalmazás, amely a rendszermag (kernel) üzeneteit kinyomtatja a terminál ablakába vagy a konzolra, bizonyos mélység (részletgazdagság) szerint. Ez általában minden Linux terjesztésnél ugyanolyan mélységű részletességet jelent, amely a szint szerint változtatható (nem szoktuk). A kimenetben éppen annyi információ látszik, mint, amennyi szükséges a rendszermag működésének elvárhatóan megfelelő elemzéséhez. A túlzott részletességű kimenet felesleges és olvasása időrabló lenne. A szegényes, azaz nem túl részletgazdag kimenetből nem tudnánk meg szinte semmit.
A /var/log/ elérési úton több naplófájl is létezik, mindnek feladata van, sőt grafikus napló olvasó alkalmazás is létezik. Ezekre most nem térek ki, de megéri utánanézned a témának, illetve találkozhatsz a fórumon is velük.
A dmesg parancs kimenetében közölt (megjelenő, látható) adatok, üzenetek információkat tartalmazhatnak a processzorról, a merevlemezről, a nyomtatóról, a billentyűzetről, a memóriáról és az illesztőprogramokról is. A dmesg az összes adatot a rendszermag gyűrűs pufferéből olvassa. Fontos tudni, hogy valós idejű adatokról van szó. A kimeneti üzenetek igen terjedelmesek is lehetnek.
A dmesg egy rövídítésből képzett mozaikszó: display and driver messages
Milyen kívánságunk lehetne még? Óhaj, sóhaj? Igen. Most, hogy szólsz, eszembe jutott az, hogy ...
A parancs kimenetében jellemzően nem az ember által könnyen értelmezhető időformátumban jelennek meg a dátumok.
Mutatok két lehetőséget a kellemesebb megjelenítésre:
dmesg --time-format iso \ | while read datestring rest; do \ printf '%s\n' "$(date -d "$datestring" +%F-%T) $rest"; done
dmesg --time-format iso \ | gawk '{ printf (strftime("+%F-%T",mktime(gensub("[-+T:,]"," ","g",$1)))) ; $1 = ""; print $0}'
... bármelyiket használhatod.
Az értelmezhetőbb dátum és idő ismeretében a kimenetben megjelenő hibák kis gondolkodással könnyebben visszavezethetőek valamilyen okra és tevékenységre. Akár az is kideríthető, hogy egy eszköz használatban volt-e.
A kézikönyv
man dmesg
illetve a súgó
dmesg -h
tartalmaz más paramétereket is.
Listázom, ők azok (a grep paranccsal szűkítettem a time kifejezésre a kimenetet):
dmesg -h | grep time -p, --force-prefix force timestamp output on each line of multi-line messages -d, --show-delta show time delta between printed messages -e, --reltime show local time and time delta in readable format -T, --ctime show human-readable timestamp (may be inaccurate!) -t, --notime don't show any timestamp with messages --time-format <format> show timestamp using the given format: [delta|reltime|ctime|notime|iso] Suspending/resume will make ctime and iso timestamps inaccurate.
Próbáld ki ezeket is.
Hasznos információk
Mennyi az idő most? Idő ellenőrzés módszerek és kimeneteik:
sudo hwclock --show 2020-01-14 18:05:03.717970+01:00
date 2020. jan. 14., kedd, 18:05:11 CET
Az általában megjelenő idő formátum átalakítása.
A példa (ne így használd!),
date -u -d @{DMESG TIME}
amit jobban megértesz, amikor egy dmesg kimenetből másolt időt fordítok le az ember által jobban érthető formára:
date -u -d @12285.168876 1970. jan. 1., csütörtök, 03:24:45 UTC
... az idő a rendszer időzóna beállításoknak megfelelő kinézet (a példában Magyarország).
A megjelenített „idő” csalóka. Valójában ugyanazt látod, mint amit az uptime kimenet mutat: 0 nap, 3 óra 24 perc
Az így megjelenített idő a rendszermag ébredésétől, vagyis a rendszer utolsó indításától számított idő. Nem ugyanaz, mint helyi idő (date).
A rendszer indítása óta eltelt idő (és néhány más információ), az uptime (felébredés ideje): 3 óra 4 perc
uptime 18:51:00 up 3:04, 1 user, load average: 0,91, 1,01, 0,89
A rendszermag „időszámítása” (a parancssor futtatásának időpontjában):
cat /proc/uptime 10978.68 36948.86
Az uptime parancs kézikönyve,
man uptime
és egy rövid részlet.
UPTIME(1) Linux Programmer's Manual UPTIME(1) NÉV uptime - Kiírja mennyi ideje fut a rendszer. LEÍRÁS Az uptime program egysoros leírást ad az alábbi információkról. A pillanatnyi idő, mennyi ideje fut a rendszer, hány felhasználó van pillanatnyilag belépve, és rendszer átlagos loadja az elmúlt 1, 5, és 15 percre. Ez ugyanaz az információ, amit a w(1) parancs által kiírt első sor tartalmaz.
A kézikönyvekből a Q billentyű megnyomásával lehet kilépni.
Enjoy :-)
https://www.youtube.com/watch?v=Mbao_laqF8E
Forrás:
https://unix.stackexchange.com/questions/538384/dmesg-custom-time-format
https://www.incredigeek.com/home/show-human-readable-time-in-dmesg/
https://ubuntuforums.org/showthread.php?t=1499412
Hozzászólások
Kimenet fájlba mentéssel együtt
Beküldte kimarite -
Értékelés:
A kimenet, ami egy szövegfájl, a saját könyvtáradba kerül, időpont feltüntetésével a fájl névben:
A szöveges kimenet egyedi könyvtárba mentésére a hozzászólás második részében találsz leírást.
Mindkét parancssort egy, az egyben kell másolni. Ugyanazt csinálják.
vagy
A terminál megnyitásakor a saját könyvtáradban állsz (ott vagy, ott tartózkodsz). Ha más könyvtárban, például a Letöltések könyvtárban állva futtatod a parancsort, akkor a kimenet is ugyanabba a könyvtárba kerül, ahol a parancssort futtattad. Mert nem adtál meg semmilyen elérési útvonalat, a mentés helyének tekintetében.
A mentett szövegfájl kinézete (listázás eredménye a grep alkalmazással szűrve):
... más formátum is beállítható.
Egyebek
A kimenet mentése irányítható. Ehhez meg kell adnod az elérési útvonalat.
Ha a mentést a Letöltések könyvtárba szeretnéd, annak elérési útvonala a kiemelt szövegrész (kétféle módszer):
-- ha a saját könyvtáradban állsz, akkor így,
... a Letöltések könyvtárhoz elegendő a relatív elérési útvonalat megadnod, de megadhatod a teljes elérési útvonalat is.
-- ha nem a saját könyvtáradban állsz, akkor így néz ki:
A ~/Letöltések/ egy rövidített teljes elérési útvonalra példa, a saját könyvtár jelzésére.
Nézd meg a könyvtár teljes elérési útvonalát (terminálban):
A kimenet nálam (amikor a saját könyvtáramban állok):
A rövidített elnevezéssel összerakva, kivonva a ~ karaktert, ezt kapom:
Ha belépek a Letöltések könyvtárba (relatív elérési űtvonalat használva),
akkor is ugyanezt kapom:
Magyarázat:
A ~/ egy rövidített teljes elérési útvonal, kizárólag a saját könyvtár jelzésére.