Strona 1 z 1

bash - skrypt wyszukujący pliki z określoną datą

: 23 października 2008, 20:22
autor: maxblink
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:

Kod: Zaznacz cały

/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:

Kod: Zaznacz cały

"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.

Kod: Zaznacz cały

#!/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?

: 03 listopada 2008, 23:33
autor: kuzyn
Polecenie:

Kod: Zaznacz cały

cat nazwa_pliku | awk -F \" {'print $4'}
wyciągnie Ci daty logowań z pliku.

Później musisz wykonać odejmowanie:

Kod: Zaznacz cały

data_dzisiejsza - data_wyciagneta_z_pliku=wynik
A następnie za pomocą if:

Kod: Zaznacz cały

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?

: 04 listopada 2008, 16:20
autor: maxblink
Juz mi pyklo :) poradzilem sobie z pomoca znajomego ;)

: 05 listopada 2008, 19:02
autor: kuzyn
No to wklej tu ten skrypt ... może komuś się przyda...