106 lines
2.6 KiB
Batchfile
106 lines
2.6 KiB
Batchfile
@echo off
|
|
rem --------------------------------------------------------------
|
|
rem -- DNS cache save/load script
|
|
rem --
|
|
rem -- Version 1.2
|
|
rem -- By Yuri Voinov (c) 2014
|
|
rem --------------------------------------------------------------
|
|
|
|
rem Variables
|
|
set prefix="C:\Program Files (x86)"
|
|
set program_path=%prefix%\Unbound
|
|
set uc=%program_path%\unbound-control.exe
|
|
set fname="unbound_cache.dmp"
|
|
|
|
rem Check Unbound installed
|
|
if exist %uc% goto start
|
|
echo Unbound control not found. Exiting...
|
|
exit 1
|
|
|
|
:start
|
|
|
|
rem arg1 - command (optional)
|
|
rem arg2 - file name (optional)
|
|
set arg1=%1
|
|
set arg2=%2
|
|
|
|
if /I "%arg1%" == "-h" goto help
|
|
|
|
if "%arg1%" == "" (
|
|
echo Loading cache from %program_path%\%fname%
|
|
dir /a %program_path%\%fname%
|
|
type %program_path%\%fname%|%uc% load_cache
|
|
goto end
|
|
)
|
|
|
|
if defined %arg2% (goto Not_Defined) else (goto Defined)
|
|
|
|
rem If file not specified; use default dump file
|
|
:Not_defined
|
|
if /I "%arg1%" == "-s" (
|
|
echo Saving cache to %program_path%\%fname%
|
|
%uc% dump_cache>%program_path%\%fname%
|
|
dir /a %program_path%\%fname%
|
|
echo ok
|
|
goto end
|
|
)
|
|
|
|
if /I "%arg1%" == "-l" (
|
|
echo Loading cache from %program_path%\%fname%
|
|
dir /a %program_path%\%fname%
|
|
type %program_path%\%fname%|%uc% load_cache
|
|
goto end
|
|
)
|
|
|
|
if /I "%arg1%" == "-r" (
|
|
echo Saving cache to %program_path%\%fname%
|
|
dir /a %program_path%\%fname%
|
|
%uc% dump_cache>%program_path%\%fname%
|
|
echo ok
|
|
echo Loading cache from %program_path%\%fname%
|
|
type %program_path%\%fname%|%uc% load_cache
|
|
goto end
|
|
)
|
|
|
|
rem If file name specified; use this filename
|
|
:Defined
|
|
if /I "%arg1%" == "-s" (
|
|
echo Saving cache to %arg2%
|
|
%uc% dump_cache>%arg2%
|
|
dir /a %arg2%
|
|
echo ok
|
|
goto end
|
|
)
|
|
|
|
if /I "%arg1%" == "-l" (
|
|
echo Loading cache from %arg2%
|
|
dir /a %arg2%
|
|
type %arg2%|%uc% load_cache
|
|
goto end
|
|
)
|
|
|
|
if /I "%arg1%" == "-r" (
|
|
echo Saving cache to %arg2%
|
|
dir /a %arg2%
|
|
%uc% dump_cache>%arg2%
|
|
echo ok
|
|
echo Loading cache from %arg2%
|
|
type %arg2%|%uc% load_cache
|
|
goto end
|
|
)
|
|
|
|
:help
|
|
echo Usage: unbound_cache.cmd [-s] or [-l] or [-r] or [-h] [filename]
|
|
echo.
|
|
echo l - Load - default mode. Warming up Unbound DNS cache from saved file. cache-ttl must be high value.
|
|
echo s - Save - save Unbound DNS cache contents to plain file with domain names.
|
|
echo r - Reload - reloadind new cache entries and refresh existing cache
|
|
echo h - this screen.
|
|
echo filename - file to save/load dumped cache. If not specified, %program_path%\%fname% will be used instead.
|
|
echo Note: Run without any arguments will be in default mode.
|
|
echo Also, unbound-control must be configured.
|
|
exit 1
|
|
|
|
:end
|
|
exit 0
|