Приведу пример скрипта для завершения сессий, взятого на официальном телеграм канале Accel-ppp. При помощи accel-cmd и grep выбираем нужные сессии, например по скорости шейпера, или части IP адреса, например 10.10.10. и потом например отправляем этим сессиям terminate if ipoeX soft или hard через accel-cmd.
Содержимое скрипта:
filetmp=/tmp/4096.txt
rm $filetmp
accel-cmd -P pass -H192.168.5.5 show sessions | grep 102400 | while read line ; do
echo $line >> $filetmp
done;
less $filetmp | while read line ; do
interf=$(echo $line | awk -F " " '{print $1}');
# echo $interf
if (( $interf > "0" ))
echo $interf
then
accel-cmd -P pass -H192.168.5.5 terminate if $interf soft && echo $interf" - Terminate" || echo "ERROR"
# exit
fi
done;
Перед каждым выполнением скрипта убедимся что только нужные сессии выбираются через grep:
accel-cmd -P pass -H192.168.5.5 show sessions | grep 102400
accel-cmd -P pass -H192.168.5.5 show sessions | grep 10.10.10.
accel-cmd -P pass -H192.168.5.5 show sessions
После выполнения скрипта убедимся что нужные сессии перешли из состояния active в finish.
Смотрите также мою статью:
Скрипт синхронизации сессий Accel-ppp и ABillS
accel-cmd show sessions ifname,ip | grep 10.38. | awk ‘{print $1;}’ | xargs -I IF accel-cmd terminate if IF