Искать решил периодами в сутки - т.е. за последние сутки, 2-е/3-е/т.д. суток
Вот, свелосипедил(?)
#!/bin/bash
SUM_LOG="/var/log/portage/elog/summary.log"
EM_LOG="/var/log/emerge.log"
[[ -n ${1} ]] && DAYS="${1}" || DAYS="1"
secs="86400" # seconds in 1 day
for count in `seq ${DAYS}`;do
DATA="$(date --date="@$(( `date +%s` - $(( $secs * ${count} )) ))" --rfc-3339=date)"
ALL="$(grep ${DATA} ${SUM_LOG} | awk '{print $13}' | tr -d \: | uniq)"
ALL_FAILED="$(
for i in ${ALL};do
grep "ERROR\: ${i}" ${SUM_LOG}
done | awk '{print $2}' | sort | uniq
)"
for x in ${ALL_FAILED};do
grep "${x}" ${EM_LOG} | tail -n1 | grep -q "completed" || FAILED+=" =${x}"
done
done
echo ${FAILED} | tr " " "\n" | sort | uniq
как параметр принимает цифру, означающую кол-во суток без параметров ищет за одни последние сутки
Комментариев нет :
Отправить комментарий