1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Record terminal sessions using script

Discussion in 'Unix' started by pradeep, Mar 21, 2007.

  1. pradeep

    pradeep Team Leader

    Apr 4, 2005
    Likes Received:
    Trophy Points:
    Kolkata, India
    Home Page:
    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.

Share This Page