07 maio 2010 ~ 4 Comentários

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)

- Fiz o download do Putty em http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

- 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.

- 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".




- Pegue o executável do Putty e salvei no diretório C:\Windows\System32


FASE 2 (Criar script no Windows)

- 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.


- Salvei o arquivo com o nome "Script.bat" em C:\Windows\System32

- Dentro do arquivo C:\Windows\System32\Script_Server.txt está o seguinte comando:

/home/hbuster/public_html/script.sh


- 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

4 Respostas para "Executando comandos via SSH no Linux pelo Putty no Windows"

  1. gravatar
    Japa 2 de junho de 2010 às 12:19 Permalink

    brother, sou teu fã =)

  2. gravatar
    James 26 de abril de 2011 às 17:07 Permalink

    esse parametro -m era o que faltava no meu, vlw, mas um fã!

  3. gravatar
    Humberto 24 de maio de 2017 às 10:58 Permalink

    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.

  4. gravatar
    Anônimo 26 de junho de 2017 às 09:27 Permalink

    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á.

Deixe seu Comentário