#!/bin/bash # doalogwatch, part of logwatch-extra version #VERSION# set -e abWannNaechstesMal="$(date +%F)" lmDatei="#CACHEDIR#/logwatch/letzteMeldung" warteAufFile="#WAITDIR#/logwatch" [ ! -r "${lmDatei}" ] && \ echo '1970-01-01' > "${lmDatei}" [ "${abWannNaechstesMal}" == "$(cat "${lmDatei}")" ] && \ exit 0 if [ -r '#ETCDIR#/logwatch/conf/logwatch.conf' ]; then services=$( sed -n ' s/^#\s*doalogwatch\s*#\s*Service\s*=\s*// T s/^\(["'"'"']\)\(.*\)\1$/\2/ s/^/--service=/ p ' '#ETCDIR#/logwatch/conf/logwatch.conf' ) fi if [ -z "${services%%--service=-*}" ]; then services="--service=All ${services}" fi [ -r "${warteAufFile}" ] && \ ps aux | \ awk '{print $2" "$(NF)}' | \ grep -q "^\s*$(cat "${warteAufFile}") \(\S*/\)\?doalogwatch\$" && \ exit 0 if [ -d "${warteAufFile%/*}" ]; then echo $$ > "${warteAufFile}" fi [ -r '#ETCDIR#/backup.conf' ] && \ . '#ETCDIR#/backup.conf' warten=true while ${warten}; do warten=false [ $(sed 's/[. ].*$//' /proc/uptime) -le 300 ] && \ warten=true # check for currently running backups ps aux | \ grep -v "\sgrep\s" | \ grep -q "\s\(#BINDIR#/\)\?backup\s" && \ warten=true if [ -r '#ETCDIR#/backup.conf' ]; then for i in 1 2; do for id in "${!backups[@]}"; do [ -e "#TMPDIR#/${id}.pid" ] && \ warten=true done sleep 1 done fi done logwatch \ --archives \ --range "between $(cat "${lmDatei}") and yesterday" \ ${services} echo "${abWannNaechstesMal}" > "${lmDatei}" rm -f ${warteAufFile}