'eval' added to interpret all options like forward errors to null correctly

This commit is contained in:
Ulf 2023-12-31 15:15:08 +01:00
parent 0571130cbd
commit f2e4db87a8

25
dfc.sh
View file

@ -2,17 +2,18 @@
# df (= DiskFree) with some options and colored if Alert levels are exceeded # df (= DiskFree) with some options and colored if Alert levels are exceeded
# #
# (c) GPL by Ulf Bartolomäus # (c) GPL by Ulf Bartolomäus
VERSION="$( basename $0 ) Version 0.1.3 from 31.12.2023" VERSION="$( basename $0 ) Version 0.1.4 from 31.12.2023"
# # Input: -v : Version
# Input: -v : Version # -y YY : YY = alert level (yellow) in % (default = 80%)
# -y YY : YY = alert level (yellow) in % (default = 80%) # -r RR : RR = critical alert level (red) in % (default = 90%)
# -r RR : RR = critical alert level (red) in % (default = 90%)
# Output: disk free information colored about mounted filesystems # Output: disk free information colored about mounted filesystems
# Returnvalue: 0 # Returnvalue: 0
# #
# Changes: # Changes:
# 0.1.4
# 'eval' added before the command execution
# 0.1.3 # 0.1.3
# Add '2> /dev/null' at df to remove error messages # df -> added "2> /dev/null" to remove error messages
# 0.1.2 # 0.1.2
# Some format improfements and adding from options # Some format improfements and adding from options
# 0.1.1 # 0.1.1
@ -20,21 +21,21 @@ VERSION="$( basename $0 ) Version 0.1.3 from 31.12.2023"
## Definitions ## Definitions
#MyDfC='df -hT' ## df command: -h: human readeable, -T: show filesystem type #MyDfC='df -hT' ## df command: -h: human readeable, -T: show filesystem type
MyDfC='df -hTx tmpfs -x devtmpfs 2> /dev/null' ## df -hT command: excluding *tenpfs MyDfC='df -hTx tmpfs -x devtmpfs 2> /dev/null' ## df -hT command: excluding *tenpfs
#MyDfC='df -hTx tmpfs -x devtmpfs -x fuse -x nfs4 2> /dev/null' ## df -hT command: excluding *tenpfs, fusa and nfs4 filesystems #MyDfC='df -hTx tmpfs -x devtmpfs -x fuse -x nfs4 2> /dev/null' ## df -hT command: excluding *tenpfs, fusa and nfs4 filesystems
MyDfAlert1=80 ## "yellow" for alert level for out of space MyDfAlert1=80 ## "yellow" for alert level for out of space
MyDfAlert2=90 ## "red" for critical alert for out of space MyDfAlert2=90 ## "red" for critical alert for out of space
## Escape secences for color ## Escape secences for color
esc=$(echo -en "\033") ## define esc secence esc=$(echo -en "\033") ## define esc secence
dick="${esc}[1m" ## define bold secence dick="${esc}[1m" ## define bold secence
rot="${esc}[1;31m" ## define red secence rot="${esc}[1;31m" ## define red secence
gruen="${esc}[1;32m" ## define green secence gruen="${esc}[1;32m" ## define green secence
gelb="${esc}[1;33m" ## define yelow secence gelb="${esc}[1;33m" ## define yelow secence
blau="${esc}[1;34m" ## define blue secence blau="${esc}[1;34m" ## define blue secence
lila="${esc}[1;35m" ## define purple secence lila="${esc}[1;35m" ## define purple secence
norm=$(echo -en "${esc}[m\017") ## define default secence norm=$(echo -en "${esc}[m\017") ## define default secence
## Shows the Version iformation ## Shows the Version iformation
@ -90,7 +91,7 @@ done
#MyDfC="${MyDfC} $*" #MyDfC="${MyDfC} $*"
## DiskFree (only if not the same device => unique check first 40 characters) ## DiskFree (only if not the same device => unique check first 40 characters)
${MyDfC} | uniq -w40 | while read MyOutput; do ## Execute df and filter doublicates - for each row stored in MyOutput eval ${MyDfC} | uniq -w40 | while read MyOutput; do ## Execute df and filter doublicates - for each row stored in MyOutput
MyDfUsage=$(echo ${MyOutput} | awk '{ print $6}' | cut -d'%' -f1 ) ## Search Usage in % MyDfUsage=$(echo ${MyOutput} | awk '{ print $6}' | cut -d'%' -f1 ) ## Search Usage in %
if [[ ! $( echo "${MyDfUsage}" | grep [[:digit:]] ) ]] ; then ## If first row if [[ ! $( echo "${MyDfUsage}" | grep [[:digit:]] ) ]] ; then ## If first row
echo -e ${dick}"${MyOutput}"${norm} ## Echo in bold echo -e ${dick}"${MyOutput}"${norm} ## Echo in bold