Запись всего, что происходит в терминале в файл. Linux статьи
Написать статью
Войдите, чтобы писать статьи

Запись всего, что происходит в терминале в файл

4

Хочу рассказать об одной полезной команде, с помощью которой можно записывать все, что происходит в терминале в файл. Фактически вы составляете полный лог всех команд, которые вы вводите в терминале и то, что выводится на экран.

Чтобы начать запись нужно выполнить команду script. Если вызвать команду script без параметров, то запись будет вестись в файл с именем typescript.

yuriy@yuriy:~$ script
Скрипт запущен, файл - typescript

Файл будет создан именно в той директории, в которой вы находитесь. Вывести название текущей директории можно командой pwd. Если файл уже существует, то он будет очищен.

В качестве параметра команде script можно указать имя файла, в который вы хотите записывать всю активность в терминале. Пример вызова:

script myterminal.log

После ввода команды будет создан файл, но данные в него будут записаны только после того, как вы введете команду exit или нажмете сочетание клавиш Ctrl+D. Пример:

yuriy@bum:~$ script
Скрипт запущен, файл - typescript
yuriy@bum:~$ pwd
/home/yuriy
yuriy@bum:~$ uptime
 21:47:40 up 6 min,  2 users,  load average: 1.20, 1.37, 0.71
yuriy@bum:~$ exit
exit
Скрипт выполнен, файл - typescript
yuriy@bum:~$

Мы выполнили команду script. Автоматически был создан файл typescript (если он уже существовал, то он будет очищен). С этого момента система начинает запоминать весь ввод и вывод в терминале. В конце мы вводим команду exit и в файл с именем typescript записывается все, что происходило в терминале с момента ввода команды script.


Если вы хотите, чтобы запись велась уже в существующий файл, тогда нужно добавить опцию -a. В этом случае файл не будет очищен, а новые данные будут добавлены к текущему содержимому. Пример:

yuriy@bum:~$ script my.log     <--- Первый вызов: создается пустой файл my.log
Скрипт запущен, файл - my.log
yuriy@bum:~$ ifconfig 
eth0      Link encap:Ethernet  HWaddr bb:aa:cc:dd:aa:bb
..
yuriy@bum:~$ exit              <--- Данные записываются в файл my.log
exit
Скрипт выполнен, файл - my.log
yuriy@bum:~$ script my.log -a  <--- Второй вызов с опцией -a. Файл не очищается.
Скрипт запущен, файл - my.log
yuriy@bum:~$ pwd
/home/yuriy
yuriy@bum:~$ exit
exit
Скрипт выполнен, файл - my.log <--- Данные добавляются к содержимому my.log

Еще стоит сказать о полезной опции -c или —command. Данная опция позволяет указать команду, которую нужно выполнить, а вывод этой команды записать файл. Пример:

yuriy@bum:~$ script my.log -c ls
Скрипт запущен, файл - my.log
my.log	temp	    Ubuntu One	Изображения
Загрузки	Рабочий стол
Скрипт выполнен, файл - my.log

В данном примере мы вызываем команду script с опцией -c и указываем в качестве параметра опции команду ls, которую нужно выполнить, а вывод команды нужно записать в файл my.log. Команда ls выводит список файлов в текущей директории. Таким образом в файл my.log попадет список файлов.


Получить справку по команде script (по всем ее опциям) можно, выполнив в терминале:

man script
Лайков: +1
войдите, чтобы ставить лайки
4
  • Опубликовано: 01.08.2012

Комментарии

Юра
01.08.2012
21:18
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+1
войдите, чтобы ставить лайки
Спасибо, тёзка! Полезный постик, КАК РАЗ кстати!
bibilkoff
Активный пользователь
Активный
10.09.2012
07:31
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+1
войдите, чтобы ставить лайки
Вот это вот полезная штука.
Юзер
27.02.2013
15:49
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+1
войдите, чтобы ставить лайки
Зачем оно надо, если есть .bash_history?
Voland
Активный пользователь
Активный
28.02.2013
18:27
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийЮзерРодительский комментарий
+1
войдите, чтобы ставить лайки
.bash_history хранит только список введенных команд, а эта штука логирует всю активность в консоли.

Написать комментарий

Ваше имя:
Текст комментария:
  • Уважать других.
  • Не ругаться.
  • Без оскорблений.
  • Без грубости.
  • Не переходить на личности.
  • Писать на русском языке.
  • Без политики.
  • Без флуда.
Правила