Мониторинг журнала в реальном времени с использованием подстановки процесса bash:
#!/bin/bash
while IFS='$\n' read -r line;
do
# action here, log line in $line
done < <(tail -n 0 -f /var/log/apache2/other_vhosts_access.log | \
grep '/somefile.pdf?utm_source=email392')
Подстановка процессапередает в цикл чтения выходные данные из конвейера внутри <(...)
. Сама строка лога присваивается переменной $line
.
Журналы просматриваются с помощью tail -f
, который выводит строки по мере их записи в журналы. Если ваши файлы журнала периодически перемещаются с помощью logrotate , добавьте параметры --follow=name
и --retry
, чтобы отслеживать путь к файлу, а не только дескриптор файла.
Вывод из хвоста направляется в grep
, который фильтрует соответствующие строки, соответствующие вашим URL-адресам.
Попробуйте запустить bcdedit /set "{bootmgr}" path \EFI\ubuntu\grubx64.efi
от имени администратора в Windows.