Loading

Скрипт bash для получения статистики с нескольких серверов

С помощью этого скрипта вы сможете получать информацию об аптайме, использовании диска и CPU вашего сервера, загрузке системы и тому подобную статистическую информацию с нескольких серверов Linux на отдельный сервер в формате HTML.

С помощью этого скрипта вы сможете получать информацию об аптайме, использовании диска и 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='
  • '
'LEND='

# Local path to ssh and other bins
SSH="/usr/bin/ssh"
PING="/bin/ping"
NOW="$(date)"

## functions ##
writeHead(){
echo 'Разработка сайтов Joomla .:|:. Скрипт bash для получения статистики с нескольких серверов'
echo '

'
echo "$MYNETINFO

"
echo "Generated on $NOW"
echo '
'
}

writeFoot(){
echo "

$PBY
"
echo ""
}

## main ##
writeHead
echo ''
echo ''

for host in $Q_HOST
do
echo '"
done
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 "
    "}{w=sprintf("%d",$6);print "
  • " $7 \
    "            " $6 \
    "(" $2 ")
    possible? \

    possible? \

    " $4"/"$3 "

  • "}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 "
  • Used RAM: $rusedram
  • "
    echo "
  • Free RAM: $rfreeram
  • "
    echo "
  • Total RAM: $rtotalram
  • "
    echo "
"
fi

echo "
"
writeFoot

Добавить комментарий


Защитный код
Обновить

Создание интернет магазина

Предложение услуг по созданию интернет-магазинов. Реклама, веб-дизайн.

sate09.ru

Свадебный фотограф москва

Рекламная, репортажная, интерьерная фотосъемка Условия доставки

video-photo.su

Ворота кованые

Прайс-лист. Предметы интерьера, кованые кровати, пр.

super-kowka.ru

Shaper Neo, шаблон для онлайн-журнала

14/02/2012

Новый шаблон JoomShaper, Shaper Neo - специализированный шаблон для онлайн-журнала. Если Вы ищете внушительный шаблон в [ ... ]

Joomla 1.7.5. Обновление безопасности

12/02/2012

выпуск Joomla 2.5 - не единственное событие в новостях Joomla. Вышло очередное обновление безопасности Joomla 1.7.5. Этот р [ ... ]

Шаблон AppBox для Joomla

09/02/2012

Шаблон Joomla 1.5, созданный с целью визуально объединить Joomla и три из лучших расширений для нее: K2, Kunena, и JomSocial; ша [ ... ]

Youwinner - новый шаблон Joomla для интернет-казино

24/08/2011

Компания Youtheme выпустила новый шаблон, Youwinner, для сайтов на тему интернет-казино и игровых онлайн-порталов.

Новости
Rambler's Top100
Рейтинг@Mail.ru
Яндекс.Метрика