Sysinfo is a script-based utility to retrieve, display and/or save various system information like hardware, system configuration information, user information and network information. Run the shell script and everything else is intuitive.

In a Linux System, the various system information is scattered in different parts of the system. There is no single command line tool to display all the information. So we have created a tool which displays this information. The displayed information can be easily interpreted even by a novice, though it is going to be especially helpful for system administrators.

It has run successfully on various popular Linux distributions. It is a graphical interactive menu driven tool that uses text mode graphics and thus is XServer independent. If the platform doesn't support GUI it can even run in text mode. If someone wants to view some specific information, he can directly do so by using the appropriate options without needing to go through the various menus, and can even redirect that information to a file, which is especially helpful for system administrators.

The key features of the program are:

  • User Friendly: Even a newbie can operate. No need to know any Linux commands.

  • Graphical User Interface: Uses text mode graphics with a scroll menu. If the system has no GUI support it can work in nongraphical interface too, with a numberselect menu.

  • Suitable for Advanced Users and System Administrators: Can view information directly using options without having to go through the graphical interface. If a user wants to view specific information, he can do that by using the appropriate option and he can even store this directly by redirecting it to a file. Running our program with one single option (-a) gives the user all the system information at his/her disposal. This is especially helpful for the System Administrator who can gather all the information of any particular instant. Different systems have different needs. The script is nicely structured so that it is easy to modify to include the information which the System Administrator sees fit. After that he can include it in crontab to gather the necessary information at regular intervals. Thus, it can be very helpful for investigating the causes of a system crash or maybe to possibly avoid trouble.

  • Reliable and Up to the Second Updated Information: Any change in the system configuration during the execution of the script will be directly reflected in our program without the need of reexecuting the program. For example, if a service is started while a user is running our program, when he/she views the service information, he will see the recent service that has been started.

  • Shell Script Designed to Accept Options: If someone wants to view certain specific information, he can do so by executing the script using appropriate option(s). The script can even take short options and combined short options just like any other commandline
    tools in Linux. If the user stores the shell script in a directory listed in his PATH, he can use it as a full fledged Linux program taking options along with a help option.

  • Friendly Error Messages: If the program encounters any problems during execution, instead of throwing up a message that can confuse a normal user, it shows all possible causes of errors and their probable solutions.

  • Automatic Bug Report Generator: In any piece of code, no matter how carefully written, there is always a possibility of bugs creeping in, especially in large programs. Even this has been taken care of. If the program experiences some serious/unexpected problem, it generates a bug report in the user's home directory, instructing the user to send it to the author. This helps in keeping the script as bug free as possible. Besides that, if the program faces some minor problems, it generates a log file. The user can choose to send the log file to the authors or may totally ignore this.

  • Displaying Help and Version Information: Just like any other standard Linux commandline utility, the script displays help if run with a -h or --help option. It displays information about running the script and lists the various options available. Running the command with -v or --version displays the version information.

  • Tested on Various Machines Across the Globe: It has been checked by
    many people in different countries like USA, Netherlands, China, Pakistan and various places in India itself, running various versions of LINUX with different configurations. It even ran successfully on the networks and the server of Dibrugarh University, Assam.

  • Well Structured And Easily Modifiable Source Code: As pointed out by the people who used our application - the source code is well structured and well commented. It makes it easier for others to understand the working of the script and hence can be modified without any difficulty. It uses different functions to retrieve different information. So whenever someone wishes or does not wish to view some information, he/she can do so by modifying that function used to retrieve that particular information without the need of going through the whole sourcecode. He does not even need to bother about changing the corresponding function in the frontend. It will take care of it automatically.

  • Independence of Layers: The two layers – the backend and the frontend are independent of each other. If anyone wishes to change the way information is displayed, he/she can modify the functions used in the frontend without even bothering about how the information was retrieved. Similarly as pointed out already, if someone wishes to change what information is retrieved by a particular function in the backend, he or she can make the changes to that function retrieving those information.

  • Versatile Script: Different systems/networks have different functions and depending on their function they have different needs. A particular piece of information playing a critical part in one system may be useless in another system. Since there are different options to view different information, the system administrator can use the right combination of options to retrieve and record only the information which he considers to be important. Even if that does not suffice, as the source code is well laid out and easily modifiable, the system administrator can make necessary changes in the sourcecode itself.

  • Script Based Utility: It is not a binary file, just a shell script. The user can view the sourcecode himself/herself and hence can use it without any fear.

  • Single Option to Gather All System Information: With a single option all system information can be collected which can be redirected to a file. This will be very convenient for System Administrators.

NOTE: Sometimes when you try to run this script, an error message will simply show (as many people have complained):

bad interpreter: No such file or directory

This is a common problem for all kind of shell scripts. However, the solution is simple. It has worked every time with everyone who has sent me the complaints. Hope it works for you too. Now here is the solution:-

Create a new file with any text editor ( I prefer kate) and name it sysinfov2.3 or anything that you may find suitable. Open the downloaded sysinfo. Select everything (in kate, the shortcut key is Ctrl a), copy (in kate, the shortcut is Ctrl c) and then paste it in the newly created file (shortcut in kate is Ctrl v). Save it. Make the newly created file executable. And after that it should run properly.

Even this happened to me when I did it in mandrake. Every time, I had to follow the procedures described above and the problem was solved.

If the above solution does not solve the problem, believe me it will, then remove the first line from the file #!/bin/sh (but this is not recommended).

If you are still having problems I will be glad to help you out.

Details about this project can be found on


Makarand Hazarika

Siddhartha Sarkar


Comment List