proxmox-utils/update-status
Alex A. Naanou 39b078a826 added text status output...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-06-27 12:52:27 +03:00

60 lines
1.0 KiB
Bash

#!/usr/bin/bash
CONFIG=/etc/pve/nodes/pve/config
TMP_TARGET=${CONFIG}.new-status
TARGET=${TARGET:=${TMP_TARGET}}
TEXT_TARGET=/media/shared/status
if [ -e $TMP_TARGET ] ; then
rm -f $TMP_TARGET
fi
if [ -e $TEXT_TARGET ] ; then
mv -f $TEXT_TARGET{,.old}
else
TEXT_TARGET=/dev/null
fi
IFS=$'\n' \
SITES=($(\
sed -n '/STATUS BEGIN/,/STATUS END/p' "$CONFIG" \
| sed \
-e '1d;$d' \
-e 's/^#//' \
-e 's/^- //' \
-e 's/^\**//' \
-e 's/%3A/:/g' \
-e 's/ : .*//' \
| grep 'http'))
cp -f "$CONFIG" "$CONFIG".bak
{
sed '/STATUS BEGIN/q' "$CONFIG" | sed '$d'
echo '#<!-- STATUS BEGIN -->'
for site in "${SITES[@]}" ; do
./check-status "$site" \
| tee -a $TEXT_TARGET \
| sed \
-e 's/^\s*\(.*ERROR.*$\)/**\1**/' \
-e 's/^/#- /' \
-e 's/$/\n#/'
done
echo "#_(checked on: `date +'%Y-%m-%d %H:%M'`)_"
echo '#<!-- STATUS END -->'
sed -ne '/STATUS END/,$ p' "$CONFIG" | sed '1d'
} > "$TARGET"
if [ -e $TMP_TARGET ] ; then
mv -f "$TMP_TARGET" "$CONFIG"
fi
# vim:set ts=4 sw=4 nowrap :