# Copyright (C) 2019 Ian Kelling
# SPDX-License-Identifier: AGPL-3.0-or-later
+# usage: set DEBUG env var to anything to output to stdout
+
# Note: running this inside a cronjob, it wont mail any output if we end
# up rebooting from this script.
hn=$(hostname -f)
source /a/bin/bash_unpublished/source-state
+d() {
+ if [[ $DEBUG ]]; then
+ pee cat "wall -n"
+ else
+ # 2>/dev/null hopefully gets rid of errors like: wall: /dev/pts/0: No such file or directory
+ sed 's/^/myupgrade /' | pee logger "wall -n" 2>/dev/null
+ fi
+}
myreboot() {
for x in {30..1}; do
- echo "pid $$. unattended upgrade, rebooting in $((x*10)) seconds" | wall -n
+ echo "pid $$. unattended upgrade, rebooting in $((x*10)) seconds" | wall -n 2>/dev/null
sleep 10
done
for x in {30..1}; do
if ! fuser /var/lib/dpkg/lock &> /dev/null; then
- echo "pid $$. unattended upgrade, rebooting now" | pee cat "wall -n"
+ echo "pid $$. unattended upgrade, rebooting now" | d
/a/bin/ds/keyscript-on
/sbin/reboot
exit 0
fi
- echo "pid $$. unattended upgrade reboot waiting 10 seconds for dpkg lock" | wall -n
+ echo "pid $$. unattended upgrade reboot waiting 10 seconds for dpkg lock" | wall -n 2>/dev/null
sleep 10
done
- echo "pid $$. dpkg locked for 5 minutes, automatic reboot failed" | pee cat "wall -n"
+ echo "pid $$. dpkg locked for 5 minutes, automatic reboot failed" | d
}
-if [[ $HOSTNAME != "$MAIL_HOST" ]]; then
- ksta=$(needrestart -b | sed -n 's/NEEDRESTART-KSTA: *//p');
- case $ksta in
- 1) : ;;
- [023]) myreboot ;;
- *) err error: unknown kernel status ;;
- esac
-fi
+case $HOSTNAME in
+ kd)
+ /c/roles/prom/files/simple/usr/local/bin/fsf-install-prometheus
+ /c/roles/prom_export/files/simple/usr/local/bin/fsf-install-node-exporter -l 127.0.0.1
+ ;;
+ li|bk|je)
+ /c/roles/prom_export/files/simple/usr/local/bin/fsf-install-node-exporter -l 127.0.0.1
+ ;;
+ *)
+ /c/roles/prom_export/files/simple/usr/local/bin/fsf-install-node-exporter
+ ;;
+esac
+
+
+# TODO: executed from cron, this doesnt sent an email when we reboot,
+# because rebooting from the script stops the ability to send email.
+# We should figure some workaround.
-# needsrestarts automatic restarts failed.
if ! out=$(/sbin/needrestart -p 2>&1); then
- e "$out"
+ if [[ $HOSTNAME == "$MAIL_HOST" ]]; then
+ needrestart -r l
+ else
+ myreboot
+ fi
fi