GoodbyeDPI icon indicating copy to clipboard operation
GoodbyeDPI copied to clipboard

Blacklist update without service restart

Open bober757 opened this issue 3 years ago • 6 comments
trafficstars

сейчас после каждого обновления russia-blacklist.txt нужно делать перезапуск службы чтобы изменения вступили в силу. есть ли возможность добавить перечитывание файла при изменении, например, его размера или даты?

bober757 avatar May 22 '22 09:05 bober757

Да, было бы неплохо. Еще можно было вообще авто обновление списка периодическое сделать, например раз в час или раз в день...

tomrus88 avatar May 25 '22 13:05 tomrus88

Да, было бы неплохо. Еще можно было вообще авто обновление списка периодическое сделать, например раз в час или раз в день...

автообновление можно сделать и самому через планировщик задач

bober757 avatar May 28 '22 11:05 bober757

CMD-файл в папку с программой

@echo off 
pushd "%~dp0"
set blacklist_url="https://antizapret.prostovpn.org/domains-export.txt"
set blacklist=%cd%\russia-blacklist.txt
set log=%temp%\blacklist_update.log
:: set log=nul
set mydate=%date:~4,2%/%date:~7,2%/%date:~10,4%
set mytime=%time: =0%
schtasks /Query /TN "GoodbyeDPI blacklist update" > nul
if ERRORLEVEL 1 schtasks /Create /TN "GoodbyeDPI blacklist update" /RU SYSTEM /TR "%~fs0" /SC HOURLY /ST %mytime:~,-3% /SD %mydate%
:download
bitsadmin /transfer blacklist %blacklist_url% "%temp%\goodbyedpi-blacklist.txt.new"
:: wget %blacklist_url% -O "%temp%\goodbyedpi-blacklist.txt.new"
for %%i in (%temp%\goodbyedpi-blacklist.txt.new) do (set /a size=%%~Zi)
if %size% == 0 (
	del /F /Q %temp%\goodbyedpi-blacklist.txt.new
	timeout 120
	goto download
)
<nul set /p strTemp=%date% %time:~0,-3% >> %log%
fc %blacklist% %temp%\goodbyedpi-blacklist.txt.new > nul
if ERRORLEVEL 1 (
	echo обновление списка блокировок >> %log%
	net stop GoodbyeDPI
	move /Y %temp%\goodbyedpi-blacklist.txt.new %blacklist%
	net start GoodbyeDPI
) else (
	echo список блокировок без изменений >> %log%
	del /F /Q %temp%\goodbyedpi-blacklist.txt.new
)
popd
exit

CMD-файл создаст задание на обновление раз в час

bober757 avatar Jul 01 '22 17:07 bober757

CMD-файл создаст задание на обновление раз в час

У меня американский формат даты и времени, время выдаётся одной цифрой в часах: echo %time:~,-3% 0:46:26 (На самом деле там пробел вместо первого нуля, его и заменяю в фиксе).

Дата выдаётся с кратким днём недели: echo %date% Sun 10/02/2022

Поэтому добавление в планировщик забирает "Sun" вместо даты, а также время нужно вида "00" (двузначный час): schtasks /Create /TN "GoodbyeDPI blacklist update" /RU SYSTEM /TR "%~fs0" /SC HOURLY /ST %time:~ ,-3% /SD %date% ERROR: Invalid argument/option - '10/02/2022'. ERROR: Invalid starttime value.

Фикс: set mydate=%date:~4,2%/%date:~7,2%/%date:~10,4% set mytime=%time: =0% :: set log=nul schtasks /Query /TN "GoodbyeDPI blacklist update" > nul if ERRORLEVEL 1 schtasks /Create /TN "GoodbyeDPI blacklist update" /RU SYSTEM /TR "%~fs0" /SC HOURLY /ST %mytime:~,-3% /SD %mydate%

Ещё добавлю, что таск с пользователем SYSTEM у меня не срабатывает почему-то, нормально работает так: if ERRORLEVEL 1 schtasks /Create /TN "GoodbyeDPI blacklist update" /RU Administrators /TR "%~fs0" /SC HOURLY /ST %mytime:~,-3% /SD %mydate%

Но в таком случае появляется окно cmd при выполнении таска, пришлось обходить это с помощью VBS. Вот тут итоговый результат: https://gist.github.com/rdavydov/14756249a767372b545dc7685d636dee

P.S. bitsadmin качал со скоростью черепахи (буквально, байты в сек), вариант с wget - работает прекрасно.

rdavydov avatar Oct 01 '22 22:10 rdavydov

Перестал обновляться russia-blacklis.txt через 0_russia_update_blacklist_file.cmd Доходит до 21-24% и висит. Приходится делать вручную: открывать https://antizapret.prostovpn.org/domains-export.txt в браузере, затем "Сохранить как ..."

Vladimir893 avatar Dec 10 '22 06:12 Vladimir893

Перестал обновляться russia-blacklis.txt через 0_russia_update_blacklist_file.cmd Доходит до 21-24% и висит. Приходится делать вручную: открывать https://antizapret.prostovpn.org/domains-export.txt в браузере, затем "Сохранить как ..."

У меня была похожая проблема, стопорилось на 4%, помог перезапуск службы "Фоновая интеллектуальная служба передачи" в винде

SagePtr avatar Dec 11 '22 18:12 SagePtr