#!/bin/sh ########################################################################### # Author: Vladimir Vuksan http://vuksan.com/linux/ # Last Changed: $Date: 2009-10-01 15:36:57 -0400 (Thu, 01 Oct 2009) $ # License: GNU Public License (http://www.gnu.org/copyleft/gpl.html) # Collects average mySQL binlog growth rate ie. how much on average are # binary logs are growing. Should "alert" you if there was a code change # that impacts the database ########################################################################### LOGFILE_BASE="/var/lib/mysql/binlog" GMETRIC_BIN="/usr/bin/gmetric -d 120" # Commands TIMESTAMP_CMD="stat -c %Y" FILESIZE_CMD="stat -c %s" LOGFILES=`ls -1rt ${LOGFILE_BASE}*[0-9]* | tail -2` FIRST=`echo $LOGFILES | cut -f1 -d" "` SECOND=`echo $LOGFILES | cut -f2 -d" "` FIRST_TIMESTAMP=`$TIMESTAMP_CMD $FIRST` SECOND_TIMESTAMP=`$TIMESTAMP_CMD $SECOND` TIME_DIFF=$((SECOND_TIMESTAMP - FIRST_TIMESTAMP)) SECOND_SIZE=`$FILESIZE_CMD $SECOND` $GMETRIC_BIN -t float -n mysql_binlog_avg_growth_rate -v $((SECOND_SIZE / TIME_DIFF)) -u bytes/sec