Есть ли простой способ изменить общие папки samba?

Все остальные текущие ответы основаны на том, что записи в файле журнала сортируются хронологически или тот факт, что диапазон дат можно легко сопоставить с регулярными выражениями. Если вы хотите получить более общее решение, нам нужно сделать еще несколько программ.

Я представляю этот скрипт GNU AWK:

#!/usr/bin/gawk -f
BEGIN {
    starttime = mktime(starttime)
    endtime = mktime(endtime)
}

func in_range(n, start, end) {
    return start <= n && n < end
}

match($0, /^([0-9]{4})-([0-9]{2})-([0-9]{2})\s/, m) &&
    in_range(mktime(m[1] " " m[2] " " m[3] " 00 00 00"), starttime, endtime)

Вы отправляете начальное и конечное время через переменные starttime и endtime в формате, который понимает mktime (YYYY MM DD hh dd ss). Таким образом, вы запускаете команду awk так, считая, что вышеуказанный сценарий Awk находится в исполняемом файле filter-log-dates.awk в текущем рабочем каталоге, а файл журнала - mylog.txt:

./filter-log-dates.awk -v starttime='2016 07 13 00 00 00' -v endtime='2016 07 20 00 00 00' mylog.txt

Примечание. что конечное время является исключительным, т.е. е. действительные записи журнала должны иметь отметку времени до окончания времени.

Если ваш формат штампа времени отличается, вы можете настроить регулярное выражение, переданное функции match, в соответствии с этим.

0
задан 5 January 2012 в 05:26

0 ответов

Другие вопросы по тегам:

Похожие вопросы: