Добавить BASHPID в историю?

Вы можете использовать find , чтобы получить все файлы .txt , а затем grep искомая строка

$ find / -type f -name '*.txt' -exec grep 'test123' {} +

Где:

  • / поиск по всему серверу.
  • -тип f найти только файлы, а не каталоги
  • -name '* .txt' найти все .txt файлы
  • -exec grep 'test123' search test123 во всех найденных файлах
  • {} заменяется текущим именем файла, обрабатываемым везде, где оно встречается в аргументах команды, а не только в аргументах, где только оно
  • + это значительно улучшит время выполнения (так как он будет связывать аргументы перед выполнением до тех пор, пока)
4
03.07.2017, 23:55
2 ответа

Нужно что-то вроде "насрать на вечную историю".
Здесь есть хорошее описание, чтобы заставить его работать.

В этом решении по-прежнему отсутствует PID, который можно было бы добавить с помощью идей отсюда.

В основном:

export HISTTIMEFORMAT="%s "
PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND ; }"' \
               echo $$ $USER "$(history 1)" >> ~/.bash_eternal_history'

Который использует $PROMPT_COMMANDдля генерации:

$PID $USER $LAST_COMMAND

вывода для каждой выполненной команды.

3
27.01.2020, 20:53

Моя стратегия состоит в том, чтобы добавить к /etc/bash.bashrcследующую строку:

readonly PROMPT_COMMAND='history -a >(logger -t "cmdline $USER[$PWD] $SSH_TTY $SSH_CONNECTION")'

Затем в/etc/rsyslog.conf:

*.* @syslogserver:514

Я предпочитаю этот подход ведению журнала в один файл, так как:

  • файлы ротируются (т.е. не растут слишком сильно)
  • пользователь не удаляет историю
  • он создает удаленный журнал, устойчивый к несанкционированному вмешательству/взлому сервера
  • Журнал ротации на удаленном сервере системных журналов можно изменить, чтобы хранить несколько месяцев регистрации
  • syslog -ng позволяет вам иметь отдельные файлы журналов для каждого IP-адреса регистрации
  • все находится в центре, и вам не нужно вводить несколько подач, чтобы понять, что происходит
  • при прерывании удаленного сеанса bash локальная история теряется, и она не теряется при использовании этого метода
  • также при открытии нескольких сессий одним и тем же пользователем, опять же все команды не попадают в историю, а я их получаю этим методом.
3
27.01.2020, 20:53

Теги

Похожие вопросы