Задача: Подключение к базе 1Cv7.7 должно быть всегда онлайн

Как проверять, что сессия к базе Base2020 и под AmigoServer в настоящий момент есть, если нет то запустить. Сессия работает в рамках учетной записи Administrator на srv-db02 которую нельзя закрывать иначе 1c v7 не будет работать.

Что понадобиться:

https://www.ekzorchik.ru/2017/11/notification-to-mail-from-task-scheduler/

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” )