#!/bin/sh # Small watching script based on Sébastien idea. # ideas: # - more control on what would be displayed # - allow to group by tag instead of method_id # - somehow done, use shell variable text_group # - use python with curses to have runtime control function show_help ( ) { script_name=`basename $0` echo """ Usage: $script_name [interval seconds] Interval is default 5. mysql_opt are default mysql command line options. Put them in quotes if more than one option is passed. Typical usage: $script_name erp5 $script_name \"-h remotehost -u user erp5remote\" 3 """ } MYSQL_OPT=$1 INTERVAL=$2 if [ "$MYSQL_OPT" == "" ] ; then show_help exit 1 fi if [ "$INTERVAL" == "" ] ; then INTERVAL=5 fi SELECT="" for t in message message_queue ; do SELECT=$SELECT""" SELECT count(*) AS $t, ${text_group:-method_id}, processing, processing_node AS node, min(priority) AS min_pri, max(priority) AS max_pri FROM $t GROUP BY ${text_group:-method_id}, processing, processing_node ORDER BY node; SELECT count(*) AS $t, processing, processing_node, min(priority) AS min_pri, max(priority) AS max_pri FROM $t GROUP BY processing, processing_node; SELECT priority as pri, MIN(timediff(NOW(), date)) AS min, AVG(timediff(NOW() , date)) AS avg, MAX(timediff(NOW() , date)) AS max FROM $t GROUP BY priority; SELECT count(*) AS ${t}_count FROM $t; """ done watch -n $INTERVAL "mysql $MYSQL_OPT --disable-pager -t -e '$SELECT' "