From 66bc7386a62fbd7bcb9404daf8656fc59a55f25f Mon Sep 17 00:00:00 2001 From: Antoine Beaupre Date: Fri, 9 Apr 2010 17:56:37 -0400 Subject: add my mountpoints fact to nagios for the df plugin --- lib/facter/mountpoints.rb | 50 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 lib/facter/mountpoints.rb (limited to 'lib/facter/mountpoints.rb') diff --git a/lib/facter/mountpoints.rb b/lib/facter/mountpoints.rb new file mode 100644 index 0000000..c51e6e6 --- /dev/null +++ b/lib/facter/mountpoints.rb @@ -0,0 +1,50 @@ +begin + + mountpoints = [] + # we show devices, but we avoid outputing duplicate devices + devices = [] + Facter.add("mountpoints") do + ignorefs = ["NFS", "nfs", "nfs4", "nfsd", "afs", "binfmt_misc", "proc", "smbfs", + "autofs", "iso9660", "ncpfs", "coda", "devpts", "ftpfs", "devfs", + "mfs", "shfs", "sysfs", "cifs", "lustre_lite", "tmpfs", "usbfs", "udf", + "fusectl", "fuse.snapshotfs", "rpc_pipefs"] + begin + require 'filesystem' + rescue Exception => e + confine :kernel => :linux + ENV["PATH"]="/bin:/sbin:/usr/bin:/usr/sbin" + fs_source = nil + if FileTest.exists?("/etc/mtab") + fs_source = "/etc/mtab" + elsif FileTest.exists?("/proc/mounts") + fs_source = "/proc/mounts" + end + + mounts = File.read(fs_source).split("\n") + mounts.each do |mount| + mount = mount.split(" ") + if ((not ignorefs.include?(mount[2])) && (mount[3] !~ /bind/) && (not devices.include?(mount[0])) && (not mountpoints.include?(mount[1]))) + mountpoints.push(mount[1]) + end + devices.push(mount[0]) if not devices.include?(mount[0]) + end + else + FileSystem.mounts.each do |m| + if ((not ignorefs.include?(m.fstype)) && (m.options !~ /bind/) && !devices.include?(mount[0])) + mountpoints.push(m.mount) + end + devices.push(m.mount) if not devices.include?(m.mount) + end + end + setcode do + mountpoints.join(",") + end + end + Facter.add("devices") do + setcode do + devices.join(",") + end + end + +rescue Exception => e +end -- cgit v1.2.3