Как мне вести логи всей работы, выполненной через терминал? Например, я хочу записать всю работу, проделанную с базой данных через терминал.
Как мне вести логи всей работы, выполненной через терминал? Например, я хочу записать всю работу, проделанную с базой данных через терминал.
Ответы:
Когда вы будете готовы начать запись файла журнала, введите:
script screen.log
Теперь, пока вы не остановите скрипт, все входные и выходные данные в Терминале будут храниться в screen.log. Когда вы закончите, просто введите:
exit
Ваш файл screen.log будет храниться в локальном каталоге. Если вы хотите перенаправить его, используйте абсолютный путь, например ~/screen.log
. Это сделает именно то, что вы ищете.
Источник: Руководство по Ubuntu - Как регистрировать команды терминала
man script
) даже упоминает vi
(редактор) ...
У меня есть лучший способ использовать системный журнал для регистрации каждой команды оболочки, это может варьироваться в зависимости от распределения Linux, но метод останется тем же
Вам необходимо выполнить несколько шагов:
Шаг № 1 (Создание службы Syslog)
# vim /etc/rsyslog.d/bash.conf
local6.* /var/log/commands.log
Шаг № 2 (Откройте bashrc и введите команду ниже)
# vim /root/.bashrc
# Enable CLI Logging by Mansur 08-12-2016
whoami="$(whoami)@$(echo $SSH_CONNECTION | awk '{print $1}')"export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$whoami [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'
Ste # 3 (перезапустить службу Syslog)
# /etc/init.d/rsyslog
Вот пример журнала:
7 декабря 22:13:00 валидация db2 mahasan: root @ export [13291]: tail -f /var/log/mysql/mysql.log [0] 7 декабря 22:13:09 валидацияdb2 mahasan: root @ export [13291]: ls -lh [0] 7 декабря 22:13:27 validationdb2 mahasan: root @ export [13291]: команда сенсорного тестирования [0]