source: noc/nagios/status-user/finger.sh @ 1100

Last change on this file since 1100 was 1100, checked in by quentin, 14 years ago
Remove duplicate hostnames from the regex filter
  • Property svn:executable set to *
File size: 1.6 KB
Line 
1#!/bin/bash
2
3docnagios() {
4        echo q | env TERM=ansi LINES=1000 COLUMNS=80 /usr/local/nagios/bin/cnagios -b "$@" | sed 's/
5\[B/\n/g; s/
6/\n/g' | perl -pe '
7s/^.*(?=sipb-nagios)//; # remove garbage at beginning
8s/(.)\\[(\d+)b/$1x($2+1)/ge; # (\d+)b means repeat previous character n times
9s/\\[(\d+)d//g; # absolute go to line; ignored
101 while s/\\[(\d+)G/" "x($1-$-[0]-1)/e; # go to absolute horizontal position
111 while s/\\[\d+;(\d+)H/" "x($1-$-[0]-1)/e; # go to absolute position; line ignored
12'
13}
14
15gethostgroups() {
16    cat /etc/nagios3/*.cfg | perl -ne 'print if ( /^(\s*)define hostgroup [\{[]/ ... /[\}\]]/ )' | perl -ne 'm|hostgroup_name\s+(\S+)| and $name = $1; m|members\s+(.+)\s*$| and $members = $1; m|\}| and print "$name\t$members\n"'
17}
18
19gethgmembers() {
20    gethostgroups | grep "^$1   " | cut -f 2 -d "       " | sed 's/,/\n/g' | sort -u | perl -pe 's/\n/|/g' | sed 's/|$//'
21}
22
23read line
24case "$line" in
25    status*)
26        docnagios
27        ;;
28    broken*)
29        docnagios -l w
30        ;;
31    load*)
32        docnagios -g /LOAD/
33        ;;
34    scripts-user*)
35        docnagios -g "/$(gethgmembers "scripts-user.*")/"
36        ;;
37    scripts*)
38        docnagios -g "/$(gethgmembers "scripts.*")/"
39        ;;
40    xvm*)
41        docnagios -g "/$(gethgmembers "xvm.*")/"
42        ;;
43    *)
44        cat <<EOF
45Available information:
46finger status@sipb-noc -- all services
47finger broken@sipb-noc -- services that are not OKAY
48finger load@sipb-noc   -- all LOAD services
49finger scripts-user@sipb-noc-- all scripts user services
50finger scripts@sipb-noc-- all scripts services
51finger xvm@sipb-noc    -- only XVM servers
52EOF
53     
54        ;;
55esac
56#s/\\[\d*[a-zA-Z]//g'
57#perl -pe 's/^.*?\[H //s; s/.\[\d+;1H/\n/g; s/^\s+//mg;'
58
59# s/^\s+$//mg; s/Command: .*//s; s/$/\[0m/'
Note: See TracBrowser for help on using the repository browser.