parent
31896bd441
commit
a7d3fd9c7e
2 changed files with 39 additions and 0 deletions
@ -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