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

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

4

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


style="display:block"
data-ad-client="ca-pub-2524362972367757"
data-ad-slot="3629500545"
data-ad-format="auto"
data-full-width-responsive="true">

Чтобы начать запись нужно выполнить команду 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
Войдите, чтобы ставить лайкимне нравится
Лайков: 0
войдите, чтобы ставить лайки
4

Комментарии

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

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

Ваше имя:
Текст комментария: