sed -r '/^info: filtering:/{h;d};/^info: msgid=$/N;/^info: msgid=.*left message in mailbox [^ ]+$/d;/^info: msgid=/{H;g};/^info: message kept in source mailbox.$/d' /tmp/testsieve.log
}
+# usage:
+# alertme SUBJECT
+# printf "subject\nbody\n" | alertme
+alertme() {
+ if [[ -t 0 ]]; then
+ exim -t <<EOF
+From: alertme@iankelling.org
+To: alerts@iankelling.org
+Subject: $*
+EOF
+ else
+ read sub
+ { cat <<EOF
+From: alertme@iankelling.org
+To: alerts@iankelling.org
+Subject: $sub
+
+EOF
+ cat
+ } | exim -t
+ fi
+}
+
# mail related
testexim() {
# testmail above calls sendmail, which is a link to exim/postfix.
Description=schrootupdate
[Timer]
-OnCalendar=*-*-* 04:20:00
+OnCalendar=*-*-* 04:20:00 America/New_York
[Install]
WantedBy=timers.target
Description=btrfsmaint
[Timer]
-OnCalendar=Thu *-*-* 02:00:00
+# we could programatically get this via:
+# timedatectl show --property=Timezone | sed 's/^[^=]*=//'
+# or
+# readlink /etc/localtime | sed -r 's,^.*/([^/]+/[^/]+)$,\1,'
+OnCalendar=Thu *-*-* 02:00:00 America/New_York
[Install]
WantedBy=timers.target
# 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
+ echo ok | sed 's/^/myupgrade /' | pee logger "wall -n"
+ fi
+}
myreboot() {
for x in {30..1}; do
echo "pid $$. unattended upgrade, rebooting in $((x*10)) seconds" | wall -n
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
echo "pid $$. unattended upgrade reboot waiting 10 seconds for dpkg lock" | wall -n
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
}