[Proxmox Timed Shutdown]
- Log file function with date/time stamp prefix. - Log file rotation. - Shutdown loop to handle overrunning backup tasks.
This commit is contained in:
+32
-8
@@ -1,12 +1,36 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "Waiting 1hr to allow user to cancel shutdown"
|
||||
LOGFILE="/var/log/timedshutdown.log"
|
||||
touch $LOGFILE
|
||||
|
||||
# Log file #################################################################
|
||||
log () {
|
||||
TIMEDATE=$(date +%Y/%m/%d_%H:%M:%S)
|
||||
echo "$TIMEDATE $1" >> $LOGFILE
|
||||
}
|
||||
|
||||
if [ `cat $LOGFILE | wc -l` -ge 100 ]; then
|
||||
>$LOGFILE
|
||||
log "Log file was rotated"
|
||||
fi
|
||||
############################################################################
|
||||
|
||||
log "Waiting 1hr to allow user to cancel shutdown"
|
||||
sleep 1h
|
||||
|
||||
if [ `ps -ef | grep vzdump | wc -l` -eq 1 ]; then
|
||||
echo "Triggering scheduled post-backup shutdown"
|
||||
/usr/sbin/shutdown -h now
|
||||
else
|
||||
echo "Automatic shutdown not triggered due to concurrent backup task"
|
||||
exit 2
|
||||
fi
|
||||
# Main loop ################################################################
|
||||
for i in 1 2 3 4
|
||||
do
|
||||
if [ `ps -ef | grep vzdump | wc -l` -eq 1 ]; then
|
||||
log "Triggering scheduled post-backup shutdown"
|
||||
/usr/sbin/shutdown -h now
|
||||
exit 1
|
||||
else
|
||||
log "Automatic shutdown delayed due to concurrent backup task"
|
||||
sleep 15m
|
||||
fi
|
||||
done
|
||||
|
||||
log "Automatic shutdown cancelled due to concurrent backup task"
|
||||
exit 2
|
||||
############################################################################
|
||||
Reference in New Issue
Block a user