---bvd писал(а):Заметил косяк с обработкой цикла.
после вот этого:
for iface in ${trafd_ifaces}
do
/usr/local/bin/trafsave ${iface}
/usr/local/bin/traflog -i ${iface} -a -n -s > /usr/local/tmp/summary.${iface}
cat /dev/null > /usr/local/var/trafd/trafd.${iface}
cat /usr/local/tmp/summary.${iface} >> ${NewDir}/summary.${iface}
---
файлы /usr/local/var/trafd/trafd.${iface} не пустые, или через раз очищается только последний в цикле. боюсь это может повлечь наложение данных и как следствие не точность в финале..
пробовал по отдельности каждую из перечисленных команд в цикле прогонять - проходит без проблем, а все вместе косячит.
есть подозрение что он фигачит все эти команды не дожидаясь отработки каждой, тогда вообще о точности попадания данных в бд говорить не приходится. также с амперсантами (&&) в конце каждой команды эфекта не добился.
это только у меня такой косяк, или это известный баг? ответа на форуме не нашел.
выручайте!!
Разобрался!! вся проблема в "/usr/local/bin/trafsave". так как эта команда всего лишь сигнал к выгрузке, она отрабатывается моментом, а результат в бинарник прилетает с некой долей секунд задержкой - дальше все по наклонной.. трафлог обрабатывает только то, что успело прилететь, бинарник зануляется, а данные продолжают прилетать и после - это и есть то, почему результат не соответствовал ожидаемому.
Развлекаловка с попыткой задержать дальнейшее выполнение команд после trafsave на н-сколько секунд не принесла успеха (так и не нашел как это правильно сделать), решил проблему отключив в данном скрипте trafsave, и поставив его в крон за минуту до отработки этого скрипта.
Да(!), возможно такая ситуация наблюдается не у всех, т.к. хотя моя машинка и мощная, но очень загружена трафиком (с десяток внешних сетей и несколько локалок с обменом по файл серверам), но обратить внимание стоит!