Можно взять вот такой один лайнер:
grep -q "utm_source=email392" /var/log/apache2/other_vhosts_access.log && grep -q "utm_source=email392" /var/log/apache2/other_vhosts_access.log | mail -S "Accessed!" foo@bar.com
и периодически запускайте его через cron
.
Объясняя это более подробно :первый grep
используется только для проверки необходимости дальнейших действий (добавление -q
делает его тихим, скрывая любые совпадения, которые он может найти ). &&
означает, что остальная часть строки будет выполняться только в том случае, если первая grep
найдет совпадение (, т.е. вернет 0 ). Если это так, совпадающая строка (с ), полученная вторым grep
, передается в mail
для отправки foo@bar.com
по электронной почте с темой, указанной аргументом -s
. (" Доступ! " ).
Та же логика(grep -q... &&...
)может использоваться для выполнения любых других действий. Вы можете запускать все, что хотите, после &&
, например. сценарий оболочки для более сложных вещей.
Обратите внимание, что если вы запускаете это с более высокой частотой, чем частота вращения журнала --, например. проверка ежечасно, но ротация журналов ежедневно --действие может запускаться несколько раз, так как grep
будет находить одну и ту же строку (с )снова и снова, пока журнал не будет ротироваться.
Да, это был глупый вопрос.
Оказалось, что у меня на компьютере есть vim, однако я пытался запустить его через «vim» вместо «vi».
Теперь моя проблема решена, и я могу успешно загрузить свою ОС.