Many texts on Linux/Unix system administration advise you to have a diary and write down everything you do. I have finally realized the wisdom of this advice.
I use a simple shell script /usr/local/sbin/new-changelog-entry.
This script adds the current date and time to a file
/root/Changelog and opens it in a text editor. I usually have two
terminals (or two tabs in GNOME Terminal): one has a root shell where I do
things, the other has vi with /root/Changelog. I write down everything I
change, and usually copy the exact commands I executed. This lets me
redo the same thing very easily after OS upgrades, or on a different
Here are a couple of sample entries from my laptop:
2005-09-23 11:44 +0300: mg # # Overcoming the 2 GB limit with Samba: http://brianpuccio.net/node/664 # vi /etc/auto.misc added 'lfs' to the options of all smbfs filesystems /etc/init.d/autofs reload 2006-02-17 10:48 +0200: mg # # Installing Firefox 1.5 (from Dapper) on Ubuntu Breezy # # (I do not want to upgrade half of my system, so I'll compile the Dapper # debs from source) sudo -u mg -s cd /home/mg/src/apt-sources/ apt-get source firefox cd firefox-1.5.dfsg+22.214.171.124/ dpkg-buildpackage -uc -us -b -rfakeroot # ...45 minutes later... cd /home/mg/src/apt-sources/ dpkg -i firefox_1.5.dfsg+126.96.36.199-1ubuntu3_i386.deb \ firefox-dev_1.5.dfsg+188.8.131.52-1ubuntu3_i386.deb \ firefox-dom-inspector_1.5.dfsg+184.108.40.206-1ubuntu3_i386.deb \ firefox-gnome-support_1.5.dfsg+220.127.116.11-1ubuntu3_i386.deb \ libnspr4_1.firefox1.5.dfsg+18.104.22.168-1ubuntu3_i386.deb \ libnspr-dev_1.firefox1.5.dfsg+22.214.171.124-1ubuntu3_i386.deb \ libnss3_1.firefox1.5.dfsg+126.96.36.199-1ubuntu3_i386.deb \ libnss-dev_1.firefox1.5.dfsg+188.8.131.52-1ubuntu3_i386.deb
Update: here's a similar idea that goes further (not just changelogs, but also description pages for each machine): My electronic sysadmin notebook for an entire fleet by Rachel Kroll.