Most sys admins know the importance of keeping an action log
where various tasks, configuration changes, etc. are kept. Simple logs
indicating, “I did this” or “John did that” may be
sufficient in some organizations, but for some, full transcripts of changes
made are desired. Doing a copy-and-paste of terminal output can be tedious at
best, so one answer is to use a little-known program called script, which is part of the util-linux
package on most Linux distributions.

script records
everything in a session: things you type and things you see. It even records
color; so if your command prompt or program output contains color, script will record it.

To use script,
simply execute:

$ script

By default, it writes to a file called typescript in the current directory. From then on, everything you
type will be recorded to that file. To write to a different file, simply use script /path/to/file.

When you’re done, type exit.
This will close down the script session and save the file. You can now examine
the file using cat or any other program.

The downside of using script
is the fact that it records all special characters, so your output file will be
full of control characters and ansi escape sequences. This can be avoided by
using a very Spartan shell with script:

$ SHELL=/bin/sh PS1="$ " script

When using script,
don’t use interactive programs or programs that manipulate the screen, like vi or top. They will ruin the output of the session. Otherwise, any
command line programs you use and the steps you take to accomplish a task will
be recorded. If you do need to edit a file in the transcript, consider exiting
the script session and restarting it
after the file edit with script -a,
which will append the new session to the old session.

Delivered each Tuesday, TechRepublic’s free Linux NetNote provides tips, articles, and other resources to help you hone your Linux skills. Automatically sign up today!