blob: b5bdc0c168eaeb0654a0c4be8ced02580a6f7c68 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
package FS::Yori;
# a reporting program, to report information to the MCP
use strict;
use base 'Exporter';
our @EXPORT_OK = qw( reports report );
sub reports { #should be autogenerated i guess
qw( freeside_version debian_version pg_version
apache_version apache_mpm
payment_gateways
);
#ssh_vulnkey
}
sub report {
my $report = shift;
$report =~ /^(\w+)$/ or die;
eval "report_$report();";
}
sub report_all {
foreach my $report ( reports() ) {
print "$report: ". report($report). "\n";
}
}
sub report_freeside_version {
chomp( my $fs_version =
`grep '^VERSION=' /home/ivan/freeside/Makefile | cut -d= -f2`
);
$fs_version;
}
sub report_debian_version {
chomp( my $deb_version = `cat /etc/debian_version` );
$deb_version;
}
sub report_pg_version {
chomp( my $pg_version = `echo 'show server_version' | psql -t freeside` );
chomp($pg_version); #two?
$pg_version =~ s/^ +//;
$pg_version;
}
sub report_apache_version {
chomp( my $apache_version =
`/usr/sbin/apache2 -v | head -1 | cut -d: -f2 | cut -d/ -f2 | cut -d' ' -f1`
);
$apache_version;
}
sub report_apache_mpm {
chomp( my $apache_mpm =
`/usr/sbin/apache2 -V | grep '^Server MPM' | cut -d: -f2`
);
$apache_mpm =~ s/^ +//;
$apache_mpm;
}
sub report_payment_gateways {
my @gateways = split(/\n/,
`aptitude -F '%c %p' search 'libbusiness-onlinepayment-.*' | grep '^i ' | grep -v '^i libbusiness-onlinepayment-perl' | cut -c29- | cut -d- -f1`
);
join(', ', @gateways);
}
#sub report_ssh_vulnkey{
# my $ssh_vulnkey = `ssh-vulnkey -a | grep COMPROMISED`;
# $ssh_vulnkey;
#}
sub report_load {
open LOAD, "</proc/loadavg" || return;
my($one, $five, $fifteen) = split ' ', <LOAD>;
close LOAD;
($one, $five, $fifteen);
}
sub report_freememory {
open MEM, "</proc/meminfo" || return;
my $free = 0;
my @interesting = qw( MemFree Cached SwapFree );
while (<MEM>) {
/^(\w*):\s*(\d*) kB$/ || next;
next unless grep { $_ eq $1 } @interesting;
$free += $2;
}
close MEM;
$free;
}
|