Преглед изворни кода

add new plug-in check_nfs_stale

Checks NFS mount point for staleness
Jon Schipp пре 12 година
родитељ
комит
d51a15a89f
1 измењених фајлова са 62 додато и 0 уклоњено
  1. 62 0
      check_nfs_stale

+ 62 - 0
check_nfs_stale

@@ -0,0 +1,62 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <iso646.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#define VERSION_STRING "0.1"
+
+#define OK       0
+#define WARNING  1
+#define CRITICAL 2
+#define UNKNOWN  3
+
+static void usage(void)
+{
+    printf("check_nfs_stale Version: %s\n", VERSION_STRING);
+    puts(
+    "Nagios plugin to check for stale NFS mounts\n"
+    "Options:\n\n"
+    " -p <mount> Mount point of NFS share\n"
+    " -h         Print help\n\n"
+    "Usage: check_nfs_stale [-h] [-p mount_point]\n"
+    "Please report bugs to <jonschipp@gmail.com>");
+    exit(OK);
+}
+
+int main(int argc, char **argv) {
+
+struct stat file_stat;
+int ret, c;
+const char *mpoint = NULL;
+
+if ( argc == 1 ) {
+    puts("Requires an argument, try ``-h''");
+    exit(UNKNOWN);
+}
+
+while ((c = getopt (argc, argv, "hp:")) != -1)
+switch (c) {
+    case 'h':
+        usage();
+        break;
+    case 'p':
+        mpoint = optarg;
+        break;
+    case '?':
+        usage();
+        break;
+}
+
+ret = stat(mpoint, &file_stat);
+
+if (ret == -1 && errno == ESTALE) {
+    printf("%s is stale\n", mpoint);
+    exit(CRITICAL);
+    }
+else
+    printf("%s is fine\n", mpoint);
+    exit(OK);
+}