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.

  • Сумерский черный список
  • Как я могу запустить growisofs через sudo?
  • Заблокирован мой собственный терминал Mac?
  • Невозможно создать копию / var / lib / mysql / ibdata1
  • Безопасность xhost (локальная) и пересылка sudo xauthority
  • исключить команды из прав пользователя sudo
  • Что мне нужно иметь внутри моего файла sources.list?
  • Sudo выполнить сценарий оболочки по-разному по сравнению с прямым пользователем выполнить его
  • 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 
    Interesting Posts

    использовать только одну беспроводную карту для подключения к Wi-Fi сети и обмениваться Интернетом через Wi-Fi в то же время

    Я хочу, чтобы несколько подсказок расшифровывали несколько жестких дисков, которые содержат корневую файловую систему

    повторное касание файлов по sshfs

    Файл поврежден, как мне переустановить пакеты на Debian?

    Сложное содержимое переменной не попало в sed

    Могу ли я установить ubuntu на образ Virtualbox и использовать его где угодно?

    После включения apparmor Lightdm не заходит автоматически

    Удалять драйвер nouveau (nvidia) без перезагрузки

    Отключите USB-устройство, у которого нет драйвера

    как закончить последовательность tmux после переключения панелей

    Когда вы не хотите устанавливать загрузчик GRUB?

    Как я могу использовать grep для поиска файла для комбинаций строк?

    Как манипулировать CSV-файлом с помощью sed или awk?

    Применение настроек мыши при запуске

    Как установить параметры принтера по умолчанию без драйвера

    Linux и Unix - лучшая ОС в мире.