Удаление "snccntx". Батник

Дополнение к известному скрипту по рестарту "СлужбаАгентаСервера1С" (САС1С)

Обычный рестарт САС1С не завершает сеансы пользователей.
Танцы с бубнами над временем перезагрузки сиквела, сервера приложения, терминальных станций и временем рестарта САС1С ни к чему не привели.
Помогло только удаление основного кэша баз, а именно папки, содержащей «snccntx».
P.S.
— Изменения между ‘rem //аИзм(‘ и ‘rem //аИзм )’, для наглядности выделил
— Для х86 нужно указывать set «directory=C:Program Files (x86)1cv8srvinfo
eg_1541»
— Сам скрипт немного отличается от оригинального, который представлен в сети с использованием ‘sleep’ + убрал записи в логфайл.
Никто их не читает)))
— описание скрипта
Останавливаем САС1С;
Ищем в указанной директории папку с частью наименования «snccntx».
если она одна — удаляем
если больше, чем одна — не трогаем
если нету — ничего не делаем
если невозможно удалить — типа пишем в лог
Запускаем САС1С

 

@echo off& setlocal
rem \—— начало скрипт остановки и запуска агента сервера 1С Предприятия—-\
set timeout=20
::net stop «1C:Enterprise 8.3 Server Agent»
SC STOP «1C:Enterprise 8.3 Server Agent (x86-64)»
timeout /t %timeout% /nobreak >nul
rem //аИзм (
set «directory=C:Program Files1cv8srvinfo
eg_1541»

set «known_part=snccntx»
rem set «log_file=MyLog.txt»
set n=0
pushd «%directory%»
for /f %%i in (‘2#k8SjZc9Dxk>nul dir/ad/b «*%known_part%*»‘) do (
 set/a n+=1
 call set $%%n%%=%%i
)
popd
rem >>»%log_file%» (
if %n% equ 0 (
 echo %date% %time% Таких папок не найдено.
)
if %n% equ 1 (
 pushd «%directory%»
 2>nul rd/q/s «%$1%»&& (
 echo %date% %time% Удалена папка «%$1%».
 )|| (
 echo %date% %time% Папка «%$1%» найдена, но удалить полностью её не удалось.
 )
 popd
)
if %n% gtr 1 (
 echo %date% %time% Таких папок найдено %n%:
 cmd/v/c «for /l %%i in (1 1 %n%) do @echo !$%%i!»
)
rem )
rem //аИзм )
SC START «1C:Enterprise 8.3 Server Agent (x86-64)»
::net start «1C:Enterprise 8.3 Server Agent»
timeout /t %timeout% /nobreak >nul
rem \—— конец скрипт остановки и запуска агента сервера 1С Предприятия—-\
endlocal& exit/b

 

Отдельное огромное, персональное спасибо форумчанину с ником ‘ComSpec’ с ‘www.cyberforum.ru’ в помощи написания кода.

5 Comments

  1. jobkostya1c8

    Нужно посмотреть. Как-то сами батник в организации писали для перезапуска службы.

    Reply ↓
  2. stavrovich

    Подскажите, почему папки не надо удалять, если их несколько?

    Reply ↓
  3. Tomy82

    (2) stavrovich, патамушта папка, содержащая «snccntx», должна быть одна, если их больше чем одна — что-то пошло не так, и не факт что после удаления она создатся автоматически

    Reply ↓
  4. retker

    Подскажите, у меня был похожий скрипт:

    net stop «1C:Enterprise 8.3 Server Agent (x86-64)»

    ping -n 10 localhost

    cd «E:svrinfo1C83srvinfo
    eg_2541»

    for /D %%i in (snccntx*) do rmdir /s /q %%i

    net start «1C:Enterprise 8.3 Server Agent (x86-64)»

    Раньше когда путь журнала регистрации был стандартный все работало. Но после переноса, путь как в скрипте, snccntx* не чистит файлы, возникают проблемы с повисшими сеансами.

    Ваш скрипт тоже не помог, подскажите, в чем может быть проблемы. У пользователя от которого запускается батник и пользователя от которого запускается служба 1С права админа есть на компьютере и полный доступ к папкам где лежит журнал регистрации тоже есть.

    Reply ↓
  5. Tomy82

    (4) retker,

    Здравия!

    а фиг знает.

    У меня на 2012 винде тоже перестал отрабатывать, проблему пока не ковырял, как наковыряю — обновлю публикацию

    Отрабатывает через ПоверШел

    stop-service ‘1C:Enterprise 8.3 Server Agent (x86-64)’

    Remove-Item «C:Program Files1cv8srvinfo
    eg_1541*» -recurse -exclude 1CV8Clst.lst,1CV8Clsto.lst

    Start-Service ‘1C:Enterprise 8.3 Server Agent (x86-64)’

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *