script

1. script

Gustavo Hendrigo Marcon
hendrigo

(usa Suse)

Enviado em 27/08/2010 - 11:13h

Criei um script para fazer a conexão por chave entre dois servidores, gostaria de saber se alguém tem idéia de como fazer isso de modo que eu passe somente o ip do servidor e a senha para ele fazer isso automaticamente, sem que fiquer pedindo a frase, senha e etc, segue script:

#!/bin/bash
# Gustavo Hendrigo Marcon
# ARL208004

#Variáveis
HOME=$(echo ~)
APACHEUSER=$(ps -aux | grep apache|awk -F" " '{print $1}' | tail -1)
USERNOW=$(id -un)

# Verifica os parâmetros passados
if [ $# -ne 1 ]
then
echo
echo "Type: $0 and ip of the proxy server!"
echo "Ex: $0 192.168.56.2"
exit;
fi

IP=$1

# Valida o ip
# Verifica caracteres inválidos no IP
VALIDA=`echo ${IP} | sed "s/[0-9\.]//g"`;
if [ "${VALIDA}" != "" ];
then
echo "Characters invalids for an ip";
exit;
fi

#Recebe os dados se for um ip válido
ipvalido=$(echo $IP | egrep '^(([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$')

if [ "$ipvalido" != "" ];
then

ssh-keygen

#ssh
echo "TYPE PASSWORD OF ROOT OF THE $1"
ssh root@$1 "mkdir -p /root/.ssh"
echo "RETYPE PASSWORD"
cat $HOME/.ssh/id_rsa.pub|ssh root@$1 'cat >> /root/.ssh/authorized_keys'
echo "\$proxy=\"$1\";" >> ../conf/admin.php
echo "?>" >> ../conf/admin.php
else
echo "$ipvalido invalid";

fi


  


2. Re: script

Carlos A. Parisotto
carlosparisotto

(usa Red Hat)

Enviado em 27/08/2010 - 14:49h

Existe uma ferramenta para integrar com shell, que é o expect, ele trabalha com requisições e respostas, por exemplo você define qual vai ser a senha que ele vai digitar dentro do arquivo e quando solicitado vai colocar a senha automaticamente. Tente procurar por essa ferramenta na internet, qualquer coisa estarei postando em alguns dias um pequeno manual mostrando sobre essa linguagem.


3. expect

Gustavo Hendrigo Marcon
hendrigo

(usa Suse)

Enviado em 27/08/2010 - 15:14h

Valeu pela resposta, mas eu já testei o expect mas ele tb não me atendeu tb! no caso da senha funciona mas no caso de passar caracter em branco no caso da frase não funcionou, e eu tenho ou outro problema tb com o expect, eu necessito executar este script via código web, como por exemplo a função shell_exec() do php, e no caso do expect não nada mesmo, eu acho q ele deve pegar a saída no terminal, e no caso executando por código, ele não funciona nem com um exemplo q já estava funcionando executando pelo bash.
t+






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts