Исправление vodz, (текущая версия) :
пытаюсь. отягощается тем, что пересиливать нужно, если знаешь как. а то получается приложение сил - но выходит как у меня - с кучей временных файлов.
Мониторинг же у вас будет в цикле, потому не надо запоминать старое значение во временном файле. Впрочем, если хотите, по получению сигналов SIGTERM/SIGINT/etc можно и записывать. Это будет хороший пилотаж.
ResPF у вас лишняя переменная, правильнее как-то так:
#!/bin/bash
##Old data of Received
BYTES_R=
read BYTES_R 2> /dev/null < /tmp/postfix/postfix.bytes.received
BYTES_R=${BYTES_R:-0}
# включаем запоминание во временный файл при сигнале
trap 'echo $BYTES_R > /tmp/postfix/postfix.bytes.received; exit 1' SIGHUP SIGINT SIGQUIT SIGTERM
while true; do
##Get new values
BYTES_RN=$(/usr/sbin/pflogsumm -h 0 -u 0 -d today --bounce_detail=0 --deferral_detail=0 --reject_detail=0 --smtpd_warning_detail=0 --no_no_msg_size /var/log/mail.log | awk 'BEGIN {sum=0} /bytes received/ {sum+=$1} END {print sum}')
##получаем abs(разницы)
BYTES_R=$((BYTES_RN - BYTES_R < 0 ? BYTES_R - BYTES_RN : BYTES_RN - BYTES_R))
# что-то делаем ещё
......
done
Исправление vodz, :
пытаюсь. отягощается тем, что пересиливать нужно, если знаешь как. а то получается приложение сил - но выходит как у меня - с кучей временных файлов.
Мониторинг же у вас будет в цикле, потому не надо запоминать старое значение во временном файле. Впрочем, если хотите, по получению сигналов SIGTERM/SIGINT/etc можно и записывать. Это будет хороший пилотаж.
ResPF у вас лишняя переменная, правильнее как-то так:
#!/bin/bash
##Old data of Received
BYTES_R=$(cat /tmp/postfix/postfix.bytes.received 2> /dev/null || echo 0)
# включаем запоминание во временный файл при сигнале
trap 'echo $BYTES_R > /tmp/postfix/postfix.bytes.received; exit 1' SIGHUP SIGINT SIGQUIT SIGTERM
while true; do
##Get new values
BYTES_RN=$(/usr/sbin/pflogsumm -h 0 -u 0 -d today --bounce_detail=0 --deferral_detail=0 --reject_detail=0 --smtpd_warning_detail=0 --no_no_msg_size /var/log/mail.log | awk 'BEGIN {sum=0} /bytes received/ {sum+=$1} END {print sum}')
##получаем abs(разницы)
BYTES_R=$((BYTES_RN - BYTES_R < 0 ? BYTES_R - BYTES_RN : BYTES_RN - BYTES_R))
# что-то делаем ещё
......
done
Исходная версия vodz, :
пытаюсь. отягощается тем, что пересиливать нужно, если знаешь как. а то получается приложение сил - но выходит как у меня - с кучей временных файлов.
Мониторинг же у вас будет в цикле, потому не надо запоминать старое значение во временном файле. Впрочем, если хотите, по получению сигналов SIGTERM/SIGINT/etc можно и записывать. Это будет хороший пилотаж.
ResPF у вас лишняя переменная, правильнее как-то так:
#!/bin/bash
##Old data of Received
BYTES_R=$(cat /tmp/postfix/postfix.bytes.received 2> /dev/null || echo 0)
# включаем запоминание во временный файл при сигнале
trap 'echo $BYTES_R > /tmp/postfix/postfix.bytes.received; exit 1' SIGHUP SIGINT SIGQUIT SIGTERM
while true; do
##Get new values
BYTES_RN=$(/usr/sbin/pflogsumm -h 0 -u 0 -d today --bounce_detail=0 --deferral_detail=0 --reject_detail=0 --smtpd_warning_detail=0 --no_no_msg_size /var/log/mail.log | awk 'BEGIN {sum=0} /bytes received/ {sum+=$1} END {print sum})
##получаем abs(разницы)
BYTES_R=$((BYTES_RN - BYTES_R < 0 ? BYTES_R - BYTES_RN : BYTES_RN - BYTES_R))
# что-то делаем ещё
......
done