RN3DCX Опубликовано 21 мая, 2020 · Жалоба Настроил биллинг версии 4 по инструкции от White Crow (ссылка на инструкцию). И тут возникли вопросы: Специально ли в приведенном в качестве примера скрипте event_inc.sh отсутствую в начале круглые скобки или редактор их съел? отсутствующие скобки выделил красным: Скрытый текст #/usr/bin/selfkiller -30:TERM -50:KILL & disown -a LOG_LEVEL=ALL sendsms(){ sms="${sms//[^0-9]/}" if [ "${#sms}" -lt 11 ]; then LOG WARN "Phone number of abonent $id is too short. SMS not sent." return 1 fi } SENDER=$1; shift EVENT=$1; shift DATA=$@ for VAR in $DATA; do [[ "$VAR" = *"="* ]] && eval ${VAR%%=*}=\'${VAR#*=}\' done LOG INFO "$SENDER $EVENT $DATA" ################################################################################################## telnet_user="user2" telnet_password="YOUR_TELNET_PASSWD" RADIUS_SECRET="YOUR_RADIUS_SECRET" case "$nas_ip" in ("192.168.10.9") nas_identity="nas1" ;; ("192.168.10.10") nas_identity="nas2" ;; ("192.168.10.11") nas_identity="nas3" ;; esac ################################################################################################## case "$EVENT" in ################################################################################################## ("balance_negative") if [ "$radius_logged" = "1" -a "$nas_ip" != "0.0.0.0" ]; then /usr/local/bin/expect /var/lib/event/event1.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity fi ;; ################################################################################################## ("balance_positive") if [ "$radius_logged" = "1" -a "$nas_ip" != "0.0.0.0" ]; then /usr/local/bin/expect /var/lib/event/event3.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity $ceil_in $ceil_out fi ;; ################################################################################################## ("rad_acc_start") if [ "$nas_ip" != "0.0.0.0" ]; then if [ "$over_limit" = "0" ]; then /usr/local/bin/expect /var/lib/event/event3.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity $ceil_in $ceil_out else /usr/local/bin/expect /var/lib/event/event1.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity fi fi ;; ################################################################################################## ("rate_set") if [ "$logged" = "1" -a "$nas_ip" != "0.0.0.0" -a "$over_limit" = "0" ] ; then /usr/local/bin/expect /var/lib/event/event3.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity $ceil_in $ceil_out fi ;; ##################################################################################################(user_data_changed|user_data_changed_before) if [ "$nas_ip" != "0.0.0.0" ]; then echo "User-Name=$login, NAS-IP-Address=$nas_ip" | radclient -r 1 $nas_ip:3799 disconnect $RADIUS_SECRET /usr/local/bin/expect /var/lib/event/event2.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity fi ;; ##################################################################################################("radius_update_err") if [ "$nas_ip" != "0.0.0.0" ]; then echo "User-Name=$login, NAS-IP-Address=$nas_ip" | radclient -r 1 $nas_ip:3799 disconnect $RADIUS_SECRET /usr/local/bin/expect /var/lib/event/event2.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity fi ;; ##################################################################################################(user_disconnect|get_info_fail|rad_acc_timeout) if [ "$nas_ip" != "0.0.0.0" ]; then echo "User-Name=$login, NAS-IP-Address=$nas_ip" | radclient -r 1 $nas_ip:3799 disconnect $RADIUS_SECRET /usr/local/bin/expect /var/lib/event/event2.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity fi ;; ##################################################################################################("rad_acc_stop") if [ "$nas_ip" != "0.0.0.0" ]; then /usr/local/bin/expect /var/lib/event/event2.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity fi ;; ##################################################################################################("try_double_login") if [ "$nas_ip" != "0.0.0.0" ]; then echo "User-Name=$login, NAS-IP-Address=$nas_ip" | radclient -r 1 $nas_ip:3799 disconnect $RADIUS_SECRET /usr/local/bin/expect /var/lib/event/event2.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity fi ;; ##################################################################################################("login") #Only for IP_auth if [ "$nas_ip" != "0.0.0.0" -a "$auth_type"=1 ]; then if [ "$over_limit" = "0" ]; then /usr/local/bin/expect /var/lib/event/event3.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity $ceil_in $ceil_out else /usr/local/bin/expect /var/lib/event/event1.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity fi fi ;; ################################################################################################## ("logout") #Only for IP_auth if [ "$nas_ip" != "0.0.0.0" -a "$auth_type"=1 ]; then /usr/local/bin/expect /var/lib/event/event2.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity fi ;; ##################################################################################################(*) : ;; esac При ручном запуске этого скрипта ругается на строку: LOG INFO "$SENDER $EVENT $DATA" пишет: event_mikrotik.sh: line 21: LOG: command not found Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vlad11 Опубликовано 21 мая, 2020 · Жалоба Функция LOG отсутствует. LOG INFO "$SENDER $EVENT $DATA" Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Saab95 Опубликовано 21 мая, 2020 · Жалоба Этот биллинг с радиус авторизацией не очень хорошо работает, обычно все его используют со статической авторизацией по IP адресу. Достаточно прозевать момент переполнения дисков логами (а там да - каждый запрос на радиус сохраняется в логи), как вся работа по подключению новых абонентов остановится. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vlad11 Опубликовано 21 мая, 2020 · Жалоба Ротация логов и мониторинг придуманы для слабаков? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
RN3DCX Опубликовано 21 мая, 2020 · Жалоба Еще бы кто подсказал 2 часа назад, RN3DCX сказал: Специально ли в приведенном в качестве примера скрипте event_inc.sh отсутствую в начале круглые скобки или редактор их съел? отсутствующие скобки выделил красным: Показать содержимое #/usr/bin/selfkiller -30:TERM -50:KILL & disown -a LOG_LEVEL=ALL sendsms(){ sms="${sms//[^0-9]/}" if [ "${#sms}" -lt 11 ]; then LOG WARN "Phone number of abonent $id is too short. SMS not sent." return 1 fi } SENDER=$1; shift EVENT=$1; shift DATA=$@ for VAR in $DATA; do [[ "$VAR" = *"="* ]] && eval ${VAR%%=*}=\'${VAR#*=}\' done LOG INFO "$SENDER $EVENT $DATA" ################################################################################################## telnet_user="user2" telnet_password="YOUR_TELNET_PASSWD" RADIUS_SECRET="YOUR_RADIUS_SECRET" case "$nas_ip" in ("192.168.10.9") nas_identity="nas1" ;; ("192.168.10.10") nas_identity="nas2" ;; ("192.168.10.11") nas_identity="nas3" ;; esac ################################################################################################## case "$EVENT" in ################################################################################################## ("balance_negative") if [ "$radius_logged" = "1" -a "$nas_ip" != "0.0.0.0" ]; then /usr/local/bin/expect /var/lib/event/event1.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity fi ;; ################################################################################################## ("balance_positive") if [ "$radius_logged" = "1" -a "$nas_ip" != "0.0.0.0" ]; then /usr/local/bin/expect /var/lib/event/event3.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity $ceil_in $ceil_out fi ;; ################################################################################################## ("rad_acc_start") if [ "$nas_ip" != "0.0.0.0" ]; then if [ "$over_limit" = "0" ]; then /usr/local/bin/expect /var/lib/event/event3.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity $ceil_in $ceil_out else /usr/local/bin/expect /var/lib/event/event1.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity fi fi ;; ################################################################################################## ("rate_set") if [ "$logged" = "1" -a "$nas_ip" != "0.0.0.0" -a "$over_limit" = "0" ] ; then /usr/local/bin/expect /var/lib/event/event3.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity $ceil_in $ceil_out fi ;; ##################################################################################################(user_data_changed|user_data_changed_before) if [ "$nas_ip" != "0.0.0.0" ]; then echo "User-Name=$login, NAS-IP-Address=$nas_ip" | radclient -r 1 $nas_ip:3799 disconnect $RADIUS_SECRET /usr/local/bin/expect /var/lib/event/event2.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity fi ;; ##################################################################################################("radius_update_err") if [ "$nas_ip" != "0.0.0.0" ]; then echo "User-Name=$login, NAS-IP-Address=$nas_ip" | radclient -r 1 $nas_ip:3799 disconnect $RADIUS_SECRET /usr/local/bin/expect /var/lib/event/event2.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity fi ;; ##################################################################################################(user_disconnect|get_info_fail|rad_acc_timeout) if [ "$nas_ip" != "0.0.0.0" ]; then echo "User-Name=$login, NAS-IP-Address=$nas_ip" | radclient -r 1 $nas_ip:3799 disconnect $RADIUS_SECRET /usr/local/bin/expect /var/lib/event/event2.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity fi ;; ##################################################################################################("rad_acc_stop") if [ "$nas_ip" != "0.0.0.0" ]; then /usr/local/bin/expect /var/lib/event/event2.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity fi ;; ##################################################################################################("try_double_login") if [ "$nas_ip" != "0.0.0.0" ]; then echo "User-Name=$login, NAS-IP-Address=$nas_ip" | radclient -r 1 $nas_ip:3799 disconnect $RADIUS_SECRET /usr/local/bin/expect /var/lib/event/event2.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity fi ;; ##################################################################################################("login") #Only for IP_auth if [ "$nas_ip" != "0.0.0.0" -a "$auth_type"=1 ]; then if [ "$over_limit" = "0" ]; then /usr/local/bin/expect /var/lib/event/event3.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity $ceil_in $ceil_out else /usr/local/bin/expect /var/lib/event/event1.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity fi fi ;; ################################################################################################## ("logout") #Only for IP_auth if [ "$nas_ip" != "0.0.0.0" -a "$auth_type"=1 ]; then /usr/local/bin/expect /var/lib/event/event2.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity fi ;; ##################################################################################################(*) : ;; esac Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vop Опубликовано 21 мая, 2020 · Жалоба Какие скобки? Это же case! :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
RN3DCX Опубликовано 21 мая, 2020 · Жалоба @vop , парой явное не явно. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Saab95 Опубликовано 21 мая, 2020 · Жалоба 5 часов назад, vlad11 сказал: Ротация логов и мониторинг придуманы для слабаков? Не правильные настройки придуманы для слабаков. Сейчас 4 версия биллинга идет с ежемесячной арендой - перестанете платить или проблема с активацией - биллинг перестанет работать. А с ним перестанет работать и радиус - абоненты не выйдут в интернет. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...