mirror of
https://github.com/flynx/proxmox-utils.git
synced 2025-10-28 18:50:08 +00:00
80 lines
1.7 KiB
Bash
Executable File
80 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/bash
|
|
|
|
|
|
TEXT_STATUS=${TEXT_STATUS:=/media/shared/status}
|
|
|
|
CONFIG=${CONFIG:=/etc/pve/nodes/pve/config}
|
|
|
|
# NOTE: since proxmox monitors files, it is better modify the file in
|
|
# one go but since checking can not be done in an instant we write
|
|
# the check results to $TMP_RESULTS and when done will swap it with
|
|
# $CONFIG...
|
|
# XXX move this to /tmp???
|
|
TMP_RESULTS=${TMP_RESULTS:=${CONFIG}.live}
|
|
|
|
|
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
source .pct-helpers
|
|
|
|
|
|
#----------------------------------------------------------------------
|
|
|
|
DATE=`date +'%Y-%m-%d %H:%M'`
|
|
|
|
if [ -e $TMP_RESULTS ] ; then
|
|
rm -f $TMP_RESULTS
|
|
fi
|
|
|
|
if [ -e $TEXT_STATUS ] ; then
|
|
mv -f $TEXT_STATUS{,.old}
|
|
echo $DATE > $TEXT_STATUS
|
|
else
|
|
TEXT_STATUS=/dev/null
|
|
fi
|
|
|
|
|
|
# read the sites from the status section in $CONFIG...
|
|
readarray -t lines <<<$(\
|
|
sed -n '/STATUS BEGIN/,/STATUS END/p' "$CONFIG" \
|
|
| sed \
|
|
-e '1d;$d' \
|
|
-e 's/^#//' \
|
|
-e 's/%3A/:/g' \
|
|
-e 's/ : \(OK\|**ERROR\).*//')
|
|
|
|
# fill the status section -> $TMP_RESULTS...
|
|
cp -f "$CONFIG" "$CONFIG".bak
|
|
{
|
|
echo '#<!-- STATUS BEGIN -->'
|
|
for line in "${lines[@]}" ; do
|
|
# empty lines...
|
|
if [[ "$line" =~ ^[[:space:]]*$ ]] ; then
|
|
echo "#"
|
|
continue
|
|
# skip check date...
|
|
elif [[ "$line" =~ ^_\(checked[[:blank:]]on:[[:blank:]].*\)_$ ]] ; then
|
|
continue
|
|
fi
|
|
|
|
./check-status "$line" \
|
|
| tee -a $TEXT_STATUS \
|
|
| sed \
|
|
-e 's/^\(.*\)\(ERROR.*$\)/\1**\2**/' \
|
|
-e 's/^/#/'
|
|
done
|
|
echo "#_(checked on: ${DATE})_"
|
|
echo '#<!-- STATUS END -->'
|
|
} \
|
|
| fillsection -r STATUS ${CONFIG} \
|
|
> "$TMP_RESULTS"
|
|
|
|
|
|
# replace $TMP_RESULTS -> $CONFIG
|
|
if [ -e $TMP_RESULTS ] ; then
|
|
mv -f "$TMP_RESULTS" "$CONFIG"
|
|
fi
|
|
|
|
|
|
# vim:set ts=4 sw=4 nowrap :
|