Radcheck Скрипт проверки работы радиуса
https://wiki.mikbill.ru/billing/radiusd_check
Отличие: есть проверка сокета lsof, в случае если stop не сработал
Также есть более сложный вариант, с большими проверками.
Проверяет hostname, если не резолвит IP пишет в лог подсказку дописать хост, а не перезапускает радиус Проверяет MySQL, если не запущен пытается запустить, если не выходит сообщает в лог, а не начинает перезапускать радиус Ищет radtest, тут должен найти везде где я знаю, но все же если не находит сообщает в лог, а не перезапускает радиус Также сам смотрит radiusd или freeradius на сервереhttps://github.com/mikbill/design/tree/master/RadiusCheck
Отличие: есть проверка сокета lsof, в случае если stop не сработал
Также есть более сложный вариант, с большими проверками.
Проверяет hostname, если не резолвит IP пишет в лог подсказку дописать хост, а не перезапускает радиус Проверяет MySQL, если не запущен пытается запустить, если не выходит сообщает в лог, а не начинает перезапускать радиус Ищет radtest, тут должен найти везде где я знаю, но все же если не находит сообщает в лог, а не перезапускает радиус Также сам смотрит radiusd или freeradius на сервереhttps://github.com/mikbill/design/tree/master/RadiusCheck
- cd /var/www/mikbill/admin/sys/scripts
- nano radiusd_check.sh
- yum install lsof
#!/bin/bash
STATS="/var/log/radius_test.log"
RADTEST="/usr/bin/radtest"
FREERAD_SRV_IP="127.0.0.1"
FREERAD_SECRET="testing123"
${RADTEST} dsjkdjskdrewrwe tefdfsfsdfsdfsdf3st $FREERAD_SRV_IP 121123 $FREERAD_SECRET > $STATS
TEST=`tail ${STATS}| /usr/bin/awk "/$1/ { result=\\$3 } END { print result ? result : 0 }"`
if [ "$TEST" == "packet" ];
then
# echo "radiusd OK "
exit
else
# echo "radiusd stoped, restarting"
/etc/init.d/radiusd stop
kill -KILL `lsof -t -i:1812`
sleep 1
cd /var/www/mikbill/admin
/usr/bin/php index.php clear_online
/etc/init.d/radiusd start
fi
- chmod a+x radiusd_check.sh
Для Debian измените скрипт запуска-остановки freeradius на - /etc/init.d/freeradius.
- nano /etc/crontab
#Check radiusИщем radtest
*/1 * * * * root /var/www/mikbill/admin/sys/scripts/radiusd_check.sh > /dev/null 2>&1
- which radtest (не всегда находит, поэтому идем другим путем)
- find / -name "radtest"
Ошибка
[root@billing sysconfig]# radtest testing radius 172.16.0.2 10 testing123
radclient:: Failed to find IP address for billing
radclient: Nothing to send.
Решение в /etc/hosts прописать billing на 127.0.0.1
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 billing
или править /etc/sysconfig/network
Комментарии
Отправить комментарий