Projet

Général

Profil

Révision 55d100de

ID55d100de1bdd71243c8c416efc603ee21c48d45f
Parent 5bb0fbb6
Enfant 5f607d27

Ajouté par jimmyo, G. Stewart il y a presque 14 ans

Initial version

Voir les différences:

plugins/other/ircu
1
#!/usr/bin/perl
2
#
3
# $Log$
4
# Revision 1.1  2004/01/02 18:50:00  jimmyo
5
# Renamed occurrances of lrrd -> munin
6
#
7
# Revision 1.1.1.1  2004/01/02 15:18:07  jimmyo
8
# Import of LRRD CVS tree after renaming to Munin
9
#
10
# Revision 1.3  2003/12/18 19:02:36  jimmyo
11
# Typo
12
#
13
# Revision 1.2  2003/12/18 17:14:24  jimmyo
14
# Added autoconf-support
15
#
16
# Revision 1.1  2003/11/10 18:51:50  jimmyo
17
# Initial entries
18
#
19
#%# family=manual
20
#%# capabilities=autoconf
21

  
22
my $ret = undef;
23

  
24
if (! eval "require Net::IRC;")
25
{
26
    $ret = "Net::IRC not found";
27
}
28

  
29
if ($ARGV[0] and $ARGV[0] eq "autoconf")
30
{
31
    if ($ret)
32
    {
33
	print "no ($ret)\n";
34
	exit 1;
35
    }
36
    my $irc = new Net::IRC;
37
    my $conn;
38

  
39
    $irc = new Net::IRC; $conn = $irc->newconn(Nick => 'munin', Server => '192.168.1.1');
40
    if (!$conn)
41
    {
42
	print "no (Couldn't connect to IRC server)\n";
43
	exit 1;
44
    }
45
    print "yes\n";
46
    exit 0;
47
}
48

  
49
if($ARGV[0] and $ARGV[0] eq "config") {
50
    print "host_name $ENV{FQDN}\n";
51
    print "graph_title ircd status\n";
52
    print "graph_order clients channels\n";
53
    print "graph_args -l 0\n";
54
    print "clients.label clients\n";
55
    print "clients.draw LINE2\n";
56
    print "channels.label channels\n";
57
    print "channels.draw LINE2\n";
58
    exit 0;
59
}
60

  
61
my $irc = new Net::IRC;
62
my $conn = $irc->newconn(Nick => 'munin',
63
			 Server => '192.168.1.1');
64

  
65
my %result;
66
#$conn->debug(1);
67

  
68
sub luserclient {
69
    my($self, $event) = @_;
70
    if(($event->args)[1] =~  /There are (\d+) users and (\d+) invisible/) {
71
	$result{'clients'} = $1 + $2 - 1; # don't count this script
72
    }
73
}
74

  
75
sub luserchannels {
76
    my($self, $event) = @_;
77
    if(($event->args)[1] =~  /^(\d+)/) {
78
	$result{'channels'} = $1;
79
    }
80
}
81

  
82
sub quit {
83
    my($self, $event) = @_;
84
    open(STDERR, ">/dev/null");
85
    $self->quit();
86
    print "clients.value " . $result{'clients'} . "\n";
87
    print "channels.value " . $result{'channels'} . "\n";
88
}
89

  
90
$conn->add_global_handler('endofmotd', \&quit);
91
$conn->add_global_handler('luserclient', \&luserclient);
92
$conn->add_global_handler('luserchannels', \&luserchannels);
93

  
94

  
95
while(1) {
96
    $irc->do_one_loop();
97
}		 
98

  
99
# vim:syntax=perl

Formats disponibles : Unified diff