grep с переменной

Я пытаюсь создать сценарий для мониторинга всех логинов с использованием sudo, как успеха, так и неудачи.

Прямо сейчас, у меня есть:

set tdate = $(date "+%b %d") set attempted_su_log = /var/log/suattempts cat /var/log/secure | grep $tdate | grep 'servername su' >> $attempted_su_log 

Как я могу grep текущую дату из / var / log / secure, так что я получаю записи только с того дня, когда они произошли?

Когда я бегу

 cat /var/log/secure | grep 'Mar 18' | grep 'servername su' 

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

2 Solutions collect form web for “grep с переменной”

Вы должны grep "$tdate" аргумент grep: grep "$tdate" . Это связано с тем, что $tdate расширяется до двух разделенных $tdate слов, которые, в свою очередь, передаются в grep как два аргумента, если только двойные кавычки не добавляются.

Ваш скрипт можно было бы улучшить, чтобы удалить бесполезное использование cat и вызвать grep только один раз:

 </var/log/secure grep "$tdate.*servername su" >>"$attempted_su_log" 

tdate есть пространство. Таким образом, grep обрабатывает вторую часть tdate как имя файла. Вам нужно будет заключить $tdate в двойные кавычки, чтобы предотвратить это. Ваша команда должна выглядеть так:

 cat /var/log/secure | grep "$tdate" | grep 'servername su' >> $attempted_su_log 
  • Получение sudo для работы с псевдонимом
  • Не удалось получить лекцию sudo, работающую на сервере CentOS 7
  • Подробная информация о командах sudo, выполняемых всеми пользователями
  • Использование SUDO для выполнения общей команды внутри не доступного каталога
  • sudo: не спрашивайте пароль при входе в систему с помощью ssh key
  • Как обеспечить правильные разрешения для файлов при запуске установщика bash как sudo?
  • Предотвратите доступ пользователя sudo к определенной папке и файлам
  • Как добавить единственного пользователя в систему Debian обратно в группу sudo?
  • Почему для перезагрузки и отключения питания требуются привилегии root?
  • Как предоставить пользователям или группе разрешение linux sudo с ограниченным разрешением на определенные файлы
  • Могу ли я изменить пароль root на sudo, без su?
  • Как установить sudo не изменять $ HOME в Ubuntu и как отключить это поведение?
  • Linux и Unix - лучшая ОС в мире.