Trabalho de socket shell script

1. Trabalho de socket shell script

kassio Sebastião
kassio123456

(usa Lubuntu)

Enviado em 02/03/2018 - 23:26h

Preciso de ajuda para fazer esse trabalho a baixo:

Criar um ambiente com 4 máquinas virtuais, cada uma com apenas uma interface de rede (eth0) e 100 Mb de memória cada. Uma máquina será o servidor e as outras 3 máquinas serão as clientes. As configurações dos IPs de cada máquina, está listado abaixo.
NOME IP
servidor 192.168.0.1
pc1 192.168.0.2
pc2 192.168.0.3
pc3 192.168.0.4

Na máquina servidor, será desenvolvido um software chamado servidor.sh .Nele, será criado um script em shell para fazer a modificação do IP de uma ou mais máquinas, através de um MENU. Exemplo abaixo.

(servidor)
1 - mudar endereço ip de uma maquina
2 -mudar o endereço ip de todas as maquinas
3 - sair
opção: 3
root@servidor:#

Para cada opção, será utilizado o seguinte critério:As informações serão escritas com o fundo preto e texto em amarelo. Os erros serão informados com uma tarja vermelha e fundo azul com branco.

EXEMPLO:
(servidor)
$informe o ip da maquina a ser modificado: 192.168.0.2
$informe o novo ip da maquina a ser modificado: 1.1.1.1
$informe a nova mascara da rede a ser modificado: 255.255.255.0

ERRO: 192.168.0.2 não encontrado

EXEMPLO 2:

informe o ip inicial da rede a ser modificada: 192.168.0.2
informe o ip final da rede a ser modificada: 192.168.0.3

informe o novo ip inicial da rede a ser modificada: 1.1.1.1
informe o novo ip final da rede a ser modificada: 1.1.1.254
informe a mascara de rede: 255.255.255.0

ERRO: 192.168.0.2 não encontrado
ERRO: 192.168.0.3 não encontrado

Comecei a fazer o código mais não consegui:

#!/bin/bash

echo " 1 - Mudar o endereco IP de uma maquina"
echo " 2 - Mudar o endereco IP de todas as maquinas"
echo " 3 - Sair"
read -p "Opcao: " opc
nc $velho 5555 > echo "lucas.txt" 2> lixo.log
if [ $opc -eq 1 ]
then
read -p "Digite o ip da máquina:" velho
read -p "Digite o novo ip da máquina:" novo
read -p "Digite a Mascara de rede:" mask

echo "ifconfig eth0 $novo netmask $mask" > lucas.txt
nc $velho 5555 < lucas.txt 2>erro.log

fi

if [ $opc -eq 2 ]
then
echo "Entrou2"
fi

if [ $opc -eq 3 ]
then
echo "Entrou3"
fi


LEMBRANDO QUE É SÓ PARA APARECER A MENSAGEM DE TROCA, NÃO PRECISA TROCAR O IP REALMENTE




  


2. Re: Trabalho de socket shell script

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 03/03/2018 - 22:38h

kassio123456 escreveu:

Preciso de ajuda para fazer esse trabalho a baixo:

Criar um ambiente com 4 máquinas virtuais, cada uma com apenas uma interface de rede (eth0) e 100 Mb de memória cada. Uma máquina será o servidor e as outras 3 máquinas serão as clientes. As configurações dos IPs de cada máquina, está listado abaixo.
NOME IP
servidor 192.168.0.1
pc1 192.168.0.2
pc2 192.168.0.3
pc3 192.168.0.4

Na máquina servidor, será desenvolvido um software chamado servidor.sh .Nele, será criado um script em shell para fazer a modificação do IP de uma ou mais máquinas, através de um MENU. Exemplo abaixo.

(servidor)
1 - mudar endereço ip de uma maquina
2 -mudar o endereço ip de todas as maquinas
3 - sair
opção: 3
root@servidor:#

Para cada opção, será utilizado o seguinte critério:
As informações serão escritas com o fundo preto e texto em amarelo.
Os erros serão informados com uma tarja vermelha e fundo azul com branco.

EXEMPLO:
(servidor)
$informe o ip da maquina a ser modificado: 192.168.0.2
$informe o novo ip da maquina a ser modificado: 1.1.1.1
$informe a nova mascara da rede a ser modificado: 255.255.255.0

ERRO: 192.168.0.2 não encontrado

EXEMPLO 2:

informe o ip inicial da rede a ser modificada: 192.168.0.2
informe o ip final da rede a ser modificada: 192.168.0.3

informe o novo ip inicial da rede a ser modificada: 1.1.1.1
informe o novo ip final da rede a ser modificada: 1.1.1.254
informe a mascara de rede: 255.255.255.0

ERRO: 192.168.0.2 não encontrado
ERRO: 192.168.0.3 não encontrado

Comecei a fazer o código mais não consegui:

#!/bin/bash

echo " 1 - Mudar o endereco IP de uma maquina"
echo " 2 - Mudar o endereco IP de todas as maquinas"
echo " 3 - Sair"
read -p "Opcao: " opc
nc $velho 5555 > echo "lucas.txt" 2> lixo.log
if [ $opc -eq 1 ]
then
read -p "Digite o ip da máquina:" velho
read -p "Digite o novo ip da máquina:" novo
read -p "Digite a Mascara de rede:" mask

echo "ifconfig eth0 $novo netmask $mask" > lucas.txt
nc $velho 5555 < lucas.txt 2>erro.log

fi

if [ $opc -eq 2 ]
then
echo "Entrou2"
fi

if [ $opc -eq 3 ]
then
echo "Entrou3"
fi


LEMBRANDO QUE É SÓ PARA APARECER A MENSAGEM DE TROCA, NÃO PRECISA TROCAR O IP REALMENTE


Boa noite Cassio.
1ª dica, para tratar as OPÇÕES, use o comando "case".
2ª dica, para cada OPÇÃO, "chame" uma função.
OBS.: As funções devem ficar no INíCIO do script.
Exemplo:
case $opc in
1) MUDAIP_UMPC() ;;
2) MUDAIP_TODOS() ;;
3) echo -e "Programa Finalizado\n" ; exit ;;
*) echo -e "Opção INVÁLIDA\n"
esac

#Abaixo, é uma função.
MUDAIP_UMPC(){
echo -e "Alera o endereço IP de um PC\nInforme o solicitado.\n"
read -p "Informe o IP que será alterado: " IPVELHO
read -p "Informe o novo IP: " IPNOVO
read -p "Informe a mascara de rede: " MASK
#TESTA o IP
if egrep '192\.168\.0\.[1-4]' <<< "$IP";then
echo -e ""ifconfig eth0 $IPNOVO netmask $MASK"
else
echo O IP: "$IPVELHO é INVÁLIDO"
fi
}

É isso.
Recomendo:
http://aurelio.net/shell/canivete/
Marcelo Oliver






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts