How to record the terminal on a server?
ttyrec
ttyrec allows you to record your terminal sessions easily. However, they are recorded in a special format (not video), but the resulting files are smaller, and as such easily transferable.
I use playterm.org as a hosting for my ttyrec files. It allows you to view your terminal recordings over a browser (as if it were a video).
Steps
Recording
sudo apt-get install ttyrec
ttyrec
#Type your commands
git init #Example command
exit
A ttyrec session is similar to a screen session, except that it is recorded. After your recording is complete, a file with .tty
extension will be present in your directory. You can upload that file to playterm, or pass people a download link.
Playing
To play the file, they'd need to use the ttyplay
command. Just use ttyplay file.tty
and it should play your terminal.
Editing
Since you are comfortable with adding audio later, I'd recommend copying the ttyrec file to a normal ubuntu desktop, and playing the recording (using ttyplay
) while recording it using a screencasting session. You can record your voiceovers at the same time.
References:
- ttyrec Home Page
- ttyrec man page
asciinema.org (earlier ascii.io)
asciinema [as-kee-nuh-muh] is a free and open source solution for recording terminal sessions and sharing them on the web.
It is fully open-source platform with aim of being a "go to" place for terminal users wanting to share their hackery. Web based player is an implementation of VT100/VT102 ANSI terminal, supporting most ANSI sequences, all text attributes and 256 colors.
Installation for Ubuntu
sudo apt-add-repository ppa:zanchey/
sudo apt-get
sudo apt-get install asciinema
It also supports other distros and even BSD/Mac systems. Installation Instructions
Start recording with asciinema rec
. If you want to upload recordings from command line, run asciinema upload
to upload your recording.
More instructions on the help page (asciinema
)
Take a look at recordMyDesktop, also, here's a comparison of screencasting software.
If you don't have any GUI you might want to use this script (it's part of the util-linux-ng
package):
user@srv % script logfile
Script started, file is logfile
user@srv % echo test
test
user@srv % exit
Script done, file is logfile
You'll find a recording of this session in logfile.
To track a SSH session in the same fashion you can use tee:
user@srv % ssh host | tee -a sshlog
However, both ways just dump commands and outputs, without any time assignments. So it's not applicable to record videos.
I recommend to use something like VirtualBox or VMware and record the windows with virtual machines inside...