bash - skrypt wyszukujący pliki z określoną datą
maxblink - 23-10-2008 20:22
Witam wszystkich i prosze o pomoc, bo ja juz nie wiem co robie nie tak?
To jeszcze raz ;]
Sprawa wyglada tak ze:
w katalogu /home/xxx/pvpgn/var/users - mam pliki textowe, ktorych nazwy odpowiadaja nazwom kont uzytkownikow, w nich mam wlasnie ta linijke odnosnie ostatniego logowania. I potrzebuje taki skrypt, ktory to by mi wyszukiwal i zapisywal do pliku w: /home/xxx/wyniki/ w pliki starylog tylko te nazwy kont na ktore ostatnie logowanie bylo starsze niz 60 dni.
Linijka ta w oryginale wyglada tak: "BNET\\acct\\lastlogin_time"="1224736449" Ten last login, w przeliczeniu daje taka date = Thu OCT 23 06:34 2008
A co do skryptu, tego co podalem, to niestety nie dziala. Tworzy mi ten plik ale jest on pusty. #!/bin/bash
dir="/home/xxx/pvpgn/var/users/"
ofile="/home/xxx/wyniki/starylog"
minDate=$(date -d'2 months ago' +%s)
gawk -F\" -v minDate=$minDate '( $0 ~ /"BNET\\acct\\lastlogin_time"="[0-9]+"/ && $4 > minDate) {print FILENAME; nextfile}' ${dir}* > $ofile Czy macie jakas rade?
Przykro nam, strona o podanym adresie nie istnieje. Sprawdź, czy wpisałeś poprawny adres strony, lub skorzystaj z katalogu lub wyszukiwarki. |
| Copyright 1996 - 2006 Grupa Onet.pl SA - zobacz wszystkie serwisy » | |
kuzyn - 03-11-2008 23:33
Polecenie: cat nazwa_pliku | awk -F \" {'print $4'} wyciągnie Ci daty logowań z pliku.
Później musisz wykonać odejmowanie: data_dzisiejsza - data_wyciagneta_z_pliku=wynik A następnie za pomocą if: if wynik > 60
then
echo nazwa_usera > plik
else
fi Jeśli wkleisz mi tu dwa przykładowe pliki: jeden z logowaniem starszym niż 60 dni, drugi z logowaniem młodszym niż 60 dni to napisze Ci ten skrypt.
Fajnie by było jak byś mi jeszcze wytłumaczył co to za format daty. Chyba jakiś uniksowy?
maxblink - 04-11-2008 16:20
Juz mi pyklo :) poradzilem sobie z pomoca znajomego;)
kuzyn - 05-11-2008 19:02
No to wklej tu ten skrypt ... może komuś się przyda...