У меня есть страница PHP, которая выполняет запросы для отображения и фильтрации архивов журналов в этом формате:
$output = shell_exec('cat /tmp/archive-08-10-2016-00.log' . $grepfilter);
echo "<pre>$output</pre>";
где $grepfilter
предварительно задана длинная цепочка трубок в соответствии с предварительно выбранными параметрами (eg. $grepfilter = " | grep -v \";OK;\ | grep -e WARNING | grep -v notthis";
)
Что мне нужно, это запустить это для нескольких файлов из нескольких дат, используя только одну команду оболочки (или, в худшем случае, запустить эту однострочную команду несколько раз из цикла php). Я искал и сумел найти решения для некоторых требований, и вот они:
1) Все журналы с определенной даты [РЕШИТЬ]:
cat /tmp/archive-08-10-2016-**.log
2) Все журналы за определенный месяц [РЕШИТЬ]:
cat /tmp/archive-08-**-2016-**.log
3) Диапазон дат в течение одного месяца (например, 3-7 августа):
может быть, что-то в направлении archive-08-[(03)|(04)|(05)...]
? не работает
4) Диапазон дат, охватывающий два месяца (например, 29 июля — 7 августа):
Задача ещё не решена.
Других решений пока нет …