diff --git a/checkupdates.sh b/checkupdates.sh new file mode 100644 index 0000000..459a76a --- /dev/null +++ b/checkupdates.sh @@ -0,0 +1,81 @@ +#!/bin/bash + +tgapi="" +tgch="" + +nextcloudpath="/var/www/html" +wwwuser="www-data" +logmax="250" +logprefix="checkupdates" + +function sendtelegram { + mode=$1 + if [[ $mode == "new" ]]; then + echo "Nextcloud install needs updating..." > /tmp/nccheckupdatesheader.txt + elif [[ $mode == "reminder" ]]; then + echo "Reminder: Nextcloud install needs updating..." > /tmp/nccheckupdatesheader.txt + else + echo "Error with statement 'sendtelegram'." + updatelog error + exit 1 + fi + echo "Server: $(hostname)" >> /tmp/nccheckupdatesheader.txt + echo "Path: $nextcloudpath" >> /tmp/nccheckupdatesheader.txt + echo "Date: $(date)" >> /tmp/nccheckupdatesheader.txt + echo "" >> /tmp/nccheckupdatesheader.txt + string=$(cat /tmp/nccheckupdatesheader.txt /tmp/nccheckupdates.txt) + wget -qO- "https://api.telegram.org/bot$tgapi/sendMessage?chat_id=$tgch&text=$string" &> /dev/null + errorcode=$? + echo $datestamp > /tmp/nccheckupdatessent.txt + updatelog $mode $errorcode +} + +function updatelog { + if [[ $1 == "new" ]]; then + logdata="First Telegram Sent" + elif [[ $1 == "reminder" ]]; then + logdata="Reminder Telegram Sent" + else + logdata="Error with statement 'sendtelegram'" + fi + if [[ ! -z $2 ]]; then + if [[ $2 == "0" ]]; then + logerror="Successful!" + else + logerror="Sending Failed: Exit Code $2" + fi + fi + echo "$(date +%y%m%d).$(date +%H%M) - $logprefix - $logdata - $logerror" >> /var/log/nextcloud-telegram-notify.log + logsize=$(cat /var/log/nextcloud-telegram-notify.log | wc -l) + if [[ $logsize -gt $logmax ]]; then + mv /var/log/nextcloud-telegram-notify.log /tmp/nextcloud-telegram-notify.log + tail -n $logmax /tmp/nextcloud-telegram-notify.log > /var/log/nextcloud-telegram-notify.log + rm /tmp/nextcloud-telegram-notify.log + fi +} + +datestamp="$(date +%y%m%d)" + +sudo -u $wwwuser php "$nextcloudpath/occ" update:check > /tmp/nccheckupdates.txt + +string=$(cat /tmp/nccheckupdates.txt) + +if [[ ${string:0:21} == "Everything up to date" ]]; then + echo "All Good!" + if [[ -f /tmp/nccheckupdatessent.txt ]]; then + rm /tmp/nccheckupdatessent.txt + fi +else + if [[ ! -f /tmp/nccheckupdatessent.txt ]]; then + echo "Update Required: Sending First Telegram..." + sendtelegram new + elif [[ -f /tmp/nccheckupdatessent.txt ]]; then + laststamp=$(head -1 /tmp/nccheckupdatessent.txt) + if [[ ${laststamp:0:6} == $datestamp ]]; then + echo "Update Required: All ready sent Telegram today." + else + echo "Update Required: Sending Reminder Telegram..." + sendtelegram reminder + fi + fi +fi