Как мне зарегистрировать весь ввод и вывод в терминальной сессии?

Как мне вести логи всей работы, выполненной через терминал? Например, я хочу записать всю работу, проделанную с базой данных через терминал.

51
задан 10 July 2012 в 16:31

3 ответа

Когда вы будете готовы начать запись файла журнала, введите:

script screen.log

Теперь, пока вы не остановите скрипт, весь ввод и вывод в Терминале будет храниться в screen.log. Когда вы закончите, просто введите:

exit

Ваш файл screen.log будет сохранен в локальном каталоге. Если вы хотите перенаправить его, используйте абсолютный путь, например ~ / screen.log . Это сделает именно то, что вы ищете.

Источник: Руководство по Ubuntu - Как записывать команды терминала

76
ответ дан 10 July 2012 в 16:31

შეიძლება მოინდომოთ Asciinema . ჩანაწერის გაკეთების გარდა, თქვენ შესაძლებლობა გექნებათ გააზიაროთ იგი და ჩართოთ მოთამაშე თქვენს ბლოგზე, სტატიაში ან საკონფერენციო მოხსენებაში.

11
ответ дан 10 July 2012 в 16:31

У меня есть лучший способ использовать syslog для ведения журнала каждой команды оболочки, это может варьироваться в зависимости от дистрибутива Linux, но метод будет остаются прежними

Вам необходимо выполнить несколько шагов:

Шаг №1 (Создание службы системного журнала)

# 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 (Перезапустите службу системного журнала)

# /etc/init.d/rsyslog

Вот пример журнала:

Dec  7 22:13:00 validationdb2 mahasan: root@export [13291]: tail -f /var/log/mysql/mysql.log [0]
Dec  7 22:13:09 validationdb2 mahasan: root@export [13291]: ls -lh [0]
Dec  7 22:13:27 validationdb2 mahasan: root@export [13291]: touch test command  [0]
7
ответ дан 10 July 2012 в 16:31

Другие вопросы по тегам:

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