Задача: Подключение к базе 1Cv7.7 должно быть всегда онлайн
Как проверять, что сессия к базе Base2020 и под AmigoServer в настоящий момент есть, если нет то запустить. Сессия работает в рамках учетной записи Administrator на srv-db02 которую нельзя закрывать иначе 1c v7 не будет работать.
Что понадобиться:
c:\scripts>mailsend.exe -to aollo@amigo.ru -from alerter@amigo.ru -port 25 -smtp
mail -sub test -v -user alerter@amigo.ru -M «test»
Мой быдло скрипт который я запилил в планировщик на сервере, он каждые 10 минут проверяет наличие 1Cv7.LCK & 1cv7s.exe если их нет то завершает и удаляет, а после снова запускается 1С’ку:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | @echo offREM Version 1.0REM Version 2.0Add taskkill /F /IM “1cv7s.exe” /FI “Username eq Administrator”REM setlocal if exist “d:\DB\Base2020\UserDir\AmigoService\1Cv7.LCK” (goto 1) else (goto 2) :1 tasklist /fi “IMAGENAME eq 1cv7s.exe” 2>NUL | find /I /N “1cv7s.exe”>NUL if “%ERRORLEVEL%”==”0” ( echo “Session AmigoService Work” rem c:\scripts\mailsend.exe -to aollo@amigo.ru -from alerter@amigo.ru -port 25 -smtp mail -sub “Session AmigoService Work on srv-db02:%date%_%time%” -M “1Cv7 now running iz pod Login:AmigoService” exit ) else if “%ERRORLEVEL%”==”1” (goto 2) :2 echo “Session AmigoService no Work” rem taskkill /F /IM “1cv7s.exe” taskkill /F /IM “1cv7s.exe” /FI “Username eq Administrator” del /F /S “d:\DB\Base2020\UserDir\AmigoService\1Cv7.LCK” start “1C” “%ProgramFiles(x86)%\1Cv77\bin\1cv7s.exe” enterprise /dD:\DB\Base2020\ /NAmigoService /PArr9129 goto 3 :3tasklist /fi “IMAGENAME eq 1cv7s.exe” 2>NUL | find /I /N “1cv7s.exe”>NULif “%ERRORLEVEL%”==”0” ( :NOTexistif not exist “d:\DB\Base2020\UserDir\AmigoService\1Cv7.LCK” goto NOTexist if exist “d:\DB\Base2020\UserDir\AmigoService\1Cv7.LCK” (goto send) :send c:\scripts\mailsend.exe -to aollo@amigo.ru -from alerter@amigo.ru -port 25 -smtp mail -sub “Session no Work AmigoService on srv-db02: %date%_%time%” -M “Running %date%_%time%” echo “Program is running”goto Exit) :Exitexit |
Пока работает, если будут какие-либо замечания я его расширю.
Версия 3.0
Задача: а еще можно проверить наличие файла lck в папке ADM — если он есть — значит я работаю и запускать амигосервис не нужно
123456789101112131415161718192021222324252627282930313233 | @echo off set do_process=1tasklist /FI “IMAGENAME eq 1cv7s.exe” /FI “Username eq Administrator” 2>NUL | find /I /N “1cv7s.exe”>NUL if “%ERRORLEVEL%”==”0” ( echo “Process 1cv7s for Administrator Working” echo %errorlevel% ) else if “%ERRORLEVEL%”==”1” ( echo “Session Administrator no Work” echo %errorlevel% ) rem echo %do_process% if “%do_process%”==”%errorlevel%” ( echo “1C no run” ) else ( echo “1C run” if exist “d:\DB\Base2020\UserDir\Adm\1Cv7.LCK” (goto AAA) :AAA echo “WOrking Adm” exit if not exist “d:\DB\Base2020\UserDir\Adm\1Cv7.LCK” (goto BBB) :BBB echo “Adm no working & Running AmigoService del /F /S “d:\DB\Base2020\UserDir\AmigoService\1Cv7.LCK” start “1C” “%ProgramFiles(x86)%\1Cv77\bin\1cv7s.exe” enterprise /dD:\DB\Base2020\ /NAmigoService /PArr9129 c:\scripts\mailsend.exe -to aollo@amigo.ru -from alerter@amigo.ru -port 25 -smtp mail -sub “Session AmigoService Work on srv-db02:%date%_%time%” -M “1Cv7 now running iz pod Login:AmigoService” ) |