When you set up a Unix client or server system you know what programs are installed on it. Over time people modify the system and add programs and new versions of older programs to the system. If you know what the role of the computer is on your network, then it is straightforward to inventory the important programs on the system. If not, you need to poke around to create the application program inventory that you may need.
Unix stores many programs in the /opt and in the /usr/local directories. Those are good places to start to determine what is installed on a system. Less frequently, applications will write their own personal directories (such as /appname), but the practice is frowned upon.
The second place to look is to check which processes are running on a system. For networking programs you are particularly interested in the processes that are using your TCP/IP and UDP/IP ports. You can run netstat –an to see which processes are running.
Another place to look is in the system's UNIX boot scripts; while for automated actions that occur after boot you will want to take a look at the crontab files on the system.
Finally, use whatever system of package management is installed on a system to determine what packages have been installed. On Solaris or SVR4 that would be pkginfo; for HP-UX it would be swlist.
Barrie Sosinsky is president of consulting company Sosinsky and Associates (Medfield MA). He has written extensively on a variety of computer topics. His company specializes in custom software (database and Web related), training and technical documentation.
This was first published in June 2003