Искать решил периодами в сутки - т.е. за последние сутки, 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как параметр принимает цифру, означающую кол-во суток
без параметров ищет за одни последние сутки
Комментариев нет :
Отправить комментарий