С помощью этого скрипта вы сможете получать информацию об аптайме, использовании диска и CPU вашего сервера, загрузке системы и тому подобную статистическую информацию с нескольких серверов Linux на отдельный сервер в формате HTML.
#!/bin/bash
# Shell script to get uptime, disk usage, cpu usage, RAM usage,system load,etc.
# from multiple Linux servers and output the information on a single server
# in html format. Read below for usage/installation info
# *---------------------------------------------------------------------------*
# * dig_remote_linux_server_information.bash,v0.1, last updated on 25-Jul-2005*
# * Copyright (c) 2005 nixCraft project *
# * Comment/bugs: http://cyberciti.biz/fb/ *
# * Ref url: http://cyberciti.biz/nixcraft/forum/viewtopic.php?t=97 *
# * This script is licensed under GNU GPL version 2.0 or above *
# *---------------------------------------------------------------------------*
# * Installation Info *
# ----------------------------------------------------------------------------*
# You need to setup ssh-keys to avoid password prompt, see url how-to setup
# ssh-keys:
# cyberciti.biz/nixcraft/vivek/blogger/2004/05/ssh-public-key-based-authentication.html
#
# [1] You need to setup correct VARIABLES script:
#
# (a) Change Q_HOST to query your host to get information
# Q_HOST="192.168.1.2 127.0.0.1 192.168.1.2"
#
# (b) Setup USR, who is used to connect via ssh and already setup to connect
# via ssh-keys
# USR="nixcraft"
#
# (c)Show warning if server load average is below the limit for last 5 minute.
# setup LOAD_WARN as per your need, default is 5.0
#
# LOAD_WARN=5.0
#
# (d) Setup your network title using MYNETINFO
# MYNETINFO="My Network Info"
#
# (e) Save the file
#
# Please refer to forum topic on this script:
# Also download the .gif files and put them in your output dir
#
# ----------------------------------------------------------------------------
# Execute script as follows (and copy .gif file in this dir) :
# this.script.name > /var/www/html/info.html
# ============================================================================
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# -------------------------------------------------------------------------
# SSH SERVER HOST IPS, setup me
# Change this to query your host
Q_HOST="192.168.1.2 127.0.0.1 192.168.1.2"
# SSH USER, change me
USR="nixcraft"
# Show warning if server load average is below the limit for last 5 minute
LOAD_WARN=5.0
# Your network info
MYNETINFO="My Network Info"
#
# if it is run as cgi we can do reload stuff too :D
PBY='Powered by script'
# font colours
GREEN=''
RED=''
NOC=''
LSTART='
- '
# Local path to ssh and other bins
SSH="/usr/bin/ssh"
PING="/bin/ping"
NOW="$(date)"
## functions ##
writeHead(){
echo '
echo '
'
echo "$MYNETINFO
"echo "Generated on $NOW"
echo '
}
writeFoot(){
echo "
echo ""
}
## main ##
writeHead
echo '
| ' _CMD="$SSH $USR@$host" rhostname="$($_CMD hostname)" ruptime="$($_CMD uptime)" if $(echo $ruptime | grep -E "min|days" >/dev/null); then x=$(echo $ruptime | awk '{ print $3 $4}') else x=$(echo $ruptime | sed s/,//g| awk '{ print $3 " (hh:mm)"}') fi ruptime="$x" rload="$($_CMD uptime |awk -F'average:' '{ print $2}')" x="$(echo $rload | sed s/,//g | awk '{ print $2}')" y="$(echo "$x >= $LOAD_WARN" | bc)" [ "$y" == "1" ] && rload="$RED $rload (High) $NOC" || rload="$GREEN $rload (Ok) $NOC" rclock="$($_CMD date +"%r")" rtotalprocess="$($_CMD ps axue | grep -vE "^USER|grep|ps" | wc -l)" rfs="$($_CMD df -hT | grep -vE "^Filesystem|shm" \ | awk 'BEGIN{print "
"}END{ print " "}')" rusedram="$($_CMD free -mto | grep Mem: | awk '{ print $3 " MB" }')" rfreeram="$($_CMD free -mto | grep Mem: | awk '{ print $4 " MB" }')" rtotalram="$($_CMD free -mto | grep Mem: | awk '{ print $2 " MB" }')" $PING -c1 $host>/dev/null if [ "$?" != "0" ] ; then rping="$RED Failed $NOC" else rping="$GREEN Ok $NOC" echo "$rhostname " echo "Ping status: $rping " echo "Time: $rclock " echo "Uptime: $ruptime " echo "Load avarage: $LSTART $rload $LEND" echo "Total running process: $LSTART $rtotalprocess $LEND" echo "Disk status:" echo "$rfs" echo "Ram/swap status:
echo " echo " echo " echo " fi echo " | "
writeFoot

\