Привет Я пытаюсь использовать журналы доступа apache и копировать ошибки в другой файл. Я попробовал ниже параметры, и все они работают в командной строке, но при запуске из сценария они не работают.Сервер grep apache 500 ошибок для отдельного файла
Я понимаю, что команда хвоста не выходит и поэтому нет выхода. Но не уверен, как это преодолеть.
/usr/bin/tail -f /apps/apache/logs/access_log | grep -h "HTTP\/1.1\" 50." >> /tmp/log_error_capture.txt
grep -m 1 "HTTP\/1.1\" 50." <(tail -f /apps/apache/logs/access_log)
(tail -f -n0 /apps/apache/logs/access_log &) | grep -q "HTTP\/1.1\" 50." > /tmp/log_error_capture.txt
tail -f logfile |grep -m 1 "HTTP\/1.1\" 50." | xargs echo "" >> logfile \;
Может кто-нибудь предложить лучший способ для grep ошибок. Пожалуйста.
попробуйте добавить параметр «-line-buffered» в grep. – anishsane
мы часто имели такие ситуации, поэтому всегда рекомендуется проверять каждые 10 секунд, хвост файла журнала, отмечать линию, до которой вы закончили. поэтому в следующий раз снова хвост последних строк на основе отмеченного вами знака, до конца файла. дайте мне знать, если вы меня не получили. – Sanjeev
Если вы хотите, чтобы 'tail -f'you не * хотел * команду для выхода. Если вы просто хотите grep файлы на данный момент, вам не нужен хвост, просто grep. Возможно, вы хотите создать фон с '&'? Просьба уточнить. – tripleee