Script to access multiple linux servers to get system details such as CPU usage


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Script to access multiple linux servers to get system details such as CPU usage
# 1  
Old 01-20-2011
Script to access multiple linux servers to get system details such as CPU usage

Hi

Is there any shell script that accesses multiple linux servers to get details such as CPU usage, RAM used etc. The access of the servers must be parallel not serial in the sense it must ping all the servers at a time to get information.The script has to be triggered from a host system and get information.The script must be scalable in the sense servers canbe added/removed easily and dynamically without changing much of the script.


Thanks in advance.
# 2  
Old 01-20-2011
what have you tryied so far ?

1) you can setup a config file that old the list of server you want to scan (so you can easy filter out commented line so the commented server are not scanned)

Code:
egrep -ve '^#|^$' yourlist.conf | while read a
do
ssh $a "$@" &
done

or something like this

2) The second option could be to display the list of server and prompt for which you want to scan
Code:
LIST="serv1 serv2 serv3 serv4 serv5 serv6 serv7 serv8 serv9 serv0"
echo "$LIST \n which server do you want to scan ?"
read ans
for i in $ans
do
ssh $i "$@" &
done

These short piece of code need - of course - to be enhanced to behave as expected but i just provided them to illustrate my thought
# 3  
Old 01-20-2011
Thanks for your reply.

I have searched for such a script and found this:
__http://bash.cyberciti.biz/monitoring/get-system-information-in-html-format/

But i have not verified it. The number of servers involved are around 700. Their number can vary frequently. The problem is that I want to ping all the servers in parallel - at same time not one after the another. The time latency should be 1 sec for collecting information for all 700 servers.

Thanks in advance.
# 4  
Old 01-20-2011
What you need is possible.

See here:
HTML Code:
https://www.unix.com/unix-advanced-expert-users/151905-command-run-across-servers.html
I wrote a wrapper for SSH that will run commands on other servers in parallel. It accepts a file, which contains host names.

I don't know about ping'ing 700 in under a second, but in theory it should work. But come to think of it, you wouldn't run the ping command on remote hosts by running commands on the remote hosts.

Anyway, here is an idea:

Code:
root@ms:/>gdsh
   Usage: [[-s working_col_file|OS_name] | -w nodename{,nodename}] -c command

   Required Parameters:
         -s or -w and -c

   Optional Parameters:
         [-n]
         [-d] [-h] [-n] [-T] [-v]

   Where:
         -C
            Collapses output. Used with dshbak.
         -c specifies the command to run
            Required.
         -n
            No Parallel mode. By default the command is run on every node at the same time.
         -s
            Specify a working collective file OR specify an OS name. Use uname -s to specify
             a working collective file with that postfix. ie. /.gwcoll.AIX.
         -w nodename{,nodename}
            Default: ALL nodes

   Options that affect only how the script runs:
         -d
            Enable debug mode. Variable contents will be printed. May be specified more than once.
         -h
            Prints this help screen.
         -q
            quiet. Limits output to the essentials.
         -T
            Testing mode. NO actual work will be done.
         -v
            Verbose mode. May be specified more than once.

   Notes:
         One of -s or -w is required.
         Piping the output to dshbak -c will group like results together.
         Use -C with dshbak, or you will get no output.
         -c must be the last flag on the command line.

   Example execution statements:
         gdsh -s /.gwcoll.AIX -c date
         gdsh -s AIX -c date
         gdsh -C -s AIX -c date | dshbak -c
         gdsh -s all.Linux_HP-UX -c date
         gdsh -C -w unxn_sw,wpgux005 -c "date" | dshbak -c

Example run:
Code:
gdsh -C -s HP-UX -c "/usr/bin/date" | dshbak -c

HOSTS -------------------------------------------------------------------------
wpgux001_sw, wpgux003_sw, wpgux004_sw, wpgux005_sw, wpgux006_sw, wpgux007_sw, wpgux010_sw, wpgux011_sw
-------------------------------------------------------------------------------
Thu Jan 20 08:29:18 CST 2011


HOSTS -------------------------------------------------------------------------
wpgux002_sw
-------------------------------------------------------------------------------
Thu Jan 20 08:29:19 CST 2011

# 5  
Old 01-20-2011
Thanks a lot for your valuable reply.

I know that 700 servers under 1 second is highly impractical but i wanted a very low latency. Anyways I'll just try your solution.


Thanks again Smilie
# 6  
Old 01-20-2011
ssh doesn't scale in the sense that, if you want to connect to 700 servers at the same time, you have to run 700 separate instances of it.

Have you considered a push instead of a pull system? Put a script on your server that contacts you. Have cron run it repeatedly. The access method could be as simple as a POST request to a CGI script on your machine which stores the data locally, which naturally would be quite scalable.

Last edited by Corona688; 01-20-2011 at 12:21 PM..
# 7  
Old 01-21-2011
How about using something like Nagios?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Script for CPU usage -Linux

Hi all I was wondering if its possible to write a script to keep CPU usage at 90%-95%? for a single cpu linux server? I have a perl script I run on servers with multple cpu's and all I do is max all but one cpu to get into the 90'% utilised area. I now need a script that raises the CPU to... (4 Replies)
Discussion started by: sudobash
4 Replies

2. Shell Programming and Scripting

Shell script for logging cpu and memory usage of a Linux process

I am looking for a way to log and graphically display cpu and RAM usage of linux processes over time. Since I couldn't find a simple tool to so (I tried zabbix and munin but installation failed) I started writing a shell script to do so The script file parses the output of top command through... (2 Replies)
Discussion started by: andy_dufresne
2 Replies

3. Linux

System Went panic after CPU usage high

Hi All, Yesterday my Linux server went panic and even a small command took a lot of time to run. When i monitored pl find the below output Cpu(s): 0.1%us, 98.4%sy, 0.0%ni, 1.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st the time spent on kernel mode is 98 % and also idle time is around 1.5 %...... (4 Replies)
Discussion started by: jegaraman
4 Replies

4. AIX

Monitor Physical CPU usage on multiple servers

Hello, Looking for some help. I am trying to gather data at each server showing when the physical CPU is being used the most based on a weekly timeframe. I know this data can be seen through NMON but with multiple servers in our environment it could take a real long time. is there a easier... (4 Replies)
Discussion started by: audis$
4 Replies

5. Shell Programming and Scripting

Shell script to change the password on multiple servers in linux

Can any one please let me know the shell script to change the password for a particular user on multiple linux servers. (2 Replies)
Discussion started by: s_madras
2 Replies

6. UNIX for Advanced & Expert Users

UNIX / LINUX OS CPU configuration details

Hi, How to find the cpu configuration details of Cores, Speed MHz, virtual processors for the following servers: LINUX OS Servers: Linux 2.6.9-89.0.3.ELsmp #1 SMP Sat Jun 13 07:05:54 EDT 2009 i686 i686 i386 GNU/Linux. (Cores, Speed, Processor) Linux 2.6.18-164.el5 #1 SMP Tue Aug 18... (5 Replies)
Discussion started by: jagtheesh
5 Replies

7. Ubuntu

High System CPU Usage

I am running a Dell PE R815 with 4 x AMD 12 core CPUs with 128GB of RAM and a RAID 5 array of 6 SAS disks. This is an HPC application and is definitely CPU bound, however once I run 16 of these processes (thus pinning 16 cores) the work performed slows down dramatically, to maybe 5 or 10% of what... (2 Replies)
Discussion started by: mowmentous
2 Replies

8. Solaris

Multi CPU Solaris system shows 100% CPU usage.

Hello Friends, On one of my Solaris 10 box, CPU usage shows 100% using "sar", "vmstat". However, it has 4 CPUs and prstat and glance are not showing enough processes to justify high CPU utilization. ========================================================================= $ prstat -a ... (4 Replies)
Discussion started by: mahive
4 Replies

9. HP-UX

how can I find cpu usage memory usage swap usage and logical volume usage

how can I find cpu usage memory usage swap usage and I want to know CPU usage above X% and contiue Y times and memory usage above X % and contiue Y times my final destination is monitor process logical volume usage above X % and number of Logical voluage above can I not to... (3 Replies)
Discussion started by: alert0919
3 Replies

10. UNIX and Linux Applications

The usage of mount file system of different servers

There is a file system in server1 which is mounted on different file system on server2. Filesystem kbytes used avail capacity Mounted on server1:/users/user1 7047581 5994192 982914 86% /u01 /data/datafiles/user1 The data in... (1 Reply)
Discussion started by: vamshikrishnab
1 Replies
Login or Register to Ask a Question