Add filesystem discovery script
This commit is contained in:
parent
31896bd441
commit
a7d3fd9c7e
|
@ -0,0 +1,4 @@
|
|||
# Provides an equivalent to the builtin vfs.fs.discovery, but works
|
||||
# on older agent (pre 2.0.0) and FreeBSD
|
||||
# Uncomment to enable
|
||||
#UserParameter=vfs.fs.discovery,/var/lib/zabbix/bin/disco_filesystems
|
|
@ -0,0 +1,35 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
$first = 1;
|
||||
|
||||
print "{\n";
|
||||
print "\t\"data\":[\n\n";
|
||||
|
||||
my $cmd;
|
||||
my $re;
|
||||
# On Linux, parse /proc/mounts
|
||||
if (-e "/proc/mounts"){
|
||||
$cmd = 'cat /proc/mounts';
|
||||
$re = qr/\S+ (\S+) (\S+)/;
|
||||
}
|
||||
# On BSD (at least pfsense), there's no /proc/mounts
|
||||
# parse the mount output
|
||||
else{
|
||||
$cmd = '/sbin/mount';
|
||||
$re = qr/on (\S+) \((\S+), /;
|
||||
}
|
||||
for (`$cmd`){
|
||||
($fsname, $fstype) = m/$re/;
|
||||
$fsname =~ s!/!\\/!g;
|
||||
|
||||
print "\t,\n" if not $first;
|
||||
$first = 0;
|
||||
|
||||
print "\t{\n";
|
||||
print "\t\t\"{#FSNAME}\":\"$fsname\",\n";
|
||||
print "\t\t\"{#FSTYPE}\":\"$fstype\"\n";
|
||||
print "\t}\n";
|
||||
}
|
||||
|
||||
print "\n\t]\n";
|
||||
print "}\n";
|
Loading…
Reference in New Issue