Як зберігати журнали всіх робіт, виконаних через термінал? Наприклад, я хочу записати всю роботу, виконану над базою даних через термінал.
Як зберігати журнали всіх робіт, виконаних через термінал? Наприклад, я хочу записати всю роботу, виконану над базою даних через термінал.
Відповіді:
Коли ви будете готові розпочати запис файлу журналу, введіть:
script screen.log
Тепер, поки ви не зупините скрипт, усі введення та виведення в Терміналі будуть зберігатися в screen.log. Коли ви закінчите, просто введіть:
exit
Ваш файл screen.log буде зберігатися в локальному каталозі. Якщо ви хочете перенаправити його, використовуйте абсолютне ім'я шляху, наприклад ~/screen.log
. Це зробить саме те, що ви шукаєте.
Джерело: Посібник Ubuntu - Як реєструвати команди терміналів
man script
) навіть згадує vi
(редактор) ...
У мене є кращий спосіб використовувати syslog для реєстрації кожної команди оболонки, це може бути різним при розподілі 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 validationdb2 mahasan: root @ export [13291]: хвіст -f /var/log/mysql/mysql.log [0] 7 грудня 22:13:09 validationdb2 mahasan: root @ export [13291]: ls -lh [0] 7 грудня 22:13:27 validationdb2 mahasan: root @ export [13291]: натисніть тестову команду [0]