#!/bin/sh ################################### # # # mailfreilass # # # # (c)2003 Udo Wolter (UWP) # # # # Schreibt Mails Loadvertraeglich # # raus, die Status On-Hold haben # # zur Unterstuetzung der Rundmail # # # # 2003-08-06: mit 3.0-Load # # 2007-05-02: individuelles Freilassen von Queuefiles # # ################################### set -x # # Sollte immer laufen ! # Zur Not mit Supervise ! # while true do # # Load-Status des 1-Minuten-Werts pruefen, # wenn unter 10.0, dann 1 als OK-Wert zurueck- # liefern, ansonsten 0 als Nein-Wert # load1min=`uptime | gawk -F, '{ split($(NF-2),bla," ") if (bla[3] >= 10.0){ print 0 } else { print 1 } }'` # # Nur, wenn Load < 10.0, wird die erste Zeile, in der # ein ! vorkommt, auseinandergenommen und die # Mail-ID rausgezogen # if [ $load1min -eq 1 ] then # ID=`mailq | gawk -F\! 'BEGIN{lauf=1}{ # if ((index ($0, "!")) && lauf){ # print $1 # lauf = 0 # } # }'` ID=`mailq | gawk 'BEGIN {RS=""} {if (sub(/!$/, "", $1)||sub(/^!/, "", $2)) { print $1; exit }}'` # # Nur, wenn die ID nicht leer ist (leer bedeutet, # dass keine ID mit ! dabei war), wird die Mail-ID # wieder eingetuetet und abgearbeitet # if [ ! -z "$ID" ] then /usr/sbin/postsuper -H $ID && postqueue -i $ID fi fi # # Alle 10 Sekunden aufrufen # sleep 10 done