Projet

Général

Profil

Révision 7a0da0b2

ID7a0da0b2ccfd61b724c4d9fce23d4d7d5c23ad64
Parent 6ddb169d
Enfant 36b0898d

Ajouté par Benjamin D il y a presque 14 ans

Initial version

Voir les différences:

plugins/other/cstat
1
#!/bin/bash
2
#################################################################
3
# Title : Cstat plugin for Munin                                #
4
# Author : Benjamin DUPUIS - Poil				#
5
# Email : poil@quake.fr						#
6
# First release :  22/03/2011					#
7
#---------------------------------------------------------------#
8

  
9
#################################################################
10
# Variable :							#
11
#---------------------------------------------------------------#
12
cstat_exe='/usr/local/bin/cstat'
13

  
14
#---------------------------------------------------------------#
15
# End of config
16
script_name=$(basename $0)
17
#################################################################
18

  
19
#################################################################
20
#       Help		                                        #
21
#---------------------------------------------------------------#
22
usage() {
23
	echo 'For testing the script, run cstat_ GameType IP Port'
24
	echo ' - GameType : c2s, sbs, bfs ... run cstat for seeing available gametype'
25
	echo 'For munin you must ln -s /usr/share/munin/plugins/cstat_ /etc/munin/plugins/cstat_GameType_IP2test_Port'
26
	echo 'Perhaps you must have to set cstat_exe path, actually on'${cstat_exe};
27
	echo 'Have Fun'
28
}
29

  
30
config() {
31
	if [ "${script_name}" != "cstat_" ]; then
32
                gametype=$(echo ${script_name} | cut -d_ -f2)
33
                ip=$(echo ${script_name} | cut -d_ -f3)
34
                port=$(echo ${script_name} | cut -d_ -f4)
35
        else
36
                gametype=$1
37
                ip=$2
38
                port=$3
39
        fi
40

  
41
echo "graph_title Number of players on ${gametype} - ${ip}:${port}
42
graph_vlabel players
43
graph_args --base 1000 -r --lower-limit 0 --upper-limit 16
44
graph_category games
45
maxplayer.label max players
46
player.label players
47
maxplayer.critical 1:"
48

  
49
}
50

  
51
#################################################################
52
#       Cube Stat, call cstat	                                #
53
#---------------------------------------------------------------#
54
cube_stat() {
55
	if [ "${script_name}" != "cstat_" ]; then
56
		gametype=$(echo ${script_name} | cut -d_ -f2)
57
		ip=$(echo ${script_name} | cut -d_ -f3)
58
		port=$(echo ${script_name} | cut -d_ -f4)
59
	else
60
		gametype=$1
61
		ip=$2
62
		port=$3
63
	fi
64

  
65
	if [ ! -z ${gametype} ] && [ ! -z ${gametype} ] && [ ! -z ${gametype} ]; then
66
		dummy=$(${cstat_exe} --xml --${gametype} ${ip}:${port})
67
		playervalue=$(echo "${dummy}" | sed -n -e 's/.*<numplayers>\(.*\)<\/numplayers>.*/\1/p')
68
		maxplayervalue=$(echo "${dummy}" | sed -n -e 's/.*<maxplayers>\(.*\)<\/maxplayers>.*/\1/p')
69

  
70
		if [ -z "${playervalue}" ]; then
71
			playervalue=0
72
		fi
73

  
74
		if [ -z "${maxplayervalue}" ]; then
75
		        maxplayervalue=0
76
		fi
77

  
78

  
79
		echo "maxplayer.value "${maxplayervalue};
80
		echo "player.value "${playervalue};
81
	else
82
		echo "maxplayer.value U"
83
		echo "player.value U"
84
	fi
85
}
86

  
87
#################################################################
88
#	Main 							#
89
#---------------------------------------------------------------#
90
case $1 in
91
	config)
92
		config
93
		exit 0
94
   	;;
95
	help | ?)
96
		usage
97
		exit 0
98
	;;
99
	autoconf)
100
		echo "no (edit the script for set cstat path)"
101
	;;
102
	*)
103
		cube_stat $1 $2 $3
104
		exit 0
105
	;;
106
esac
107

  

Formats disponibles : Unified diff