Это старая версия документа!
Роскомнадзор. Скрипт проверки изменений выгрузки для 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