SUSE Conversations


Host Information at Login



By:

August 1, 2008 8:27 am

Reads:1,213

Comments:10

Score:Unrated

Print/PDF

Download Now

The hostinfo command creates a quick summary of the server at login time. It is especially useful in environments with a lot of servers at different OS levels. The summary looks like this:

--[ hostinfo v0.55-2 ]------------------------------------
Hostname:            jrecord4
Current As Of:       08/01/08 09:35:56
Distribution:        SUSE Linux Enterprise Server 10
Service Pack:        1
Kernel Version:      2.6.16.46-0.12-default
Architecture:        i386
IPv4 Address:        137.65.55.73    eth0    (static)
IPv4 Address:        192.168.20.20   eth1    (static)
Total/Free Memory:   504/8 MB
Hard Disk:           /dev/sda 8 GB
Hard Disk:           /dev/sdb 8 GB
Hard Disk:           /dev/sdc 3 GB
User Logged In:      uid=0(root) gid=0(root) on pts0

Owner:               Jason Record
Function:            Test Server
-----------------------------------------------------------

You can also create an html page with the same information, by running hostinfo -w > info.html.

Installation Instructions

  1. Remove the previous package
  2. rpm -e hostinfo

  3. Download the current hostinfo RPM package
  4. Install the hostinfo RPM package
  5. rpm -ivh hostinfo-0.55-2.noarch.rpm

  6. Use the “hi” alias to see the current information
  7. You can add a “Function” line by creating a single line file called /opt/hostinfo-function.txt
  8. You can add an “Owner” line with /opt/hostinfo-owner.txt

Version 0.55-2

  • Added the tty for login
  • Added the -i switch for hostinfo to replace the /etc/issue file
  • Added free memory
  • Added -f to include free disk space. However this only works if the df output includes the same devices as the /proc/partitions.

Version 0.51-8

  • Added hostinfo(5)
  • Includes all ethernet addresses found
  • Added -t and -T sec switches for a timer. The default is 30 seconds with -t.
  • Added -f to include free disk space, but this only works for mounted partitions found in /proc/partitions.
  • Free memory is not reported along with total memory.

Version 0.30-5

  • Added cciss support
  • Added a <title> tag to the -w output
  • If the network is not configured, an error displayed. The error no longer displays.
0 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 5 (0 votes, average: 0.00 out of 5)
You need to be a registered member to rate this post.
Loading...Loading...


Categories: Free Tools, Technical Solutions

Disclaimer: As with everything else at SUSE Conversations, this content is definitely not supported by SUSE (so don't even think of calling Support if you try something and it blows up).  It was contributed by a community member and is published "as is." It seems to have worked for at least one person, and might work for you. But please be sure to test, test, test before you do anything drastic with it.

10 Comments

  1. By:AndyDeck

    The app as written appears slanted towards running on SLES as root:for example, the Service Pack entry is blank on OpenSuSE 10.1, and the Hard Disk info from fdisk cannot be filled in by a regular user. There’s also a conflict with NoMachine’s NX software, apparently – I get errors from NX when hostinfo is set to run in /etc/profile.local that go away when hostinfo is removed.

  2. By:mfaris01

    If you look in the example jrecord submitted, you’ll see that the user is root. His note of a redirect to an HTML page could be run in a script with sudo and the “regular” users could still get the data.

  3. By:jrecord

    Yes, it is slanted a bit toward SLES and root. The disk information comes from the fdisk command, which is root only. The service pack is correct on OpenSuSE 10.1, because it does not have a service pack. OpenSuSE 10.3 for example is a different product without any service packs. I am considering a way to get the disk information as a non root user though. Using /proc/partitions for example. Thanks for the feedback!

    -jason

  4. By:peterhine

    You could use ‘df -h’. it is available to everyone.
    eg:
    admin@server:~> df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/sda3 97G 17G 80G 18% /
    tmpfs 2.0G 56K 2.0G 1% /dev/shm
    /dev/sda1 99M 11M 84M 12% /boot
    /dev/evms/DATA 450G 264G 186G 59% /opt/novell/nss/mnt/.pools/DATA
    admin 4.0M 0 4.0M 0% /_admin
    DATA 118G 87G 31G 75% /media/nss/DATA
    SOFTWARE 157G 125G 32G 80% /media/nss/SOFTWARE
    MASTER 98G 51G 48G 52% /media/nss/MASTER

  5. By:jrecord

    Yes it would work. Currently I only pick one disk, and the first disk the OS detects. Really I need to determine what the “Hard Disk” label is going to mean. The intent is to show the size of disk in the server available for use. However, I currently only show the first disk detected by fdisk. What I probably need to do is enhance the script to show all disks and their sizes. If I use /proc/partitions in association with df output, I could probably get what I want. I could also get the information from /proc/parititons, once I figure out how to calculate the number given in the output. I just haven’t taken the time yet.

    -jason

  6. By:AndyDeck

    This was nagging at me too, so I figured out a method that comes pretty close to producing identical output for non-root users (un-wrap the lines at the “\”):

    DISK_SIZE="$(fdisk -l 2>/dev/null 
    \ | grep ^Disk | egrep 'sda|hda|xvda' 
    \ | head -1 |  awk '{print $2, $3, $4}' | cut -d',' -f1)"
    if [ -z $DISK_SIZE]; then
      DISK_SIZE="$(egrep 'sda|hda|xvda' /proc/partitions 
    \ | head -1 |  awk '{print $3 *1024/(1000*1000*1000)}')"
      DISK_SIZE="$(egrep 'sda|hda|xvda' /proc/partitions 
    \ | head -1 |  awk '{print "/dev/"$4":"}') $DISK_SIZE GB"
    fi

    Then, replace the print statement with this to use the new calculated values:

    printf "$ROW_OUT" "Hard Disk:" "$DISK_SIZE"
  7. By:jrecord

    Thanks everyone for the feedback. The updated version should work out for everyone. Please let me know if you have anymore ideas for it.

  8. By:keutterling

    Could you change the partions matching regexp to:
    ‘[s,h,xv,c][0-9]?d[a-z,0-9]$’

    # cat /proc/partitions
    major minor #blocks name

    104 0 35561280 cciss/c0d0
    104 1 1052226 cciss/c0d0p1
    104 2 34507620 cciss/c0d0p2
    7 0 4460422 loop0

    thx :)

  9. By:jrecord

    Great idea, I’ve added it to the next release.

  10. By:Anonymous

    Did you find a fix for this?
    Thanks in advance

    -Dan Saltman

Comment

RSS