Обнуление данных в 11.00
Обнуление данных в 11.00
Привет. Заметил такую особенность системы как сбрасывать всех пользователей из списка в 11.00 каждый день. В биллинге они не светятся, но к системе подключены и пользуются, поэтому реально определить сколько пользователей подключено к сети после этого определить сложно. Как мне перенести это время в настройках на 2 часа ночи?
- Dmitry
- Администратор
- Сообщения: 1073
- Зарегистрирован: 25 май 2011, 09:14
- Откуда: г. Запорожье, Украина
- Контактная информация:
Re: Обнуление данных в 11.00
В файле системного расписания заданий планировщика cron нужно отредактировать строку с соответствующим заданием. Для этого введите команду
в открывшемся файле найдите строку (с учетом указанного вами времени 11.00):
(вместо "ваш_пароль" будет указан пароль пользователя root для сервера баз данных MySQL, используемый в вашей системе)
Отредактируйте строку так, чтобы шаблон времени запуска стал таким
0 2 * * *
(остальной текст в строке не меняйте).
Подробнее - есть в Инструкции и про сам планировщик cron (раздел "Скрипты и cron") и про это задание (раздел "Скрипт удаления зависших сессий из базы RADIUS")
Код: Выделить всё
sudo mcedit /etc/crontab
Код: Выделить всё
0 11 * * * root mysql -uroot –pваш_пароль < /root/clear.sql
Отредактируйте строку так, чтобы шаблон времени запуска стал таким
0 2 * * *
(остальной текст в строке не меняйте).
Подробнее - есть в Инструкции и про сам планировщик cron (раздел "Скрипты и cron") и про это задание (раздел "Скрипт удаления зависших сессий из базы RADIUS")
- Dmitry
- Администратор
- Сообщения: 1073
- Зарегистрирован: 25 май 2011, 09:14
- Откуда: г. Запорожье, Украина
- Контактная информация:
Re: Обнуление данных в 11.00
Написал новый скрипт проверки на "зависшие" сессии с абсолютно иным алгоритмом определения того, что сессия действительно зависшая.
Нужно протестировать, и потом отписаться
Сам скрипт пристегнут в zip-е к этому сообщению.
Что нужно сделать.
1. Распаковать из архива файл clear_stale.pl
2. Разместить скрипт в папке /usr/lib/cgi-bin/. Заодно проверить, что в данной папке присутствует файл conf.txt.
3. В расписание заданий планировщика cron (файл /etc/crontab) добавить новое задание
4. Также, на время теста желательно отключить выполнение той команды, которая ранее убивала открытые сессии. Команда выглядела следующим образом:
(цифры в строке будут соответствовать вашей настройке времени выполнения данного задания, а вместо "ваш_пароль" будет указан ваш реальный пароль пользователя root для сервера баз данных MySQL)
Чтобы не удалять эту команду, а всего лишь прекратить ее выполнение, в начале этой строки нужно вписать "диез" (символ #).
Данный скрипт не удаляет реальные сессии, поэтому, те клиенты, у которых сеанс реально продолжается, не должны будут "убиваться" (пропадать из списка клиентов, подключенных к хотспоту). Важно при проверке убедиться в том, что ИМЕННО зависшие сессии ДЕЙСТВИТЕЛЬНО убиваются.
Если возникнут вопросы, пишите в личку или на мыло.
(Архив со скриптом из этого сообщения удален - в скрипте была ошибка. Исправленный скрипт пристегнут к одному из последующих сообщений)
Нужно протестировать, и потом отписаться
Сам скрипт пристегнут в zip-е к этому сообщению.
Что нужно сделать.
1. Распаковать из архива файл clear_stale.pl
2. Разместить скрипт в папке /usr/lib/cgi-bin/. Заодно проверить, что в данной папке присутствует файл conf.txt.
3. В расписание заданий планировщика cron (файл /etc/crontab) добавить новое задание
Код: Выделить всё
*/5 * * * * root /usr/bin/perl /usr/lib/cgi-bin/clear_stale.pl
Код: Выделить всё
2 * * * * root mysql -uroot –pваш_пароль < /root/clear.sql
Чтобы не удалять эту команду, а всего лишь прекратить ее выполнение, в начале этой строки нужно вписать "диез" (символ #).
Данный скрипт не удаляет реальные сессии, поэтому, те клиенты, у которых сеанс реально продолжается, не должны будут "убиваться" (пропадать из списка клиентов, подключенных к хотспоту). Важно при проверке убедиться в том, что ИМЕННО зависшие сессии ДЕЙСТВИТЕЛЬНО убиваются.
Если возникнут вопросы, пишите в личку или на мыло.
(Архив со скриптом из этого сообщения удален - в скрипте была ошибка. Исправленный скрипт пристегнут к одному из последующих сообщений)
-
- Сообщения: 78
- Зарегистрирован: 03 дек 2011, 00:25
- Откуда: Харьковская область
- Контактная информация:
Re: Обнуление данных в 11.00
Пару дней назад запустил этот скрипт, без особого внимания, как по мне, так ничего не изменилось.
Так-же недавно, установил webmin, действительно как для меня непрофессионального юзера хорошая вещь.
Стал просматривать всевозможный лог-файлы и отчёты, вспомнил, что пытался на сервере сделать web страничку с формой обратной связи, чтобы введённое отсылало мне на почту, но неработала функция sendmail, как оказалось, что не был установлен сам sendmail, короче всёравно ничего не получилось, долго разбираться не стал, забросил и подключил с сайта форму.
Так вот недавно просматривал чтоо там с почтой, на сервере, оказывается она работает как внутренняя почта и меня заинтересовал почтовый ящик для root и к моему удивлению в нём лежит огромная куча писем:
http://img841.imageshack.us/img841/3127/postab.jpg
Особенно поразило их количество, более 2000 писем!
И во всех писмах содержание такое:
http://img688.imageshack.us/img688/6850/messageqr.jpg
Или вот текстовый вариант:
Что это может значить?
Я так понял, что скрипт у меня не работает, правильно?
Так-же недавно, установил webmin, действительно как для меня непрофессионального юзера хорошая вещь.
Стал просматривать всевозможный лог-файлы и отчёты, вспомнил, что пытался на сервере сделать web страничку с формой обратной связи, чтобы введённое отсылало мне на почту, но неработала функция sendmail, как оказалось, что не был установлен сам sendmail, короче всёравно ничего не получилось, долго разбираться не стал, забросил и подключил с сайта форму.
Так вот недавно просматривал чтоо там с почтой, на сервере, оказывается она работает как внутренняя почта и меня заинтересовал почтовый ящик для root и к моему удивлению в нём лежит огромная куча писем:
http://img841.imageshack.us/img841/3127/postab.jpg
Особенно поразило их количество, более 2000 писем!
И во всех писмах содержание такое:
http://img688.imageshack.us/img688/6850/messageqr.jpg
Или вот текстовый вариант:
Код: Выделить всё
Mail headers View all headers | View raw message
From root@server-inet (Cron Daemon)
To root@server-inet
Date 08/03/2012 23:51
Subject Cron <root@server-inet> /usr/bin/perl /usr/lib/cgi-bin/clear_stale.pl
Message contents
DBI connect(':','',...) failed: Access denied for user 'root'@'localhost' (using
password: NO) at /usr/lib/cgi-bin/clear_stale.pl line 28
1 at /usr/lib/cgi-bin/clear_stale.pl line 28.
ERROR!!! Could not connect to DB on host!
Я так понял, что скрипт у меня не работает, правильно?
- Dmitry
- Администратор
- Сообщения: 1073
- Зарегистрирован: 25 май 2011, 09:14
- Откуда: г. Запорожье, Украина
- Контактная информация:
Re: Обнуление данных в 11.00
Вот поэтому я и написал "проверить".
Просмотр скрипта показал, что в нем был указан путь к файлам конфигурации для моего сервера на мандриве (он отличается от пути к файлам для случая убунты). Сейчас эта ошибка исправлена, к этому сообщению пристегнут архив с подправленным скриптом.
Также, напоминаю, что нужно убедиться, что в папке /usr/lib/cgi-bin, в которую должен быть распакован скрипт, должен присутствовать файл conf.txt, а в нем - параметры для подключения к базе. Типа таких:
Потому как скрипт эти параметры (логин пароль и т.д.) берет именно из этого файла.
Ну и напоследок, те 2000 письма про ошибки, поступившие на почту рута можно быстрее всего грохнуть оодной командой:
(команда просто бездумно обнулит файл почты рута...
(Обновленная версия скрипта пристегнута к одному из сообщений ниже)
Просмотр скрипта показал, что в нем был указан путь к файлам конфигурации для моего сервера на мандриве (он отличается от пути к файлам для случая убунты). Сейчас эта ошибка исправлена, к этому сообщению пристегнут архив с подправленным скриптом.
Также, напоминаю, что нужно убедиться, что в папке /usr/lib/cgi-bin, в которую должен быть распакован скрипт, должен присутствовать файл conf.txt, а в нем - параметры для подключения к базе. Типа таких:
Код: Выделить всё
serv = localhost
base = easyhotspot
dbuser = easyhotspot
dbpass = easyhotspot
radcheck_table = radcheck
radacct_table = radacct
usr_group = usergroup
Ну и напоследок, те 2000 письма про ошибки, поступившие на почту рута можно быстрее всего грохнуть оодной командой:
Код: Выделить всё
sudo > /var/mail/root
(Обновленная версия скрипта пристегнута к одному из сообщений ниже)
-
- Сообщения: 78
- Зарегистрирован: 03 дек 2011, 00:25
- Откуда: Харьковская область
- Контактная информация:
Re: Обнуление данных в 11.00
Здравствуйте Дмитрий.
Спасибо, я обновил скрипт и снова пришла почта от crona:
Ошибка уже в другом месте...
Я проверил, файл conf.txt есть и содержимое его тоже правильное.
Вобще хорошее дело sendmail, никогда не думал, что система может быть настолько информативна!
Спасибо, я обновил скрипт и снова пришла почта от crona:
Код: Выделить всё
From root@server-inet (Cron Daemon)
To root@server-inet
Date 09/03/2012 13:11
Subject Cron <root@server-inet> /usr/bin/perl /usr/lib/cgi-bin/clear_stale.pl
Message contents
DBI connect(':','',...) failed: Access denied for user 'root'@'localhost' (using
password: NO) at /usr/lib/cgi-bin/clear_stale.pl line 31
1 at /usr/lib/cgi-bin/clear_stale.pl line 31.
ERROR!!! Could not connect to DB on host!
Я проверил, файл conf.txt есть и содержимое его тоже правильное.
Вобще хорошее дело sendmail, никогда не думал, что система может быть настолько информативна!
- Dmitry
- Администратор
- Сообщения: 1073
- Зарегистрирован: 25 май 2011, 09:14
- Откуда: г. Запорожье, Украина
- Контактная информация:
Re: Обнуление данных в 11.00
в новой редакции скрипта файл начинается так:
посмотрите, так ли у вас?
потому как ваше сообщение об ошибке гласит что скрипт не смог подключиться к базе, что и не удивительно, потому как попытка происходит с параметрами
логин root
пароль - нет пароля
Такое м.б. вызвано лишь считыванием неверных значений параметров подключения к базе, которые указаны как раз в файле conf.txt. Также, может быть в случае, если в вашем файле conf.txt указаны не те значения, которые программа использует для связи с базой (если вы их меняли при установке).
Код: Выделить всё
#!/usr/bin/perl
$pw_d=`pwd`;
chomp $pw_d;
$lvar_file="$pw_d/conf.txt";
open (LVAR, "$lvar_file");
потому как ваше сообщение об ошибке гласит что скрипт не смог подключиться к базе, что и не удивительно, потому как попытка происходит с параметрами
логин root
пароль - нет пароля
Такое м.б. вызвано лишь считыванием неверных значений параметров подключения к базе, которые указаны как раз в файле conf.txt. Также, может быть в случае, если в вашем файле conf.txt указаны не те значения, которые программа использует для связи с базой (если вы их меняли при установке).
-
- Сообщения: 78
- Зарегистрирован: 03 дек 2011, 00:25
- Откуда: Харьковская область
- Контактная информация:
Re: Обнуление данных в 11.00
Всё как-то странно получается остальные скрипты работают а этот нет. И в базу данных, например через phpmyadmin я могу зайти как от root так и от easyhotspot, всё нормально. В папке cgi-bin лежат скрипты и у них владелец www-data а у этого скрипта владелец root, может сменить владельца на www-data?
- Dmitry
- Администратор
- Сообщения: 1073
- Зарегистрирован: 25 май 2011, 09:14
- Откуда: г. Запорожье, Украина
- Контактная информация:
Re: Обнуление данных в 11.00
Таки нашел я в чем проблема была. Все в тех же путях. Не учел я, что крон запускает скрипт совсем из другого окружения, как следствие, он все-таки не добирается до истинного файла conf.txt. Еще раз исправил скрипт. Пристегиваю к данному посту исправленную версию.
Как увидеть результат работы скрипта? Он пишет свои сообщения в файл лога авторизации клиентов (тот, который можно просматривать в меню кассира, которое показывает список подключенных клиентов). Но пишет туда скрипт сообщение только в том случае, если он удалил одну (и/или более) зависшую сессию. Во всех остальных случаях никаких записей не выполняется (чтобы не засирать лог пустыми сообщениями).
Как увидеть результат работы скрипта? Он пишет свои сообщения в файл лога авторизации клиентов (тот, который можно просматривать в меню кассира, которое показывает список подключенных клиентов). Но пишет туда скрипт сообщение только в том случае, если он удалил одну (и/или более) зависшую сессию. Во всех остальных случаях никаких записей не выполняется (чтобы не засирать лог пустыми сообщениями).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Сообщения: 78
- Зарегистрирован: 03 дек 2011, 00:25
- Откуда: Харьковская область
- Контактная информация:
Re: Обнуление данных в 11.00
Спасибо Вам Дмитрий, всё получилось т на убунте!
Да, всё вроде успокоилось, cron перестал слать на почту рута ошибки.
Сейчас регулярно просматриваю список подлюченных клиентов, пока не видел, чтобы были сообщения об удалении зависших сессий.
Как можно посмотреть весь журнал на предмет удаления зависших сессий, чтобы убедится, что скрипт работает?
Да, всё вроде успокоилось, cron перестал слать на почту рута ошибки.
Сейчас регулярно просматриваю список подлюченных клиентов, пока не видел, чтобы были сообщения об удалении зависших сессий.
Как можно посмотреть весь журнал на предмет удаления зависших сессий, чтобы убедится, что скрипт работает?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость