56 lines
1.7 KiB
Batchfile
56 lines
1.7 KiB
Batchfile
@echo off
|
|
|
|
set check_host=%1
|
|
set check_hostname=%2
|
|
|
|
set file_path=.\log
|
|
set filename=%file_path%/%check_hostname%.log
|
|
|
|
REM set the max filesize (512kb)
|
|
set maxbytesize=512000
|
|
|
|
:loop
|
|
|
|
REM get date time
|
|
set ldt=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2% %TIME:~0,2%:%TIME:~3,2%:%TIME:~6,2%
|
|
|
|
REM check filesize, if over maxbytesize run rotate function
|
|
if exist %filename% (
|
|
for %%A in (%filename%) do set size=%%~zA
|
|
if %size% gtr %maxbytesize% call:rotate
|
|
)
|
|
|
|
REM 1 ping with one sec timeout
|
|
ping -w 1 -n 1 %check_host% | find "TTL=" >nul
|
|
if errorlevel 1 (
|
|
REM ping failed - log into file
|
|
echo %ldt% - ping failed %check_hostname% - %check_host%
|
|
echo %ldt% - ping failed %check_hostname% - %check_host% >>%filename%
|
|
) else (
|
|
REM ping succeed
|
|
echo %ldt% - ping %check_hostname% - %check_host%
|
|
)
|
|
REM wait 1 sec for next ping
|
|
@timeout /t 1 /nobreak >nul
|
|
|
|
goto loop
|
|
|
|
REM rotate logs
|
|
REM move logs if they exist
|
|
:rotate
|
|
REM move file if exist
|
|
if exist %file_path%\old_logs\%check_hostname%.log.4 (
|
|
move %file_path%\old_logs\%check_hostname%.log.4 %file_path%\old_logs\%check_hostname%.log.5
|
|
)
|
|
if exist %file_path%\old_logs\%check_hostname%.log.3 (
|
|
move %file_path%\old_logs\%check_hostname%.log.3 %file_path%\old_logs\%check_hostname%.log.4
|
|
)
|
|
if exist %file_path%\old_logs\%check_hostname%.log.2 (
|
|
move %file_path%\old_logs\%check_hostname%.log.2 %file_path%\old_logs\%check_hostname%.log.3
|
|
)
|
|
if exist %file_path%\old_logs\%check_hostname%.log.1 (
|
|
move %file_path%\old_logs\%check_hostname%.log.1 %file_path%\old_logs\%check_hostname%.log.2
|
|
)
|
|
move %file_path%\%check_hostname%.log %file_path%\old_logs\%check_hostname%.log.1
|
|
EXIT /B 0
|