#! /bin/bash function e { echo -ne "${1}\t" } #ok if given program returns given code # arg1: program to run # arg2: expected return code (default 0) function exitCodeOk { program=$1 code=${2:=0} $program &> /dev/null if [ $? -eq $code ] ; then echo -ne "1\t" ; else echo -ne "0\t" ; fi } #Ok if file size > X # arg1: file # arg2: min size function fileBiggerThan { if [ ! -f $1 ] ; then echo -ne "0\t" ; return 0 ; fi filesize=$(stat --format "%s" $1) if [ $filesize -lt $2 ] ; then echo -ne "0\t" ; else echo -ne "1\t" ; fi } #Ok if file exists # arg1: file to check function fileMustExist { if [ -f ${1} ] ; then echo -ne "1\t" else echo -ne "0\t" fi } #Ok if file DOESNOT exists # arg1: file to check function fileMustNOTExist { if [ -f ${1} ] ; then echo -ne "0\t" else echo -ne "1\t" fi } #Ok if dir exists # arg1: dir to check function dirMustExist { if [ -d ${1} ] ; then echo -ne "1\t" else echo -ne "0\t" fi } # Ok if given dir DOESNOT exists # arg1: dir function dirMustNOTExist { if [ -d ${1} ] ; then echo -ne "0\t" else echo -ne "1\t" fi } # Ok if file contains at least one occurence of pattern # arg1: file # arg2: pattern function fileMustContain { file=$1 shift string=$@ if [ ! -f $file ] ; then echo -ne "0\t" ; return 0 ;fi if ( grep -i -qE "${string}" $file ) ; then echo -ne "1\t" else echo -ne "0\t" fi } # Return num of occurences of pattern # arg1: file # arg2: pattern function fileCountPattern { file=$1 shift string=$@ if [ ! -f $file ] ; then echo -ne "0\t" ; return 0 ;fi num=$(grep -ciE "${string}" $file ) echo -ne "$num\t" } # Ok if file contains N pattern # arg1: file # arg2: num of expected item # arg3: pattern function fileMustContainNItem { file=$1 n=$2 shift string=$@ if [ ! -f $file ] ; then echo -ne "0\t" ; return 0 ;fi num=$(grep -ciE "${string}" $file ) if [ $num -eq $1 ] ; then echo -ne "1\t" else echo -ne "0\t" fi } # Ok if file DOESNOT contain pattern # Arg1: file # ArgN: pattern function fileMustNOTContain { file=$1 shift string=$@ if [ ! -f $file ] ; then echo -ne "0\t" ; return 0 ; fi if ( grep -i -qE "${string}" $file ) ; then echo -ne "0\t" else echo -ne "1\t" fi } # argn: nth columne name # insert hostname at beginning of result line function addHeader { test -f /etc/motd && user="$(cat /etc/motd | sed 's/\n//')\t" echo -ne "\n\t\t" for i in $@ ; do echo -ne "$i\t" ; done echo -ne "\n" echo -ne "${user}$(hostname -s)\t" } # Ok if given user exists # arg1: user to check function userExists { if ( grep -q $1 /etc/passwd ) ; then e 1 ; else e 0 ; fi } # Ok if given use has a password # arg1: user to check function userHasPassword { if ( passwd --status $1 2>&1 | grep -q 'Password set' ) ; then e 1 ; else e 0 ; fi } # Ok if given package is installed # arg1: pkg to check function pkgInstalled { if ( rpm -qa| grep -qi $1 ) ; then echo -ne "1\t" ; else echo -ne "0\t" ; fi } # Ok if given package is NOT installed # arg1: pkg to check function pkgNotInstalled { if ( rpm -qa |grep -qiE $1 ) ; then echo -ne "0\t" ; else echo -ne "1\t" ; fi } # ok if given process is running # arg1: process to check function processIsRunning { if ( pgrep -f $1 &> /dev/null ) ; then echo -ne "1\t" ; else echo -ne "0\t" ; fi } #Ok if given command returns 0 # arg1: command to be run function commandIsWorking { command=$1 if ( $command &> /dev/null ) ; then echo -ne "1\t" ; else echo -ne "0\t" ; fi } # ok if given pattern is detected on command's stdout or stderr # arg1: command # arg2: pattern function commandStdoutPattern { command=$1 shift pattern=$@ if ( $command 2>&1 | grep -qiE "${pattern}" ) ; then echo -ne "1\t" ; else echo -ne "0\t" ; fi } # ok if given service is enabled # arg1: service function serviceIsEnabled { service=$1 if ( systemctl is-enabled $1 &> /dev/null ) ; then echo -ne "1\t" ; else echo -ne "0\t" ; fi } # ok if given service is active # arg1: service function serviceIsActive { service=$1 if ( systemctl is-active $1 &> /dev/null ) ; then echo -ne "1\t" ; else echo -ne "0\t" ; fi } # ok if output of given url contains given stuff # arg1: url # arg2: string function okIfCurl { url=$1 shift if ( curl -q "${url}" | grep -q "$@" ) ; then echo -ne "1\t" ; else echo -ne "0\t" ; fi }