From 8919cc321fe30d2824fe9225ad39116c40e42261 Mon Sep 17 00:00:00 2001 From: bol-van Date: Sun, 12 Dec 2021 12:58:58 +0300 Subject: [PATCH] ipset: get_reestr_hostlist exclude zapret-hosts-user.txt --- docs/readme.txt | 2 +- ipset/get_reestr_hostlist.sh | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/docs/readme.txt b/docs/readme.txt index a7e6488..d655138 100644 --- a/docs/readme.txt +++ b/docs/readme.txt @@ -702,7 +702,7 @@ ip2net фильтрует входные данные, выкидывая неп Тогда init скрипт будет запускать tpws с листом zapret-hosts-users.txt. 2) Список доменов РКН может быть получен скриптом ipset/get_reestr_hostlist.sh - кладется в ipset/zapret-hosts.txt.gz. -Этот скрипт автоматически добавляет к списку РКН домены из zapret-hosts-user.txt. +Этот скрипт автоматически добавляет к списку РКН домены из zapret-hosts-user.txt и исключает zapret-hosts-exclude.txt. init скрипт будет запускать tpws с листом zapret-hosts.txt.gz. При фильтрации по именам доменов демон должен запускаться без фильтрации по ipset. diff --git a/ipset/get_reestr_hostlist.sh b/ipset/get_reestr_hostlist.sh index 1c73751..b0c9393 100755 --- a/ipset/get_reestr_hostlist.sh +++ b/ipset/get_reestr_hostlist.sh @@ -20,12 +20,31 @@ curl -k --fail --max-time 600 --connect-timeout 5 --retry 3 --max-filesize 25165 echo reestr list download failed exit 2 } + +reestr_list() +{ + LANG=C cut -s -f2 -d';' "$ZREESTR" | LANG=C nice -n 5 sed -Ee 's/^\*\.(.+)$/\1/' -ne 's/^[a-z0-9A-Z._-]+$/&/p' | $AWK '{ print tolower($0) }' +} + +composite_list() +{ + # combine reestr and user list + if [ -f "$ZUSERLIST_EXCLUDE" ]; then + reestr_list | nice -n 5 $GREP -xvFf "$ZUSERLIST_EXCLUDE" + else + reestr_list + fi + [ -f "$ZUSERLIST" ] && $AWK '{ print tolower($0) }' <"$ZUSERLIST" +} + dlsize=$(LANG=C wc -c "$ZREESTR" | xargs | cut -f 1 -d ' ') if test $dlsize -lt 204800; then echo list file is too small. can be bad. exit 2 fi -(LANG=C cut -s -f2 -d';' "$ZREESTR" | LANG=C sed -Ee 's/^\*\.(.+)$/\1/' -ne 's/^[a-z0-9A-Z._-]+$/&/p' | $AWK '{ print tolower($0) }' ; cat "$ZUSERLIST" ) | sort -u | zz "$ZHOSTLIST" + +composite_list | sort -u | zz "$ZHOSTLIST" + rm -f "$ZREESTR" hup_zapret_daemons