Автор Тема: Автологгирование терминальной сессии.  (Прочитано 1540 раз)

0 Пользователей и 1 Гость просматривают эту тему.

symon2014

  • Гость
Здравствуйте, решил поместить тему здесь, поскольку на минте, но задача о скрипте, который хочется пристроить.
Вот здесь
нашёл статейку , захотел себе сделать, поскольку имею привычку издеваться над осью, и иногда хочется посмотреть на свои злодейства. Программист почти от слова никак, но в статье камней не увидел. Скрипт добавил, папку для лога создал, ребутнулся и тормознул. В иксы не идёт категорически, пока сидел в консоли , видел жалобу на строку - [#Record terminal sessions] - команда не найдена, закомментил. В консоли лог пишет, но в иксы зайти не даёт, выхлоп под спойлером.
Spoiler: ShowHide
Скрипт запущен Вт 25 июл 2017 09:14:39
msuser@msuser ~ $ nndtvoju mamu imel
tvoju: команда не найдена
msuser@msuser ~ $ sam durak
Программа 'sam' на данный момент не установлена. Вы можете установить её, выполнив:
sudo apt install simon
msuser@msuser ~ $ pipeczdec
pizdec: команда не найдена
msuser@msuser ~ $ startx


X.Org X Server 1.18.4
Release Date: 2016-07-19
X Protocol Version 11, Revision 0
Build Operating System: Linux 4.4.0-83-generic x86_64 Ubuntu
Current Operating System: Linux msuser 4.10.0-27-generic #30~16.04.2-Ubuntu SMP Thu Jun 29 16:07:46 UTC 2017 x86_64
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.10.0-27-generic root=UUID=2ac20a70-9d3c-4077-abf5-6e820594e383 ro
Build Date: 17 July 2017 05:05:12PM
xorg-server 2:1.18.4-0ubuntu0.3 (For technical support please see http://www.ubuntu.com/support)
Current version of pixman: 0.33.6
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/home/msuser/.local/share/xorg/Xorg.1.log", Time: Tue Jul 25 09:16:36 2017
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
(EE)
Fatal server error:
(EE) parse_vt_settings: Cannot open /dev/tty0 (Permission denied)
(EE)
(EE)
Please consult the The X.Org Foundation support
at http://wiki.x.org
for help.
(EE) Please also check the log file at "/home/msuser/.local/share/xorg/Xorg.1.log" for additional information.
(EE)
(EE) Server terminated with error (1). Closing log file.
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error
Не удалось получить файловый дескриптор, указывающий на консоль
msuser@msuser ~ $

Чего хочу? Просто чтобы вся история писалась в папку с логом. И наверно ещё ньюанс.  Вот это мне не нужно${output}.timing  , пишет непонятный лог с непонятными цифирями.
Как бы это осуществить? Заранее спасибо.

Добавлю для не посмотревших статью. Есть простой скрипт ( мне так показалось )
[#Record terminal sessions]
if [ "x$SESSION_RECORD" = "x" ]
then
timestamp=`date "+%m%d%Y%H%M"`
output=/var/log/session/session.$USER.$$.$timestamp
SESSION_RECORD=started
export SESSION_RECORD
script -t -f -q 2>${output}.timing $output
exit
fi
За последующие посты без тегов буду отправлять в бан, последнее предупреждение.
« Последнее редактирование: 30 Июль 2017, 18:26:39 от ogost »
 


Оффлайн ecc83

  • Ветеран
  • *****
  • Сообщений: 1359
  • Debian, Openbox
Re: Автологгирование терминальной сессии.
« Ответ #1 : 25 Июль 2017, 18:49:58 »
Этот скрипт пишет ТОЛЬКО терминальную сессию. Никаие "иксы" он не запишет. Ты много хочешь от пяти строчек кода ;)
 

symon2014

  • Гость
Re: Автологгирование терминальной сессии.
« Ответ #2 : 25 Июль 2017, 19:11:12 »
Вот какой ГУЙ написал эту статью? И как отличить там консоль от терминала. Могучий русский язык против англосаксов. А вот действительно нет вариантов? Вот очень хочется эту простенькую тулзу.
 

Оффлайн ecc83

  • Ветеран
  • *****
  • Сообщений: 1359
  • Debian, Openbox
Re: Автологгирование терминальной сессии.
« Ответ #3 : 25 Июль 2017, 19:34:20 »
И как отличить там консоль от терминала.

Где "там"?
Терминальная сессия не подразумевает графической среды. Всё остальное, личная интерпретация, после прочтения статьи, носителя "могучего" языка :)


А вот действительно нет вариантов? Вот очень хочется эту простенькую тулзу.

Варианты есть всегда. Можно на табуретке на Луну слетать. Необходимо только построить такую табуретку ;)
Относительно твоего желания, "простенькой тулзой" его не удовлетворить.

Лучше поищи что то готовое, если оно конечно существует.
 

symon2014

  • Гость
Re: Автологгирование терминальной сессии.
« Ответ #4 : 26 Июль 2017, 08:18:49 »
ecc83, Оказывается работает это в гуях. Этo утилитка script позволяет, получается как скринкаст терминала даже с таймингом для последуещего воспроизведения  в режиме реального времени. Но только внутри одной сессии, и с ручным вводом комманд. А так хочется автоматизировать сей процесс в виде скрипта для многосессионости. Будем искать с перламутровыми пуговицами.  ;D
 

Оффлайн ecc83

  • Ветеран
  • *****
  • Сообщений: 1359
  • Debian, Openbox
Re: Автологгирование терминальной сессии.
« Ответ #5 : 26 Июль 2017, 09:04:54 »
Будем искать с перламутровыми пуговицами.  ;D

Ну удачи
 

Оффлайн Testing

  • Пользователь
  • *
  • Сообщений: 33
Re: Автологгирование терминальной сессии.
« Ответ #6 : 28 Июль 2017, 22:22:11 »
Цитировать
Чего хочу? Просто чтобы вся история писалась в папку с логом.
История чего? Команд? Она и так пишется в ~/.bash_history.
Если хотите посмотреть сообщения самой консоли непосредственно из иксов, то...
$ man xconsole
$ xconsole -notify -verbose -exitOnFail
...или в ~/.console.log, если стартануть иксы с помощью
$ startx > .console.log 2>&1
А есть еще и  https://packages.debian.org/stretch/ttyrec

 ;)
 

symon2014

  • Гость
Re: Автологгирование терминальной сессии.
« Ответ #7 : 30 Июль 2017, 01:59:28 »
Testing , спасибо за советы. За тему не говорю, но вы хотя бы название прочли.
 

Оффлайн Testing

  • Пользователь
  • *
  • Сообщений: 33
Re: Автологгирование терминальной сессии.
« Ответ #8 : 23 Сентябрь 2017, 01:49:35 »
 

symon2014

  • Гость
Re: Автологгирование терминальной сессии.
« Ответ #9 : 23 Сентябрь 2017, 14:51:10 »
Почти отлично, запись лога включается при открытии терминала и заканчивается при выходе и т.д. Но есть ещё одна неудобная фича. Записывается всё подряд вместе со  служебными символами ( выглядит непривлекательно ), для исправления этого в скрипте есть алиас savelog , который приводит лог в удобочитаемый текстовый файл (чуток подправил ), но и тут собака порылась, алиас нужно запускать вручную перед выходом из сессии. Как бы заставить его выполняться просто при закрытии терминала.  :)
 

Оффлайн anoobis

  • Активный пользователь
  • **
  • Сообщений: 76
Re: Автологгирование терминальной сессии.
« Ответ #10 : 25 Сентябрь 2017, 22:19:14 »
А вы не смотрели в сторону мультиплексоров типа tmux или screen? У них такая фича вроде как встроена из коробки, к тому же существует множество скриптов, что делает её чуть удобнее, подробнее не скажу, но они это поддерживают точно.
 

symon2014

  • Гость
Re: Автологгирование терминальной сессии.
« Ответ #11 : 25 Сентябрь 2017, 23:33:07 »
tmux или screen
Не то, у меня другая цель, что бы всё происходящее в терминале в течение дня писалось в файл. И желательно без моего непосредственного участия.
 

Оффлайн anoobis

  • Активный пользователь
  • **
  • Сообщений: 76
Re: Автологгирование терминальной сессии.
« Ответ #12 : 26 Сентябрь 2017, 17:28:20 »
Ну так tmux и запускается в терминале или tty, а также ведёт свою историю терминальной сессии, а история комманд в баше... ну, ладно.. может быть я неправильно вас понял.
 

symon2014

  • Гость
Re: Автологгирование терминальной сессии.
« Ответ #13 : 27 Сентябрь 2017, 08:01:39 »
В общем по большому счёты задача решена. Скрипт из ссылки  выше в плане логгирования вполне работоспособен, но там есть одно неудобство. Для перевода лога в удобочитаемый вид - алиас savelog приходится выполнять вручную, это решено следующим образом, в файл .bashrc  после добавленной строки smart_script нужно добавить ещё одну - trap 'savelog log' EXIT    ,  эта команда отслеживает сигнал EXIT при закрытии терминала и сначала выполняет алиас savelog а затем закрывает терминал.
 

Теги: