Shell script programozás? Hogyan?
Feladat:
Bejelentkezési statisztika
A shell script szűrje a last parancs eredményét, és írja ki hallgatókat csökkenő/növekvő sorrendben az alapján, hogy hányszor jelentkeztek be. Egy másik kapcsolóval azt írja ki, hogy mennyi időt töltöttek el összesen az adott gépen (szintén növekvő/csökkenő sorrendben listázva). Meg lehessen adni, hogy hány darab felhasználót listázzon ki. Pl.:
$>gepido -p n 2
user1 Kiss Jozsef 25 login
user2 Nagy Pal 23 login
$>gepido -t cs 2
login name day:hour:min min
user2 Nagy Pal 01:22:18 3778
user1 Kiss Jozsef 01:12:36 3296
Idáig ennyi van kész:
#! /bin/bash
last | sort | awk -v limit=$3 '
BEGIN{nev="";db_nev=0;db=0}
{
db++
if (db >= limit) {exit 0}
if (nev != $1)
{
print nev" \t"db_nev" \t login"
nev=$1
db_nev=0
}
else
{
db_nev++
}
}
END{}
' | sort -g -r
Tehát csökkenő sorrendbe rendezi, és a harmadik paraméterről beolvassa a limitet is.
Előre is köszönöm!
Miskolci egyetem számiótógép arhitektúrák?: D
Már rengetegen kérdezték. Valahol biztos van válasz.
Elso reszhez:
last | cut -d\ -f1 | sort | uniq -c | sort -rn | head -n 2 | while read x; do n=$(echo $x|cut -d\ -f1);u=$(echo $x|cut -d\ -f2); name=$(grep ^$u /etc/passwd |cut -d: -f5 | cut -d, -f1); if [ -z "$name" ];then name='n/a';fi; echo "$u $name $n login";done
A masodik reszhez inkabb perl-t, vagy python-t hasznalnek, kulonben atlathatalan lesz.
pastebin pont com per 43hRdKwi
Nagyon szépen köszönöm! Már csak az a baj, hogy lefuttatom és nem teljesen azt az eredményt adja amit kéne neki,ezt irja:
cut: d:: No such file or directory
cut: d,: No such file or directory
nem tudom esetleg nekem kéne megadnom paramétereket?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!