gifts2017

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

Опубликовал Артём (Tomy82) в раздел Администрирование - Сервисные утилиты

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

Обычный рестарт САС1С не завершает сеансы пользователей.
Танцы с бубнами над временем перезагрузки сиквела, сервера приложения, терминальных станций и временем рестарта САС1С ни к чему не привели.
Помогло только удаление основного кэша баз, а именно папки, содержащей "snccntx".
P.S.
- Изменения между 'rem //аИзм(' и 'rem //аИзм )', для наглядности выделил
- Для х86 нужно указывать set "directory=C:\Program Files (x86)\1cv8\srvinfo\reg_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 Files\1cv8\srvinfo\reg_1541"
set "known_part=snccntx"
rem set "log_file=MyLog.txt"
set n=0
pushd "%directory%"
for /f %%i in ('2^>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' в помощи написания кода.

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Константин Юрин (kostyaomsk) 21.03.15 09:57
Нужно посмотреть. Как-то сами батник в организации писали для перезапуска службы.
2. Алексей Ставрович (stavrovich) 29.07.15 16:26
Подскажите, почему папки не надо удалять, если их несколько?
3. Артём (Tomy82) 04.08.15 10:45
(2) stavrovich, патамушта папка, содержащая "snccntx", должна быть одна, если их больше чем одна - что-то пошло не так, и не факт что после удаления она создатся автоматически
4. Евгений Нескажу (retker) 04.11.16 11:26
Подскажите, у меня был похожий скрипт:

net stop "1C:Enterprise 8.3 Server Agent (x86-64)"
ping -n 10 localhost
cd "E:\svrinfo1C83\srvinfo\reg_2541"
for /D %%i in (snccntx*) do rmdir /s /q %%i
net start "1C:Enterprise 8.3 Server Agent (x86-64)"

Раньше когда путь журнала регистрации был стандартный все работало. Но после переноса, путь как в скрипте, snccntx* не чистит файлы, возникают проблемы с повисшими сеансами.
Ваш скрипт тоже не помог, подскажите, в чем может быть проблемы. У пользователя от которого запускается батник и пользователя от которого запускается служба 1С права админа есть на компьютере и полный доступ к папкам где лежит журнал регистрации тоже есть.
5. Артём (Tomy82) 08.11.16 13:50
(4) retker,
Здравия!
а фиг знает.
У меня на 2012 винде тоже перестал отрабатывать, проблему пока не ковырял, как наковыряю - обновлю публикацию
Отрабатывает через ПоверШел
stop-service '1C:Enterprise 8.3 Server Agent (x86-64)'
Remove-Item "C:\Program Files\1cv8\srvinfo\reg_1541\*" -recurse -exclude 1CV8Clst.lst,1CV8Clsto.lst
Start-Service '1C:Enterprise 8.3 Server Agent (x86-64)'
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа