PluginPortrait/mysql_size: mysql_size

File mysql_size, 1.4 KB (added by rune.skillingstad@…, at 2006-07-06T09:37:52+02:00)
Line 
1#!/bin/sh
2#
3# Plugin to monitor the size of databases in a mysql-server.
4#
5# Copyright: Rune Nordbøe Skillingstad <rune.skillingstad@ntnu.no>
6#
7# Parameters supported:
8#
9#       config
10#       autoconf
11#
12# Configuration variables
13#
14#       mysqlopts    - Options to pass to mysql
15#
16#%# family=auto
17#%# capabilities=autoconf
18
19MYSQLOPTS="$mysqlopts"
20MYSQL=${mysql:-mysql}
21
22if [ "$1" = "autoconf" ]; then
23        $MYSQL --version 2>/dev/null >/dev/null
24        if [ $? -eq 0 ]
25        then
26                $MYSQL $MYSQLOPTS -s -e "SHOW TABLE STATUS" 2>/dev/null >/dev/null
27                if [ $? -eq 0 ]
28                then
29                        echo yes
30                        exit 0
31                else
32                        echo "no (could not connect to mysql)"
33                fi
34        else
35                echo "no (mysql not found)"
36        fi
37        exit 1
38fi
39
40if [ "$1" = "config" ]; then
41        echo 'graph_title MySQL database sizes'
42        echo 'graph_vlabel bytes'
43        echo 'graph_category mysql'
44        echo 'threads.label mysql size'
45        echo 'graph_args --base 1000'
46        for DB in $($MYSQL $MYSQLOPTS -s -e 'show databases');
47        do
48           echo "$DB.label $DB size (bytes)"
49           echo "$DB.info $DB size"
50           echo "$DB.type GAUGE"
51           echo "$DB.draw LINE2"
52        done
53        exit 0
54fi
55
56for DB in $($MYSQL $MYSQLOPTS -s -e 'show databases');
57do
58        echo -n "$DB.value "
59        $MYSQL $MYSQLOPTS -s -e "SHOW TABLE STATUS FROM $DB" \
60          | awk 'BEGIN{s=0}{s+=$6;s+=$8}END{printf "%d\n", s}';
61done