Difference between revisions of "Ministat"
(→Script) |
(→Script) |
||
| Line 11: | Line 11: | ||
<code>[bash,n] | <code>[bash,n] | ||
| − | cmdmysql=`mysqladmin proc stat | grep "|" | grep -v "Id" | awk 'BEGIN{FS="|"};{print $7,$6,$9}' | sort -n` | + | #!/bin/bash |
| + | function checkmysql { | ||
| + | cmdmysql=`mysqladmin proc stat 2>&1 | grep "|" | grep -v "Id" | awk 'BEGIN{FS="|"};{print $7,$6,$9}' | sort -n` | ||
| + | wcmysql=`echo $cmdmysql | wc -l` | ||
| + | return | ||
| + | } | ||
| + | function checkapache { | ||
| + | httpd status 2>&1 | grep "requests/sec" -A6 | ||
| + | return | ||
| + | } | ||
| + | function calclines { | ||
| + | nline=`tput lines | awk '{print int(($1 - 18) / 2)}'` | ||
| + | if [ $nline -gt $wcmysql ] | ||
| + | then | ||
| + | nline=`echo $nline $wcmysql | awk '{print $1 * 2 - $2}'` | ||
| + | fi | ||
| + | return | ||
| + | } | ||
| + | function addseperator { | ||
| + | printf "%$(tput cols)s\n"|tr ' ' '=' | ||
| + | return | ||
| + | } | ||
| − | + | cat /proc/loadavg | |
| + | addseperator | ||
| − | + | checkmysql | |
| − | + | calclines | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
top -c -b -n 1 | grep -v "grep" | grep "PID" -A $nline | top -c -b -n 1 | grep -v "grep" | grep "PID" -A $nline | ||
| − | + | addseperator | |
| + | |||
| + | free | grep -v "cache:" | ||
| + | addseperator | ||
| + | |||
echo $cmdmysql | head -$nline | echo $cmdmysql | head -$nline | ||
| − | + | addseperator | |
| − | |||
| − | |||
| − | |||
| + | httpd status 2>&1 | grep "requests/sec" -A6 | ||
</code> | </code> | ||
Revision as of 13:00, 18 May 2011
Contents
Overview
Down and dirty mini status viewer. Makes it easy to monitor several different sections of a server at the same time.
Useful for monitoring a server that is having problems.
The main concept is to minify the output of several sections in to a small terminal window, useful for monitoring a server when it is having problems or could at some point.
Auto adjusts output based on size of the terminal.
Script
[bash,n]
- !/bin/bash
function checkmysql { cmdmysql=`mysqladmin proc stat 2>&1 | grep "|" | grep -v "Id" | awk 'BEGIN{FS="|"};{print $7,$6,$9}' | sort -n` wcmysql=`echo $cmdmysql | wc -l` return } function checkapache { httpd status 2>&1 | grep "requests/sec" -A6 return } function calclines { nline=`tput lines | awk '{print int(($1 - 18) / 2)}'` if [ $nline -gt $wcmysql ] then nline=`echo $nline $wcmysql | awk '{print $1 * 2 - $2}'` fi return } function addseperator { printf "%$(tput cols)s\n"|tr ' ' '=' return }
cat /proc/loadavg addseperator
checkmysql calclines
top -c -b -n 1 | grep -v "grep" | grep "PID" -A $nline addseperator
free | grep -v "cache:" addseperator
echo $cmdmysql | head -$nline addseperator
httpd status 2>&1 | grep "requests/sec" -A6
Usage
Direct download and execution of script (auto mode)
[bash,n]wget http://wiki.jamesdooley.us/scripts/ministat -O ministat; watch -n 10 sh ministat; rm -f ministat