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