From e45b8f422a78baf2f7b00f4d94addf9798ead0d2 Mon Sep 17 00:00:00 2001
From: "Hahn Axel (hahn)" <axel.hahn@iml.unibe.ch>
Date: Wed, 29 Jul 2020 10:43:05 +0200
Subject: [PATCH] add readme

---
 inc_pluginfunctions.md | 85 ++++++++++++++++++++++++++++++++++++++++++
 readme.md              | 14 +++++++
 2 files changed, 99 insertions(+)
 create mode 100644 inc_pluginfunctions.md
 create mode 100644 readme.md

diff --git a/inc_pluginfunctions.md b/inc_pluginfunctions.md
new file mode 100644
index 0000000..79c5dec
--- /dev/null
+++ b/inc_pluginfunctions.md
@@ -0,0 +1,85 @@
+# [IML Checks for Icinga / Nagios](redme.md)
+
+## Shared functions
+
+### Init
+
+All scripts start with sourcing a shared bash file 
+
+    . `dirname $0`/inc_pluginfunctions
+
+In that script are several function starting with prefix **ph.** (=plugin helper)
+
+### Available functions
+
+This is a list in alphabetic order
+
+**ph.abort** [TEXT]
+Shows error message and exit with status unknown.
+
+**ph.exit**
+
+Use at the end to send performance data and exit plugin with set statuscode
+
+**ph.getFileAge** [FILE]
+
+get age of a given file in sec
+
+**ph.getOS**
+
+get operating system as lowercase - centos/ debian/ ubuntu ...
+
+**ph.getOSMajor**
+
+get OS Major version as integer, i.e. 7 on a CentOS7
+
+**ph.getValueWithParam** VALUE PARAMNAME "$@"
+
+return default value or its override from command line.
+
+Example:
+
+    typeset -i iWarnLimit=`ph.getValueWithParam 75 w "$@"`
+
+This will set variable iWarnLimit based on CLI parameter -w [value] ... if it does not exist it gets the default 75.
+
+**ph.setStatus** [STATUS]
+
+Set a status with keyword ok, warning, critical, unknown
+You can override it as often you want during the script. Based on the last setting the ph.exit function will set the exitcode.
+
+**ph.setStatusByLimit** VALUE WARNLIMIT CRITLIMIT
+
+set statuscode by verifying integer(!) value with crtical and warning limit	
+
+    ph.setStatusByLimit $ramUsage $iWarnLimit $iCriticalLimit
+
+**ph.status** [TEXT]
+
+Show status as Text.
+
+**ph.execIfReady** [FUNCTION] [ [WAITTIME] [MAXTRIES] ]
+
+Execute a command and repeat max. MAXTRIES times if it fails.
+
+**ph.perfadd** [VALUE] [OPTIONS…]
+
+Add performance data. Their output will be written with ph.exit. So you are free to add perfomance data anywhere within your check script.
+
+**ph.perfdeltaspeed** [VARNAME] [VALUE]
+
+For increasing system counters: get changerate per second since last check.
+
+    # speed in byte per sec based on last stored value and its age
+    iSpeedRead=` ph.perfdeltaspeed "netio-${myinterface}-rx" $iRead`
+
+**ph.perfshow**
+
+dump performance data (if u are not using ph.exit)
+
+**ph.require** [PROG [PROG2]]
+
+check if a binary PROG exists in search path (=are installed) - if not then execution stops with ph.abort	
+
+    ph.reqire bc lsblk
+
diff --git a/readme.md b/readme.md
new file mode 100644
index 0000000..777058c
--- /dev/null
+++ b/readme.md
@@ -0,0 +1,14 @@
+# IML Checks for Icinga / Nagios
+
+## Introduction
+
+IML - we are the Institute for Medical Education at university in Bern, Switzerland. This is a collection of our checks. They are used on Linux systems (Debian, CentOS, Ubuntu) and written in Bash using some shared functions.
+
+## License
+
+* Licence: GNU GPL 3.0
+* Source: https://git-repo.iml.unibe.ch/iml-open-source/icinga-checks
+
+## Scripts
+
+[[inc_pluginfunctions.md]]
\ No newline at end of file
-- 
GitLab