„changedetection.sh“ ändern
This commit is contained in:
parent
a7d33c9030
commit
650c0bf95c
|
@ -1,7 +1,8 @@
|
|||
#!/bin/sh
|
||||
# changedetection
|
||||
# v1.2@geimist
|
||||
# 2020-07-11
|
||||
# 2020-07-12
|
||||
# /volume1/homes/admin/script/changedetection/changedetection.sh
|
||||
|
||||
# Definition der Variablen:
|
||||
EMPFAENGER=user@domain.de
|
||||
|
@ -32,176 +33,217 @@ purge_LOG()
|
|||
#########################################################################################
|
||||
# This function cleans up older log files #
|
||||
#########################################################################################
|
||||
echo -e
|
||||
if [ -z $MAXDAY ]; then
|
||||
echo "purge_LOG deactivated"
|
||||
return
|
||||
fi
|
||||
|
||||
anzahl=0
|
||||
for del in $(find "${APPDIR}/change_detected/" -mtime +$MAXDAY -maxdepth 1 -type f); do
|
||||
# -maxdepth 1
|
||||
for del in $(find "${APPDIR}/change_detected/" -type f -mtime +${MAXDAY}); do
|
||||
anzahl=$( expr $anzahl + 1 )
|
||||
rm -f "$del"
|
||||
done
|
||||
|
||||
echo " Logfiles gelöscht: $anzahl"
|
||||
printf "%-${1}s%s\n" "➜ Logfiles gelöscht: " "$anzahl"
|
||||
|
||||
}
|
||||
|
||||
sec_to_time()
|
||||
{
|
||||
# this function converts a second value to hh:mm:ss
|
||||
# call: sec_to_time "string"
|
||||
# https://blog.jkip.de/in-bash-sekunden-umrechnen-in-stunden-minuten-und-sekunden/
|
||||
# --------------------------------------------------------------
|
||||
local seconds=$1
|
||||
local sign=""
|
||||
if [[ ${seconds:0:1} == "-" ]]; then
|
||||
seconds=${seconds:1}
|
||||
sign="-"
|
||||
fi
|
||||
local hours=$(( seconds / 3600 ))
|
||||
local minutes=$(( (seconds % 3600) / 60 ))
|
||||
seconds=$(( seconds % 60 ))
|
||||
printf "%s%02d:%02d:%02d" "$sign" $hours $minutes $seconds
|
||||
}
|
||||
|
||||
|
||||
# berechne Zeichenlänge für Log:
|
||||
NAMElen=0
|
||||
while read i ; do
|
||||
if [ "$i" == "" ]; then
|
||||
continue
|
||||
elif echo "$i" | grep -q '^#'; then # auskommentierte Zeilen überspringen
|
||||
continue
|
||||
fi
|
||||
|
||||
ilen=$(echo $i | awk -F ' "' '{print $1}' | sed 's/\"//g ; s/\ $//g' | wc -c )
|
||||
if [ $ilen -gt $NAMElen ] ;then
|
||||
NAMElen=$ilen
|
||||
fi
|
||||
done < "${APPDIR}/SITES.txt"
|
||||
|
||||
NAMElen=$((NAMElen + 5))
|
||||
|
||||
|
||||
# Quelle zeilenweise einlesen:
|
||||
while read i ; do
|
||||
date_start=$(date +%s)
|
||||
|
||||
while read i # Quelle zeilenweise einlesen
|
||||
do
|
||||
if [ "$i" == "" ]; then
|
||||
continue
|
||||
elif echo "$i" | grep -q '^#'; then # auskommentierte Zeilen überspringen
|
||||
continue
|
||||
fi
|
||||
if [ "$i" == "" ]; then
|
||||
continue
|
||||
elif echo "$i" | grep -q '^#'; then # auskommentierte Zeilen überspringen
|
||||
continue
|
||||
fi
|
||||
|
||||
NAME=$(echo $i | awk -F ' "' '{print $1}' | sed 's/\"//g ; s/\ $//g')
|
||||
LINK=$(echo $i | awk -F ' "' '{print $2}' | sed 's/\"//g')
|
||||
CutStart=$(echo $i | awk -F ' "' '{print $3}' | sed 's/\"//g')
|
||||
CutEnd=$(echo $i | awk -F ' "' '{print $4}' | sed 's/\"//g')
|
||||
PushInfo=$(echo $i | awk -F ' "' '{print $5}' | sed 's/\"//g')
|
||||
|
||||
echo -e; echo -n "=> ${NAME}: "
|
||||
|
||||
# 1.: lade aktuelle index.html
|
||||
#---------------------------------------------
|
||||
# vorherige Datei sichern:
|
||||
if [ -f "${APPDIR}/tmp/${NAME}.txt" ] ; then
|
||||
mv "${APPDIR}/tmp/${NAME}.txt" "${APPDIR}/tmp/${NAME}_old.txt"
|
||||
fi
|
||||
|
||||
machinetyp=$(uname --machine)
|
||||
# links = SPK von synocommunity https://synocommunity.com/package/links
|
||||
# manual: https://www.mankier.com/1/links2
|
||||
# Parameter "ssl.certificates 0" in Datei ~/.links/links.cfg notwendig oder direkt übergeben (warum können Certs nicht validiert werden?)
|
||||
if [ $machinetyp = "x86_64" ]; then
|
||||
${APPDIR}/links_APP/bin/links -dump "$LINK" -memory-cache-size 1 -ssl.certificates 0 -codepage "utf-8" -http.fake-firefox 1 -anonymous > "${APPDIR}/tmp/${NAME}.txt"
|
||||
else
|
||||
links -dump "$LINK" -memory-cache-size 1 -ssl.certificates 0 -codepage "utf-8" -http.fake-firefox 1 -anonymous > "${APPDIR}/tmp/${NAME}.txt"
|
||||
fi
|
||||
# Überhänge löschen
|
||||
if [ -n "$CutStart" ]; then # alles vorm Start-Keyword löschen
|
||||
CutStartRow=$(cat "${APPDIR}/tmp/${NAME}.txt" | egrep -n "$CutStart" | cut -d":" -f1 | head -n1)
|
||||
sed -i "1,${CutStartRow}d" "${APPDIR}/tmp/${NAME}.txt" #> "${APPDIR}/tmp/${NAME}_tmp.txt"
|
||||
fi
|
||||
NAME=$(echo $i | awk -F ' "' '{print $1}' | sed 's/\"//g ; s/\ $//g')
|
||||
LINK=$(echo $i | awk -F ' "' '{print $2}' | sed 's/\"//g')
|
||||
CutStart=$(echo $i | awk -F ' "' '{print $3}' | sed 's/\"//g')
|
||||
CutEnd=$(echo $i | awk -F ' "' '{print $4}' | sed 's/\"//g')
|
||||
PushInfo=$(echo $i | awk -F ' "' '{print $5}' | sed 's/\"//g')
|
||||
|
||||
echo -e; #echo -n "=> ${NAME}: "
|
||||
|
||||
# 1.: lade aktuelle index.html
|
||||
#---------------------------------------------
|
||||
# vorherige Datei sichern:
|
||||
if [ -f "${APPDIR}/tmp/${NAME}.txt" ] ; then
|
||||
mv "${APPDIR}/tmp/${NAME}.txt" "${APPDIR}/tmp/${NAME}_old.txt"
|
||||
fi
|
||||
|
||||
machinetyp=$(uname --machine)
|
||||
# links = SPK von synocommunity https://synocommunity.com/package/links
|
||||
# manual: https://www.mankier.com/1/links2
|
||||
# Parameter "ssl.certificates 0" in Datei ~/.links/links.cfg notwendig oder direkt übergeben (warum können Certs nicht validiert werden?)
|
||||
if [ $machinetyp = "x86_64" ]; then
|
||||
${APPDIR}/links_APP/bin/links -dump "$LINK" -memory-cache-size 1 -ssl.certificates 0 -codepage "utf-8" -http.fake-firefox 1 -anonymous > "${APPDIR}/tmp/${NAME}.txt"
|
||||
else
|
||||
links -dump "$LINK" -memory-cache-size 1 -ssl.certificates 0 -codepage "utf-8" -http.fake-firefox 1 -anonymous > "${APPDIR}/tmp/${NAME}.txt"
|
||||
fi
|
||||
# Überhänge löschen
|
||||
if [ -n "$CutStart" ]; then # alles vorm Start-Keyword löschen
|
||||
CutStartRow=$(cat "${APPDIR}/tmp/${NAME}.txt" | egrep -n "$CutStart" | cut -d":" -f1 | head -n1)
|
||||
sed -i "1,${CutStartRow}d" "${APPDIR}/tmp/${NAME}.txt" #> "${APPDIR}/tmp/${NAME}_tmp.txt"
|
||||
fi
|
||||
|
||||
if [ -n "$CutEnd" ]; then # alles nach dem End-Keyword löschen
|
||||
CutEndRow=$(cat "${APPDIR}/tmp/${NAME}.txt" | egrep -n "$CutEnd" | cut -d":" -f1 | head -n1)
|
||||
LineCount=$(cat "${APPDIR}/tmp/${NAME}.txt" | wc -l )
|
||||
sed -i "${CutEndRow},${LineCount}d" "${APPDIR}/tmp/${NAME}.txt" # sed -i "${CutEndRow},$d" produziert Fehler …
|
||||
fi
|
||||
if [ -n "$CutEnd" ]; then # alles nach dem End-Keyword löschen
|
||||
CutEndRow=$(cat "${APPDIR}/tmp/${NAME}.txt" | egrep -n "$CutEnd" | cut -d":" -f1 | head -n1)
|
||||
LineCount=$(cat "${APPDIR}/tmp/${NAME}.txt" | wc -l )
|
||||
sed -i "${CutEndRow},${LineCount}d" "${APPDIR}/tmp/${NAME}.txt" # sed -i "${CutEndRow},$d" produziert Fehler …
|
||||
fi
|
||||
|
||||
filesize=$(ls -l "${APPDIR}/tmp/${NAME}.txt" | awk '{ print $5 }')
|
||||
filesize=$(ls -l "${APPDIR}/tmp/${NAME}.txt" | awk '{ print $5 }')
|
||||
|
||||
if [ "$filesize" -eq 0 ]; then
|
||||
echo "WARUNUNG - Download fehlgeschlagen - ${NAME} wird übersprungen!"
|
||||
mv "${APPDIR}/tmp/${NAME}_old.txt" "${APPDIR}/tmp/${NAME}.txt" # ggf. alte Datei wiederherstellen
|
||||
continue
|
||||
fi
|
||||
if [ "$filesize" -eq 0 ]; then
|
||||
# echo "WARUNUNG - Download fehlgeschlagen - ${NAME} wird übersprungen!"
|
||||
printf "%-${NAMElen}s%s\n" "➜ ${NAME}: " "WARUNUNG - Download fehlgeschlagen - ${NAME} wird übersprungen! [Laufzeit: $(sec_to_time $(expr $(date +%s)-${date_start}) )]"
|
||||
mv "${APPDIR}/tmp/${NAME}_old.txt" "${APPDIR}/tmp/${NAME}.txt" # ggf. alte Datei wiederherstellen
|
||||
continue
|
||||
fi
|
||||
|
||||
# 2.: vergleiche Hashes, ggf. Änderung mailen
|
||||
#---------------------------------------------
|
||||
difflog=$(diff -q "${APPDIR}/tmp/${NAME}.txt" "${APPDIR}/tmp/${NAME}_old.txt")
|
||||
# 2.: vergleiche Hashes, ggf. Änderung mailen
|
||||
#---------------------------------------------
|
||||
difflog=$(diff -q "${APPDIR}/tmp/${NAME}.txt" "${APPDIR}/tmp/${NAME}_old.txt")
|
||||
|
||||
file1=$(cat "${APPDIR}/tmp/${NAME}.txt" | sort)
|
||||
file2=$(cat "${APPDIR}/tmp/${NAME}_old.txt" | sort)
|
||||
file1=$(cat "${APPDIR}/tmp/${NAME}.txt" | sort)
|
||||
file2=$(cat "${APPDIR}/tmp/${NAME}_old.txt" | sort)
|
||||
|
||||
if [ "$file1" = "$file2" ]; then
|
||||
echo "keine Änderung"
|
||||
rm "${APPDIR}/tmp/${NAME}_old.txt"
|
||||
elif [ $? -eq 1 ]; then
|
||||
FOUND=1
|
||||
echo "Änderung für ${NAME} gefunden"
|
||||
if [ -f "${APPDIR}/tmp/${NAME}_old.txt" ] ; then
|
||||
VARDIFF=$(diff "${APPDIR}/tmp/${NAME}_old.txt" "${APPDIR}/tmp/${NAME}.txt" | head -c 10k) # head -c 25k
|
||||
if [ "$file1" = "$file2" ]; then
|
||||
printf "%-${NAMElen}s%s\n" "➜ ${NAME}: " "keine Änderung [Laufzeit: $(sec_to_time $(expr $(date +%s)-${date_start}) )]"
|
||||
rm "${APPDIR}/tmp/${NAME}_old.txt"
|
||||
elif [ $? -eq 1 ]; then
|
||||
FOUND=1
|
||||
printf "%-${NAMElen}s%s\n" "➜ ${NAME}: " "Änderung für ${NAME} gefunden [Laufzeit: $(sec_to_time $(expr $(date +%s)-${date_start}) )]"
|
||||
if [ -f "${APPDIR}/tmp/${NAME}_old.txt" ] ; then
|
||||
VARDIFF=$(diff "${APPDIR}/tmp/${NAME}_old.txt" "${APPDIR}/tmp/${NAME}.txt" | head -c 10k) # head -c 25k
|
||||
|
||||
subject="! ! ! ACHTUNG ! ! ! - Änderung für ${NAME} gefunden"
|
||||
mail="/tmp/ChangeDetectionMailPHP.txt"
|
||||
subject="! ! ! ACHTUNG ! ! ! - Änderung für ${NAME} gefunden"
|
||||
mail="/tmp/ChangeDetectionMailPHP.txt"
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Mailheader:
|
||||
echo "To: $EMPFAENGER" > "$mail"
|
||||
echo "From: $ABSENDER" >> "$mail"
|
||||
echo "MIME-Version: 1.0" >> "$mail"
|
||||
echo "Content-Type: multipart/alternative; " >> "$mail"
|
||||
echo ' boundary="some.unique.value.ABC123/geimist.eu"' >> "$mail"
|
||||
echo "Subject: $subject" >> "$mail"
|
||||
echo "" >> "$mail"
|
||||
echo "This is a MIME-encapsulated message" >> "$mail"
|
||||
echo "" >> "$mail"
|
||||
echo "--some.unique.value.ABC123/geimist.eu" >> "$mail"
|
||||
echo "Content-Type: text/html; charset=UTF-8" >> "$mail"
|
||||
echo "" >> "$mail"
|
||||
# Mail-Body:
|
||||
echo "<html><head><title></title></head><body>" >> "$mail"
|
||||
# ------------------------------------------------------------
|
||||
|
||||
# Linkkorrektur:
|
||||
LINK=$( echo "$LINK" | sed "s=${jsServer}==g")
|
||||
# ------------------------------------------------------------
|
||||
# Mailheader:
|
||||
echo "To: $EMPFAENGER" > "$mail"
|
||||
echo "From: $ABSENDER" >> "$mail"
|
||||
echo "MIME-Version: 1.0" >> "$mail"
|
||||
echo "Content-Type: multipart/alternative; " >> "$mail"
|
||||
echo ' boundary="some.unique.value.ABC123/geimist.eu"' >> "$mail"
|
||||
echo "Subject: $subject" >> "$mail"
|
||||
echo "" >> "$mail"
|
||||
echo "This is a MIME-encapsulated message" >> "$mail"
|
||||
echo "" >> "$mail"
|
||||
echo "--some.unique.value.ABC123/geimist.eu" >> "$mail"
|
||||
echo "Content-Type: text/html; charset=UTF-8" >> "$mail"
|
||||
echo "" >> "$mail"
|
||||
# Mail-Body:
|
||||
echo "<html><head><title></title></head><body>" >> "$mail"
|
||||
# ------------------------------------------------------------
|
||||
# Linkkorrektur:
|
||||
LINK=$( echo "$LINK" | sed "s=${jsServer}==g")
|
||||
echo "Es wurden Änderungen auf der <a href=\"$LINK\">Website für ${NAME}</a> gefunden!" >> "$mail"
|
||||
echo "</p><hr></hr><p><h3><u>Änderungen:</u></h3></p><div style=\"color:#9e9e9e;font-family: Monospace,Lucida Console,Lucida Sans Unicode,Vera Sans Mono,courier;\">" >> "$mail"
|
||||
|
||||
echo "Es wurden Änderungen auf der <a href=\"$LINK\">Website für ${NAME}</a> gefunden!" >> "$mail"
|
||||
echo "</p><hr></hr><p><h3><u>Änderungen:</u></h3></p><div style=\"color:#9e9e9e;font-family: Monospace,Lucida Console,Lucida Sans Unicode,Vera Sans Mono,courier;\">" >> "$mail"
|
||||
# Zeilenumbrüchen, Tabs anpassen / Sonderzeichen maskieren:
|
||||
echo "${VARDIFF}" | sed '/^---$/d' | sed -e 's/$/<br>/g ; s/\t/ /g ; s=\/=§1§=g ; s=\*=§2§=g ; s=\[=§3§=g ; s=\]=§4§=g ; s= =§5§=g' >> "$mail"
|
||||
|
||||
# Zeilenumbrüchen, Tabs anpassen / Sonderzeichen maskieren:
|
||||
echo "${VARDIFF}" | sed '/^---$/d' | sed -e 's/$/<br>/g ; s/\t/ /g ; s=\/=§1§=g ; s=\*=§2§=g ; s=\[=§3§=g ; s=\]=§4§=g ; s= =§5§=g' >> "$mail"
|
||||
# zeilenweise den HTML-Code anpassen (gelöschte Zeilen)
|
||||
while read rawline ; do
|
||||
if echo "$rawline" | egrep -q '^<'; then
|
||||
newline=$( echo "$rawline" | sed -e 's|^<§5§|<span style\=\"color\:\#ab483e\;\"><s>§5§|g' | sed -e 's|$|<\\\/s>\<\\\/span>|g' )
|
||||
sed -i "s|$rawline|$newline|g" "$mail"
|
||||
fi
|
||||
done < "$mail"
|
||||
|
||||
# zeilenweise den HTML-Code anpassen (gelöschte Zeilen)
|
||||
while read rawline ; do
|
||||
if echo "$rawline" | egrep -q '^<'; then
|
||||
newline=$( echo "$rawline" | sed -e 's/^</<span style\=\"color\:\#ab483e\;\"><s>/g' | sed -e 's=$=<\\\/s>\<\\\/span>=g' )
|
||||
sed -i "s/$rawline/$newline/g" "$mail"
|
||||
fi
|
||||
done < "$mail"
|
||||
|
||||
# zeilenweise den HTML-Code anpassen (hinzugefügte Zeilen)
|
||||
while read rawline ; do
|
||||
if echo "$rawline" | egrep -q '^>'; then
|
||||
newline=$( echo "$rawline" | sed -e 's/^>/<span style\=\"color\:\#1d9905\;\">/g' | sed -e 's=$=\<\\\/span>=g' )
|
||||
sed -i "s/$rawline/$newline/g" "$mail"
|
||||
fi
|
||||
done < "$mail"
|
||||
|
||||
# Body schließen
|
||||
echo "</div></body>
|
||||
</html>" >> "$mail"
|
||||
echo "" >> "$mail"
|
||||
# Maskierungen rückgängig machen:
|
||||
sed -i -e 's=§5§=\ \;=g ; s=§4§=\]=g ; s=§3§=\[=g ; s=§2§=\*=g ; s=§1§=\/=g' "$mail"
|
||||
# … 1 … > führt zu Fehler, da die Maskierung …§5§1§5§… zu …§5/5§… demaskiert wird
|
||||
|
||||
if echo "${VARDIFF}" | egrep -qzv "Error|Application is not available|502 Bad Gateway|504 Bad Gateway|504 Gateway Time-out|Service Unavailable|be back shortly|Link: canonical"; then # nur benachrichtigen, sofern kein Error getrackt wurde
|
||||
# Peep notify:
|
||||
sleep 1
|
||||
echo 2 > /dev/ttyS1; sleep 0.1; echo 2 > /dev/ttyS1 #echo 2 > short beep
|
||||
sleep 1
|
||||
|
||||
# Mailen (ssmtp):
|
||||
ssmtp "$EMPFAENGER" < "$mail"
|
||||
|
||||
# Pushbullet:
|
||||
if [ ! -z $PBTOKEN ] && [[ ! $PushInfo = noPB ]] ; then
|
||||
PB_LOG=$(curl --header "Access-Token:${PBTOKEN}" https://api.pushbullet.com/v2/pushes -d type=note -d title="Changedetection (${NAME})" -d body="${VARDIFF}")
|
||||
echo "$PB_LOG"
|
||||
if echo "$PB_LOG" | grep -q "error"; then
|
||||
echo "PushBullet Message:"
|
||||
echo "${VARDIFF}"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "↳ aussortierte geloggte Message:"
|
||||
echo "${VARDIFF}"
|
||||
mv "${APPDIR}/tmp/${NAME}_old.txt" "${APPDIR}/tmp/${NAME}.txt" # ggf. alte Datei wiederherstellen
|
||||
# zeilenweise den HTML-Code anpassen (hinzugefügte Zeilen)
|
||||
while read rawline ; do
|
||||
if echo "$rawline" | egrep -q '^>'; then
|
||||
# newline=$( echo "$rawline" | sed -e 's/^>/<span style\=\"color\:\#1d9905\;\">/g' | sed -e 's=$=\<\\\/span>=g' )
|
||||
newline=$( echo "$rawline" | sed -e 's|^>|<span style\=\"color\:\#1d9905\;\">|g' | sed -e 's|$|\<\\\/span>|g' )
|
||||
sed -i "s|$rawline|$newline|g" "$mail"
|
||||
# sed -i "s/$rawline/$newline/g" "$mail"
|
||||
fi
|
||||
|
||||
# DSM Notification:
|
||||
# synodsmnotify @administrators "! ! Änderung ${NAME} ! !" "$(cat /tmp/ChangeDetectionMailPHP.txt)"
|
||||
|
||||
# Änderungen archivieren:
|
||||
mv "${APPDIR}/tmp/${NAME}_old.txt" "${APPDIR}/change_detected/${NAME}_$(date +%Y-%m-%d_%H-%M)_before.txt"
|
||||
cp "${APPDIR}/tmp/${NAME}.txt" "${APPDIR}/change_detected/${NAME}_$(date +%Y-%m-%d_%H-%M)_current.txt"
|
||||
done < "$mail"
|
||||
|
||||
# Body schließen
|
||||
echo "</div></body></html>" >> "$mail"
|
||||
echo "" >> "$mail"
|
||||
# Maskierungen rückgängig machen:
|
||||
sed -i -e 's=§5§=\ \;=g ; s=§4§=\]=g ; s=§3§=\[=g ; s=§2§=\*=g ; s=§1§=\/=g' "$mail"
|
||||
# … 1 … > führt zu Fehler, da die Maskierung …§5§1§5§… zu …§5/5§… demaskiert wird
|
||||
if echo "${VARDIFF}" | egrep -qzv "Error|Application is not available|502 Bad Gateway|504 Bad Gateway|504 Gateway Time-out|Service Unavailable|be back shortly|Link: canonical"; then # nur benachrichtigen, sofern kein Error getrackt wurde
|
||||
# Peep notify:
|
||||
sleep 1
|
||||
echo 2 > /dev/ttyS1; sleep 0.1; echo 2 > /dev/ttyS1 #echo 2 > short beep
|
||||
sleep 1
|
||||
|
||||
# Mailen (ssmtp):
|
||||
ssmtp "$EMPFAENGER" < "$mail"
|
||||
|
||||
# Pushbullet:
|
||||
if [ ! -z $PBTOKEN ] && [[ ! $PushInfo = noPB ]] ; then
|
||||
PB_LOG=$(curl --header "Access-Token:${PBTOKEN}" https://api.pushbullet.com/v2/pushes -d type=note -d title="Changedetection (${NAME})" -d body="${VARDIFF}" 2>&1)
|
||||
echo "$PB_LOG"
|
||||
if echo "$PB_LOG" | grep -q "error"; then
|
||||
echo "PushBullet Message:"
|
||||
echo "${VARDIFF}"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "↳ aussortierte geloggte Message:"
|
||||
echo "${VARDIFF}"
|
||||
mv "${APPDIR}/tmp/${NAME}_old.txt" "${APPDIR}/tmp/${NAME}.txt" # ggf. alte Datei wiederherstellen
|
||||
fi
|
||||
|
||||
# DSM Notification:
|
||||
synodsmnotify @administrators "! ! Änderung ${NAME} ! !" "$LINK" #"$(cat /tmp/ChangeDetectionMailPHP.txt)"
|
||||
|
||||
# Änderungen archivieren:
|
||||
mv "${APPDIR}/tmp/${NAME}_old.txt" "${APPDIR}/change_detected/${NAME}_$(date +%Y-%m-%d_%H-%M)_before.txt"
|
||||
cp "${APPDIR}/tmp/${NAME}.txt" "${APPDIR}/change_detected/${NAME}_$(date +%Y-%m-%d_%H-%M)_current.txt"
|
||||
fi
|
||||
done < "${APPDIR}/SITES.txt"
|
||||
fi
|
||||
done < "${APPDIR}/SITES.txt"
|
||||
|
||||
|
||||
# leere Logs löschen:
|
||||
|
@ -210,21 +252,20 @@ while read i # Quelle zeilenweise einlesen
|
|||
fi
|
||||
|
||||
# alte Archivdateien löschen
|
||||
purge_LOG
|
||||
purge_LOG ${NAMElen}
|
||||
|
||||
# if [ "$ERROR" -eq 1 ]; then
|
||||
# echo "WARNUNG: Skript mit Fehlern beendet!"
|
||||
# exit 1
|
||||
# fi
|
||||
|
||||
exit
|
||||
|
||||
# Changelog:
|
||||
# 1.1
|
||||
# - Anpassungen an diff / Verzicht auf cksum
|
||||
# - Größenbeschränkung der gelogten Änderung auf 100KB
|
||||
# - Größenbeschränkung der gelogten Änderung (Error: Argument list too long)
|
||||
# 1.2
|
||||
# - Ausgabe als HTML-formatierte Mail
|
||||
# - archivierte Änderungen werden nach der angegebenen Anzahl von Tagen gelöscht
|
||||
|
||||
|
||||
|
||||
exit
|
Loading…
Reference in New Issue