billing:howto:rkn_mikrotik_newip

Это старая версия документа!


Роскомнадзор. Скрипт проверки изменений выгрузки для mikrotik

Вернуться на уровень выше

Скрипт проверяет отличия файлов с ip между новой и предыдущей выгрузкой, создает два файла с ip, которые нужно добавить и нужно удалить из address-list.

nano /var/www/mikbill/admin/app/etc/roskomnadzor/diff_iplist.sh
#!/bin/sh
IPLIST=ip_file.list
IPLIST_OLD=ip_file.list.old
IPLIST_ADD=rkn_iplist_add.rsc
IPLIST_DEL=rkn_iplist_del.rsc

IPLIST_TEXT=($(cat $IPLIST))
#---------------------------------------
if ( ! [ -e "$IPLIST_OLD" ])then
{
for((i=0;i<${#IPLIST_TEXT[@]};i++))do
echo "/ip firewall address-list add list="RKN_BLK_LIST" address=${IPLIST_TEXT[i]}" >>$IPLIST_ADD
done
cp $IPLIST $IPLIST_OLD
echo "/ip firewall address-list remove [/ip firewall address-list find list=RKN_BLK_LIST]" >$IPLIST_DEL
exit
}
fi
#---------------------------------------
IPLIST_OLD_TEXT=($(cat $IPLIST_OLD))
if ( ! diff -q $IPLIST $IPLIST_OLD)then
{
if ([ -e "$IPLIST_ADD" ])then
{
rm $IPLIST_ADD
}
fi
if ([ -e "$IPLIST_DEL" ])then
{
rm $IPLIST_DEL
}
fi
#---------------------------------------
for((i=0;i<${#IPLIST_TEXT[@]};i++))do
if ( ! grep -q "${IPLIST_TEXT[i]}" $IPLIST_OLD ); then
{
echo "/ip firewall address-list add list="RKN_BLK_LIST" address=${IPLIST_TEXT[i]}" >>$IPLIST_ADD
}
fi
done

for((i=0;i<${#IPLIST_OLD_TEXT[@]};i++))do
if ( ! grep -q "${IPLIST_OLD_TEXT[i]}" $IPLIST ); then
{
echo "/ip firewall address-list remove [find list=RKN_BLK_LIST address=${IPLIST_OLD_TEXT[i]}] " >>$IPLIST_DEL
}
fi
done
cp $IPLIST $IPLIST_OLD
}
fi
#END SCRIPT

Добавляем разрешение на запуск

chmod a+x /var/www/mikbill/admin/app/etc/roskomnadzor/diff_iplist.sh

Раз в период, например неделю, можно добавить полную перезаливку. Для этого в крон добавить задачу

#Clean rkn mikrotik file old
00 06 * * 1 root rm -f /var/www/mikbill/admin/app/etc/roskomnadzor/ip_file.list.old

Тогда для следующей загрузки на микротик будет создана задача удаления ip из адрес листа RKN_BLK_LIST и добавление всех ip из выгрузки.

Или просто если надо обновить весь список удалить файл ip_file.list.old

  • billing/howto/rkn_mikrotik_newip.1463762641.txt.gz
  • Последнее изменение: 8 лет назад
  • vilko