Executando comandos via SSH no Linux pelo Putty no Windows
Durante esta semana me deparei com a seguinte situação ao visitar um cliente.
A aplicação web dele implementada em um servidor linux, exige que de tempos em tempos: Tenha o seu cache zerado, a manipulação de dados no Banco seja modificada, as pastas temporárias sejam deletadas, os dados de registro sejam copiados, e um email com o que foi feito seja enviado.
Seguindo as orientações dele, criei um shell script e coloquei no crontab para ser executado durante a madrugada. Pronto trabalho encerrado. \0> !!!
Entretanto o direto responsável por analisar os relatórios da aplicação não quer que ele seja executado periodicamente e sim quando ele pré-determinar.
Beleza? Seria muito tranquilo se ele soubesse alguma coisa de linux, mas ele não entende nada já que a aplicação foi desenvolvida por outra empresa e ele só gerencia.
Então pensei o seguinte: Vou ensinar ele a usar o putty, criar um usuário com privilégios restritos para executar o script e criar um passo-a-passo de como ele tem que fazer dentro do linux.
Só que pensei mais um pouco e chegue a seguinte conclusão: isso não vai dar certo, é muita coisa para um cara que não entende nada e que não quer ter trabalho. Ele quer só um botão para clicar e executar o script.
Daí pensei, será que o putty faz isso.
E faz.(com um pouco de jeitinho como veremos a seguir)
Então segue ai o que eu fiz no notebook do cliente para ele executar o backup. (Este exemplo tem caracter ilustrativo)
FASE 1 (PUTTY)
1º - Fiz o download do Putty em http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
2º - Para que ele possa executar o script de qualquer lugar que ele estiver, no servidor linux dele instalei o "ddclient" e associei a um dns dinâmico no dyndns.org. Exemplo: hbuster.homelinux.org.
OBS: Criar conta no dyndns é de graça e você pode associar até 5 dns diferentes.
3º - Abri o Putty e configurei uma sessão para acesso remoto da seguinte forma: "client@hbuster.homelinuxorg porta 6666" e Salvei esta sessão com o nome "hbuster".
4º - Pegue o executável do Putty e salvei no diretório C:\Windows\System32
FASE 2 (Criar script no Windows)
1º - Abri o notepad e adicionei a seguinte linha:
start putty -m C:\Windows\System32\Script_Server.txt -load "hbuster" -pw senha |
Explicando:
start: chama o programa que será executado;
putty: programa que será executado;
-m: informa qual o caminho do arquivo que contem o comando linux;
-load: informa qual a sessão que será usada para conexão;
-pw: indica que será informada a senha;
senha: senha do usuário que está acessando o sistema.
2º - Salvei o arquivo com o nome "Script.bat" em C:\Windows\System32
3º - Dentro do arquivo C:\Windows\System32\Script_Server.txt está o seguinte comando:
/home/hbuster/public_html/script.sh |
4º - Criei um atalho de C:\Windows\System32\Script.bat na área de trabalho do cliente com o nome "Flux Control Server" e alterei o icone para um icone mais amigável.
Sendo assim, todas as vezes que o cliente deseja executar o scipt no servidor, basta ele dar um duplo clik no atalho. :) !!!
Victor Santos
brother, sou teu fã =)
esse parametro -m era o que faltava no meu, vlw, mas um fã!
Bom dia,
Estou com um problema e precisaria da ajuda de vocês para resolver.
Tenho um equipamento (Maestro - Gerador de caracter) que conta com dois computadores dentro dele. Sendo um de controle de interface: windows e outro linux (Red hat Release 8) o gerador em si.
Entretanto o linux apresenta problemas com o relógio e temos que acertar a hora todos os dias via putty.
Para tanto criei uma sessão no putty de acesso, e consegui criar um .bat para iniciar essa sessão automaticamente ("C:\ProgramFiles(x86)\Putty\putty.exe" -load "OradLinux" -l root).
Entretanto queria passar o comando de atualizar a hora nessa janela aberta do putty. Hoje fazemos manualmente às 11 hrs com o comando (date -s "11:00:00").
Por fim, resumindo. Tenho um bat que abre uma sessão e quero passar o comando de atualizar a hora para essa janela.
Bom dia, estou com um problema e gostaria que alguém pudesse me auxiliar, se possivel. Fiz uma conexão ssh entre meu pc(que tem windows) e um Intel Galileo(utilizando o putty), com o intuito de acender led de acordo com meu comando executado no mqtt, porem quando fecho o putty eu perco a conexão. Foi me recomendado usar um tal de "monit" mas não consigo digitar nada no putty que interfira diretamente nisso. Como faço para não perder essa conexão? Agradeço desde já.