Pessoal, depois de muito tempo sem derrubar usuário precisei fazer isso hoje e me bati um pouco para lembrar algumas etapas do processo, por isso, após conseguir realizar o procedimento com sucesso montei o documento anexo com o passo a passo: https://docs.google.com/document/d/1qL75EqW_UiTD1s6Eh_bEP33tEQRPE1NlME4PC7_NYSU/edit?usp=sharing Espero que seja útil para mais pessoas...
Bom dia meu caro, seguinte, eu fiz um programa que lista os usuarios conectados acessando as tabelas ocultas, as _(underline), dai eu seleciono os ID do usuario que preciso derrubar, lembrando que pode mudar o ID de um banco pra outro, dai eu salvo essa informação em uma tabela no meu banco especifico, no lado unix / linux, eu rodo um programa .p que le a tabela que eu gravei, e faz um os-command com o comando "proshut NOMEBANCO -C disconnect IDUSUARIO" faço o os-command sem nenhum parametro, então, o progress espera o comando terminar pra voltar o controle, então depois do os-comnand, eu verifico se o ID do usuario ainda está na tabela _ .... se ele não está mais, eu deleto no registro da minha tabela especifica e vou pro proximo. Assim eu consigo até derrubar varios usuarios ao mesmo tempo.
no ambiente Unix eu utilizo este script e funciona bem, desconecta o usuário em todos os bancos conectados #!/bin/bash USER="" export EVTLEVEL=none export PATH=/bancos/dlc116/bin:$PATH DLC=/bancos/dlc116;export DLC cat $DLC/version cd /d5/ems/ rm /tmp/userconectados.txt clear echo echo "INFORME O USUARIO/MAQUINA OU T(todos): " read USER echo "************************************************************************" if [ -z "$USER" ] then echo "INFORME UMA OPCAO VALIDA !" exit 0; elif [ $USER = "T" ] || [ $USER = "t" ] then echo "USUARIOS CONECTADOS NO BANCO EMS2 SIMULADO !" echo proshut /bancos01/totvs11/database-8080/emsfnd -C list UCONECT=`/bancos01/totvs11/database-8080/emsfnd -C list | wc -l` echo echo "USUARIOS CONECTADOS NO BANCO EMS2UNI SIMULADO: $UCONECT" echo "************************************************************************" elif [ $USER ] then for a in `proutil -C dbipcs |grep Yes | awk '{print$5}'`; do proshut $a -C list | grep -w $USER >> /tmp/userconectados.txt; done if test -s /tmp/userconectados.txt then cat /tmp/userconectados.txt echo "Deseja desconectar ?" echo "Pressione s/S ou Enter para sair !!!" echo "************************************************************************" read DISCONECT rm /tmp/userconectados.txt else echo echo "USUARIO NAO CONECTADO TENTE NOVAMENTE !!!" echo "************************************************************************" rm /tmp/userconectados.txt fi fi if test "$DISCONECT" = "s" -o "$DISCONECT" = "S" then for a in `proutil -C dbipcs |grep Yes | awk '{print$5}'`; do for i in `proshut $a -C list | grep -w $USER | awk '{print $1}'`; do proshut $a -C disconnect $i; done; done echo "************************************************************************" else exit fi
Show de bola senhores, na real, BD não é minha praia, ai supus que possam ter mais pessoas que não fazem isso com muita frequencia, vocês estão em outro nível, hehehe....