anclbob Posted April 1, 2006 Posted April 1, 2006 Вроде отлично работает, и файлики создаёт как надо, только почему то пишет какие то предупреждения при создании и обновлении файла статистики. Вот файлик который создаёт статистику ==========refresh.sh============= day="`date +%Y-%m-%d`" # Текущая дата в формате ГГГГ-ММ-ДД ndir="traffic/${day}" # Имя новой директории, в которуюп оложим # статистику mkdir -p ${ndir} cd ${ndir} # Сохраним статистику по каждому интерфейсу /usr/local/bin/traflog -i rl1 -a -n -s > ${ndir}/summary.rl # для rl1 ============================================== на всё это он выдаёт cd: can't cd to traffic/2006-04-02 : not found и присылает этот текст на почту для root Вставить ник Quote
sadmitry Posted April 4, 2006 Posted April 4, 2006 Попробую догадаться: 1. В / 2. В /root Вставить ник Quote
anclbob Posted April 4, 2006 Author Posted April 4, 2006 Попробую догадаться:1. В / 2. В /root да в root Вставить ник Quote
Shiva Posted April 4, 2006 Posted April 4, 2006 И наверное папки traffic в root нету или доступ юзера закрыт к ней? Вставить ник Quote
anclbob Posted April 4, 2006 Author Posted April 4, 2006 так самое смешное что папка есть, и файлы создаются, и всё отлично! но предупреждение вот такое выдаётся )))... на счёт доступа проверю... но файлы же создаются значит всё ок ... фантастика короче Вставить ник Quote
Shiva Posted April 4, 2006 Posted April 4, 2006 а файлы создаются в подпапках с датой? а так исправь cd ${ndir} на cd ${ndir} 2> /dev/null Вставить ник Quote
anclbob Posted April 4, 2006 Author Posted April 4, 2006 а файлы создаются в подпапках с датой?а так исправь cd ${ndir} на cd ${ndir} 2> /dev/null так вообще ошибку выдаёт ./refresh.sh: cannot create traffic/2006-04-05/summary.rl: No such file or directory grep: traffic/2006-04-05/summary.rl: No such file or directory Вставить ник Quote
sadmitry Posted April 4, 2006 Posted April 4, 2006 Я думаю тут сценарий такой: trafd посылается сигнал - скидай статистику. Но сигналы - вещь асинхронная, те скрипт пошел дальше, а trafd еще не успел ничего отдать, файики не создались, потому их и нет. Потом-то файлики видно, но это потом, когда все отработало. Думаю, тут поможет обычный sleep. Ну подождать надо маленько. Сколько - зависит от многих причин. Тут только методом тыка, ИМХО. PS: Я когда возился с подсчетом трафа по логам сквида тоже наступил на аналогичные грабли: В скрипе было что-то типа: squid - k rotate /usr/local/billing/squid-traf.pl Так вот, пока объем логов был небольшой, сквид успевал отротейтить логи и все было ОК, но с разрастанием оных уже не успевал. Результат - ругань на отсутствие файлов логов со стороны squid-traf.pl. Потом-то логи было видно, но это потом ;-) PPS: Так что посоветую либо вставить sleep, либо пересмотреть логику работы скрипта, чтобы можно было разнести задания подальше в crontab. Вставить ник Quote
Shiva Posted April 4, 2006 Posted April 4, 2006 traffic/2006-04-05 а этот каталог есть? Вставить ник Quote
anclbob Posted April 5, 2006 Author Posted April 5, 2006 traffic/2006-04-05 а этот каталог есть? ну да, такие каталоги создаются после запуска скрипта... Вставить ник Quote
Saenara Posted April 5, 2006 Posted April 5, 2006 Предположим, что в момент запуска скрипта мы находимся в /root. Пусть сегодня 2006-04-05 ndir="traffic/${day}" # Имя новой директории, в которуюп оложим mkdir -p ${ndir} cd ${ndir} Теперь мы находимся в /root/traffic/2006-04-05. # Сохраним статистику по каждому интерфейсу /usr/local/bin/traflog -i rl1 -a -n -s > ${ndir}/summary.rl # для rl1 А теперь зададимся вопросом, есть ли в /root/traffic/2006-04-05 каталог traffic/2006-04-05, учитывая то, что мы его не создавали. Ответ, мне кажется, очевиден -- нету. Либо не делай chdir, либо задавай путь от корня. Вставить ник Quote
anclbob Posted April 5, 2006 Author Posted April 5, 2006 Предположим, что в момент запуска скрипта мы находимся в /root.Пусть сегодня 2006-04-05 ndir="traffic/${day}" # Имя новой директории, в которуюп оложим mkdir -p ${ndir} cd ${ndir} Теперь мы находимся в /root/traffic/2006-04-05. # Сохраним статистику по каждому интерфейсу /usr/local/bin/traflog -i rl1 -a -n -s > ${ndir}/summary.rl # для rl1 А теперь зададимся вопросом, есть ли в /root/traffic/2006-04-05 каталог traffic/2006-04-05, учитывая то, что мы его не создавали. Ответ, мне кажется, очевиден -- нету. Либо не делай chdir, либо задавай путь от корня. вот прикол то блин ))) как всё оказалось до банальности просто )) ... Спасибо большое ша пошаговое разъяснение проблемы, всё исправил , всё работает теперь без предупреждений Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.