W dniu 2011-03-11 22:48, Dominik "Socek" Długajczyk:
Trochę zbaczam z tematu (i robię mały spam), ale czy próbowałeś mojego
programu do czytania logów?
http://socek.org/gh/
Nie wiem, czy rozwiązuje Twoje problemy, ale mam nadzieję, że tak.
Do logów właściwie napisałem swój własny skrypt wykorzystujący
dołączone do ekg 'ekglogs'. Jest w załączniku, gdyby ktoś był
zainteresowany. Opinie również mile widziane.
#!/bin/bash
logfile=""
lessarg="less -FR"
if [ "$logfile" == "" ]; then
echo
echo 'Najpierw edytuj ten skrypt i wpisz do zmiennej logfile (na samej górze)
¶cie¿kê do twojego pliku z archiwum ekg. Standardowo ~/.gg/history'
echo
exit 1
fi
if [ "$#" -lt 1 ]; then
echo
echo -e "Sposób u¿ycia: ekgl
<\033[1;38mmsg\033[0;0m|\033[1;38mst\033[0;0m|\033[1;38msta\033[0;0m|\033[1;38mstb\033[0;0m|\033[1;38mstn\033[0;0m|\033[1;38mign\033[0;0m|\033[1;38mall\033[0;0m>
[\033[1;38mnick\033[0;0m]"
echo
echo -e "\033[1;38mmsg\033[0;0m - wy¶wietla tylko wiadomo¶ci"
echo
echo -e "\033[1;38mst\033[0;0m - wy¶wietla tylko informacje o zmianach
statusu (wszystkich)"
echo
echo -e "\t\033[1;38msta\033[0;0m - wy¶wietla tylko informacje o zmianach
statusu na dostêpny"
echo
echo -e "\t\033[1;38mstb\033[0;0m - wy¶wietla tylko informacje o zmianach
statusu na zaraz wracam"
echo
echo -e "\t\033[1;38mstn\033[0;0m - wy¶wietla tylko informacje o zmianach
statusu na niedostêpny"
echo
echo -e "\033[1;38mign\033[0;0m - wy¶wietla tylko wiadomo¶ci od osób
zignorowanych"
echo
echo -e "\033[1;38mall\033[0;0m - wy¶wietla ca³e archiwum"
echo
echo -e "\033[1;38mnick\033[0;0m - argument opcjonalny; wy¶wietla
wiadomo¶ci/informacje o zmianach statusu tylko od podanego nicka"
echo
exit 1
fi
if [ "$1" == "lign" ]; then
echo; echo $(awk -F ';' '/__offline/ { print $4 }' .gg/userlist); echo
fi
if [ "$1" == "ign" ]; then
if [ "$#" -lt 2 ]; then
grep -E '(msgrecvign|chatrecvign)' $logfile | ekglogs -xrRsSCac | $lessarg
else
grep -E '(msgrecvign|chatrecvign)' $logfile | ekglogs -xrRsSCac -n "$2" |
$lessarg
fi
fi
if [ "$1" == "msg" ]; then
if [ "$#" -lt 2 ]; then
grep -v ^status $logfile | ekglogs -xrRsSCac | $lessarg
else
grep -v ^status $logfile | ekglogs -xrRsSCac -n "$2" | $lessarg
fi
fi
if [ "$1" == "st" ]; then
if [ "$#" -lt 2 ]; then
grep ^status $logfile | ekglogs -xrRsSCc | $lessarg
else
grep ^status $logfile | ekglogs -xrRsSCc -n "$2" | $lessarg
fi
fi
if [ "$1" == "sta" ]; then
if [ "$#" -lt 2 ]; then
grep ^status $logfile | grep ',avail$' | ekglogs -xrRsSCc | $lessarg
else
grep ^status $logfile | grep ',avail$' | ekglogs -xrRsSCc -n "$2" | $lessarg
fi
fi
if [ "$1" == "stb" ]; then
if [ "$#" -lt 2 ]; then
grep ^status $logfile | grep ',busy$' | ekglogs -xrRsSCc | $lessarg
else
grep ^status $logfile | grep ',busy$' | ekglogs -xrRsSCc -n "$2" | $lessarg
fi
fi
if [ "$1" == "stn" ]; then
if [ "$#" -lt 2 ]; then
grep ^status $logfile | grep ',notavail$' | ekglogs -xrRsSCc | $lessarg
else
grep ^status $logfile | grep ',notavail$' | ekglogs -xrRsSCc -n "$2" |
$lessarg
fi
fi
if [ "$1" == "all" ]; then
if [ "$#" -lt 2 ]; then
cat $logfile | ekglogs -xrRsSCc | $lessarg
else
cat $logfile | ekglogs -xrRsSCc -n "$2" | $lessarg
fi
fi