Ubuntu Linux
-
hanta #8121 Sziasztok!
Remélem itt vannak olyanok, akik profik bash-ból :)
Egy kis segítséget kérnék, ha lehet. Suliban van egy beadandó feladatom, aminek vasárnapig kész kell lennie, de sehogy sem megy.
---------------------------------------------------------------------------------------------------------------------------------------------
A feladat:
F3_1. Írjon bash scriptet, amely megállapítja, hogy a paraméterül kapott syslog fájl átlagosan napi hány kernel bejegyzést tartalmaz Február hónapban!
A program ellenőrizze hogy pontosan 1 paramétert kapott-e, ".log"-ra végződik-e és hogy olvasható fájl-e. Ha nem megfelelő a paraméterek száma, végződése, jogosultsága, írjon ki rövid ismertetőt a használatról és térjen vissza hibás (1) kóddal (exit 1).
Február 28 napos. Az átlagnál azokat a napokat is számoljuk amikor nem volt bejegyzés. (Minden napra adjuk meg a kernel bejegyzések számát és ezt átlagoljuk.)
Egy minta syslog kernel bejegyzés igy néz ki:
Feb 17 13:14:38 ipari1 kernel: [ 0.000000] Initializing cgroup subsys cpuset
Az első két mező tartalmazza a dátumot. Egy kernel bejegyzés mindig tartalmazza a "kernel:" mintát. Az eredmény egész számot (az átlag egész része elég) írja ki a log.txt fájlba.
A feladat megoldása során minden tanult segédprogramokat használhat, ezen túl szükség esetén használjon vezérlési szerkezeteket, változókat, csővezetéket, csatorna átirányítást, parancsbehelyettesítést, parancslistát.
A feladatot a /tmp/syslog.log fájlon tesztelje!
A program paraméterei:
1. pozícionális paraméter: log file elérési út
pl:
./run.sh /tmp/syslog.log
Az eredmény log.txt tartalma:
343
---------------------------------------------------------------------------------------------------------------------------------------------
Ebből az elejét már megcsináltam, mikor ellenőriznie kell a dolgokat, maga a programrész nem megy. Nekem nem jön ki ez a 343-as eredmény. Sőt igazán azt sem értem pontosan, hogy most miket is akar átlagoltatni.
Mellékelem ezt a bizonyos syslog.log fájlt is: syslog.log
Előre is köszi a választ!