diff --git a/README b/README old mode 100644 new mode 100755 index 30131fd..af4b9c9 --- a/README +++ b/README @@ -1,10 +1,12 @@ -check_md5 +check_md5 and check_sha512 A Nagios plugin written in Bash to check the MD5 sum of a single file. In case the files MD5 change the plugin issues a critical state. This behavior can be changed by using a --warning argument, so that only a warning state is issued. +The new check_sha512.sh checks does the exact same thing except it uses sha512sum. +Replace the --md5 flag with --sha512. Options: -h diff --git a/check_md5.sh b/check_md5.sh index 1db50cf..cbefe88 100755 --- a/check_md5.sh +++ b/check_md5.sh @@ -27,9 +27,11 @@ # with the --warning argument. # # Written in Bash (and uses sed & awk). # # # +# The latest version of check_md5.sh and check_sha512.sh can be found at: # +# https://github.com/jackbenny/check_md5 # +# # ############################################################################### - VERSION="1.1" AUTHOR="(c) 2012 Jack-Benny Persson (jack-benny@cyberinfo.se)" @@ -103,7 +105,7 @@ while [[ -n "$1" ]]; do --file) if [[ -z "$2" ]]; then - printf "\nOption $1 requires an argument\n" + printf "\nOption $1 requires an argument\n | Option $1 requires an argument" print_help exit $STATE_UNKNOWN fi @@ -113,7 +115,7 @@ while [[ -n "$1" ]]; do --md5) if [[ -z "$2" ]]; then - printf "\nOption $1 requires an argument\n" + printf "\nOption $1 requires an argument\n | Option $1 requires an argument" print_help exit $STATE_UNKNOWN fi @@ -122,7 +124,7 @@ while [[ -n "$1" ]]; do ;; *) - printf "\nInvalid option $1" + printf "\nInvalid option $1 | Invalid option $1" print_help exit $STATE_UNKNOWN ;; @@ -135,14 +137,14 @@ done if [[ -z "$file" ]]; then # No file specified - printf "\nNo file specified" + printf "\nNo file specified | No file specified" print_help exit $STATE_UNKNOWN fi if [[ -z "$md5" ]]; then # No MD5 sum specified - printf "\nNo MD5 sum specified" + printf "\nNo MD5 sum specified | No MD5 sum specified" print_help exit $STATE_UNKNOWN fi @@ -155,17 +157,17 @@ filesum=`md5sum ${file} | awk '{print $1}'` #Compare the MD5 on the file against the sum we provided if [[ "$filesum" == "$md5" ]]; then - printf "$file - MD5 OK\n" + printf "MD5 OK - $file\n | MD5 is $md5" exit $STATE_OK #See if we wanted a warning instead of a critical elif [[ "$warning" == "yes" ]]; then - printf "$file - MD5 WARNING\n" + printf "MD5 WARNING - $file\n | MD5 does not match on file $file" exit $STATE_WARNING #Critical else - printf "$file - MD5 CRITICAL\n" + printf "MD5 CRITICAL - $file\n | MD5 does not match on file $file" exit $STATE_CRITICAL fi diff --git a/check_sha512.sh b/check_sha512.sh new file mode 100755 index 0000000..27d8559 --- /dev/null +++ b/check_sha512.sh @@ -0,0 +1,174 @@ +#!/bin/bash + +################################################################################ +# # +# Copyright (C) 2012 Jack-Benny Persson # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +################################################################################ + +############################################################################### +# # +# Nagios plugin to monitor a single files SHA512 sum. In case of mismatch # +# the plugin exit with a CRICITAL error code. This behavior can be changed # +# with the --warning argument. # +# Written in Bash (and uses sed & awk). # +# # +# The latest version of check_md5.sh and check_sha512.sh can be found at: # +# https://github.com/jackbenny/check_md5 # +# # +############################################################################### + +VERSION="1.1" +AUTHOR="(c) 2012 Jack-Benny Persson (jack-benny@cyberinfo.se), modified for SHA512 by Ryan Loudfoot (elyrith@gmail.com)" + +# Exit codes +STATE_OK=0 +STATE_WARNING=1 +STATE_CRITICAL=2 +STATE_UNKNOWN=3 + +shopt -s extglob + +#### Functions #### + +# Print version information +print_version() +{ + printf "\n\n$0 - $VERSION\n" +} + +#Print help information +print_help() +{ + print_version + printf "$AUTHOR\n" + printf "Monitor the SHA512 checksum of a single file\n" +/bin/cat <