LINUX.ORG.RU
ФорумAdmin

через раз срабатывает sh скрипт для логирования trafd. Как вылечить?


0

0

Скрипт запускается на 59 минуте каждого часа и теоретически должен создавать файлики со статистикой trafd.
сам скрипт:

#!/bin/sh

# Сохраняем лог в бинарик
/usr/local/bin/trafctl save

# вычисляем дату для имени каталога и файла
dat=`date '+%Y%m%d%H'`
pdat=`date '+%Y%m%d'`
dirf=/var/trafd/log/$pdat
f=$dirf/$dat
# Пытаемся создать эту самую директорию на случай если это первый запуск
# или произошла смена дня, месяца или года
mkdir -p $dirf
# кождый час будем создвать текстовый файлик со статистикой из бинарного лога. У меня сетевухи две.
/usr/local/bin/traflog -n -a -i eth0 > $f.eth0
/usr/local/bin/traflog -n -a -i eth1 > $f.eth1

#ротируем бинарный лог то-бы не дублировать данные
/usr/local/bin/trafctl rotate

# Обработка дневных логов. Расчет итогов.
#/var/trafd/log/logparser $f

логи через раз создаются нулевого размера (закономерности не выявил). В процессе выполнения скрипта бывают следующие ошибки:
traflog: can't open /var/trafd/trafd.eth1 for reading: No such file or directory
не может быть, что за час не было ни одного обращения к сетевухам сервера. и при этьом не создается статистика не только для eth1, но и для eth0
traflog: WARNING: fread: can't read table: Success
вообще не понял ошибку

Такое ощущение, что команды скрипта выполняются параллельно. 8-О

подскажите в чем баг плз.

Re: через раз срабатывает sh скрипт для логирования trafd. Как вылечить?

Я не работал с trafd, но может быть "/usr/local/bin/trafctl save" просто не успевает создать (записать) данные в файл /var/trafd/trafd.eth1 к моменту начала выполнения "/usr/local/bin/traflog -n -a -i eth1 > $f.eth1" ?

Может вам поможет цикл, ожидающий появления данного файла и sleep...

mky ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.