среда, 19 декабря 2018 г.

Скрипт завершения работы пользователей

/etc/systemd/system/ras.service 1C for Linux
Платформа 8.3 → Не могу запустить сервер RAS

sudo -u usr1cv8 /opt/1C/v8.3/x86_64/ras --daemon cluster


Внимание скрипт, на один кластер 1С !!!
$ nano terminate.sh

Вставить текст ниже:


#!/bin/bash
if ! pgrep 'ras'; then sudo su usr1cv8 -c "/opt/1C/v8.3/x86_64/ras --daemon cluster"; fi
sleep 5
_cluster=$(/opt/1C/v8.3/x86_64/rac cluster list  | grep 'cluster'| awk -F' ' '{print $3}')
_base=$(/opt/1C/v8.3/x86_64/rac infobase --cluster=$_cluster summary list | grep 'infobase '| awk '{print$3}')
_session=$(/opt/1C/v8.3/x86_64/rac session --cluster=$_cluster list | grep 'session '| awk '{print$3}')
echo 'кластер: ' $_cluster
echo 'базы: ' $_base
echo 'сессии:  ' $_session
for session in $_session
do
/opt/1C/v8.3/x86_64/rac session --cluster=$_cluster terminate --session=$session
done
_session=$(/opt/1C/v8.3/x86_64/rac session --cluster=$_cluster list | grep 'session '| awk '{print$3}')
echo 'сессии:  ' $_session

Сохранить.

$ sh terminate.sh

$ sudo nano /etc/rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

sh /home/user/terminate.sh

exit 0

Для windows :
 
Сервер администрирования кластера серверов 1C:Предприятия и deployka

Вариант с установленной службой Сервера администрирования кластера

Файл register-ras.bat:

@echo off
rem %1 - полный номер версии 1С:Предприятия
set ver=8.3.13.1690
set SrvUserName=.\USR1CV8
set SrvUserPwd="pass"
set CtrlPort=1540
set AgentName=localhost
set RASPort=1545
set SrvcName="1C:Enterprise 8.3 Remote Server"
set BinPath="\"C:\Program Files\1cv8\%ver%\bin\ras.exe\" cluster --service --port=%RASPort% %AgentName%:%CtrlPort%"
set Desctiption="1C:Enterprise 8.3 Remote Server"
sc stop %SrvcName%
sc delete %SrvcName%
sc create %SrvcName% binPath= %BinPath% start= auto obj= %SrvUserName% password= %SrvUserPwd% displayname= %Desctiption%

sc start %SrvcName%

Сохранить.


Внимание скрипт, на все кластеры 1С !!!
Файл terminate.bat:


@echo off
SET ver=8.3.13.1690
"c:\Program Files\1cv8\%ver%\bin\rac.exe" cluster list > %temp%\tmp.txt
REM type %temp%\tmp.txt
findstr "cluster" %temp%\tmp.txt > %temp%\tmp1.txt
REM type %temp%\tmp1.txt
FOR /F "tokens=2,* delims=: " %%i IN (%temp%\tmp1.txt) DO (
      REM echo %%i
      "c:\Program Files\1cv8\%ver%\bin\rac" session --cluster=%%i list > %temp%\tmp2.txt
      REM type %temp%\tmp2.txt
      findstr /C:"session " %temp%\tmp2.txt > %temp%\tmp3.txt
      FOR /F "tokens=2,* delims=: " %%j IN (%temp%\tmp3.txt) DO (
            REM echo %%j
            rac session --cluster=%%i terminate --session=%%j)
            )
REM PAUSE


Сохранить. 



2 комментария:

  1. Добрый день, заинтересовал скрипт завершения работы пользователей на Убунту-сервере, то что путь rac/ras поменялся это я понял. А где мне вводить значение для кластера и базы, и какое значение писать в сессиях? Помогите разобраться, плиз :) Нужно выгонять пользователей, чтобы делать бэкап) Спасибо!)

    ОтветитьУдалить
  2. #!/bin/bash
    if ! pgrep 'ras'; then sudo su usr1cv8 -c "/opt/1C/v8.3/x86_64/ras --daemon cluster"; fi
    sleep 5
    _cluster=$(/opt/1C/v8.3/x86_64/rac cluster list | grep 'cluster'| awk -F' ' 'NR==1{print$3}')
    _base=$(/opt/1C/v8.3/x86_64/rac infobase --cluster=$_cluster summary list | grep 'infobase '| awk '{print$3}')
    _session=$(/opt/1C/v8.3/x86_64/rac session --cluster=$_cluster list | grep 'session '| awk '{print$3}')
    echo 'кластер: ' $_cluster
    echo 'базы: ' $_base
    echo 'сессии: ' $_session
    for session in $_session
    do
    /opt/1C/v8.3/x86_64/rac session --cluster=$_cluster terminate --session=$session
    done
    _session=$(/opt/1C/v8.3/x86_64/rac session --cluster=$_cluster list | grep 'session '| awk '{print$3, $4}')
    echo 'сессии: ' $_session


    Немного поправил, теперь тока под 1-й кластер

    ОтветитьУдалить