Comparar e substiuir ip da maquina em arquivo.sh [RESOLVIDO]

1. Comparar e substiuir ip da maquina em arquivo.sh [RESOLVIDO]

andre oscar
rootkitsp

(usa Red Hat)

Enviado em 30/07/2018 - 15:09h

Boa tarde Pessoal, estou com uma tarefa aqui e não estou sabendo exatamente por onde começar, procurei em varios sites mas não encontrei algo que pudesse adequar, o problema é o seguinte, eu tenho um arquivo.sh que na linha 16 tem o seguinte IP=10.10.10.10 eu preciso verificar o ip da minha máquina e comparar com esse ip da linha 16, se o ip for igual, ignoro, se for diferente substitui o ip da linha 16 pelo ip que é o da máquina, ou seja se eu der um ifconfig e aparecer 10.10.10.20 a linha 16 deverá ficar IP=10.10.10.20 alguém poderia me dar uma ajuda com esse tema?


  


2. Re: Comparar e substiuir ip da maquina em arquivo.sh

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 30/07/2018 - 15:41h

rootkitsp escreveu:

Boa tarde Pessoal, estou com uma tarefa aqui e não estou sabendo exatamente por onde começar, procurei em varios sites mas não encontrei algo que pudesse adequar, o problema é o seguinte, eu tenho um arquivo.sh que na linha 16 tem o seguinte IP=10.10.10.10 eu preciso verificar o ip da minha máquina e comparar com esse ip da linha 16, se o ip for igual, ignoro, se for diferente substitui o ip da linha 16 pelo ip que é o da máquina, ou seja se eu der um ifconfig e aparecer 10.10.10.20 a linha 16 deverá ficar IP=10.10.10.20 alguém poderia me dar uma ajuda com esse tema?


V aí se te Serve
#!/bin/bash
FILE="/CAMINHO/DO/ARQUIVO.EXTENSÃO" # ALTERAR DE ACORDO COM O SEU ARQUIVO
REDE="WLAN1" # ALTERAR DE ACORDO COM O SUA REDE
IP_MAQUINA=`ip addr show $REDE|grep -m1 inet|awk '{print $2}'|cut -d'/' -f1`
IP_ARQUIVO=`sed -n '16p' $FILE| cut -d'=' -f2`
[ $IP_MAQUINA == $IP_ARQUIVO ] && echo "IP's iguais, nada a fazer." || echo "Ip's diferentes, alterando ..." && sed -i "s/$IP_ARQUIVO/$IP_MAQUINA/" $FILE


------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



3. Re: Comparar e substiuir ip da maquina em arquivo.sh [RESOLVIDO]

andre oscar
rootkitsp

(usa Red Hat)

Enviado em 31/07/2018 - 08:34h

Mauriciodez escreveu:

rootkitsp escreveu:

Boa tarde Pessoal, estou com uma tarefa aqui e não estou sabendo exatamente por onde começar, procurei em varios sites mas não encontrei algo que pudesse adequar, o problema é o seguinte, eu tenho um arquivo.sh que na linha 16 tem o seguinte IP=10.10.10.10 eu preciso verificar o ip da minha máquina e comparar com esse ip da linha 16, se o ip for igual, ignoro, se for diferente substitui o ip da linha 16 pelo ip que é o da máquina, ou seja se eu der um ifconfig e aparecer 10.10.10.20 a linha 16 deverá ficar IP=10.10.10.20 alguém poderia me dar uma ajuda com esse tema?


V aí se te Serve
#!/bin/bash
FILE="/CAMINHO/DO/ARQUIVO.EXTENSÃO" # ALTERAR DE ACORDO COM O SEU ARQUIVO
REDE="WLAN1" # ALTERAR DE ACORDO COM O SUA REDE
IP_MAQUINA=`ip addr show $REDE|grep -m1 inet|awk '{print $2}'|cut -d'/' -f1`
IP_ARQUIVO=`sed -n '16p' $FILE| cut -d'=' -f2`
[ $IP_MAQUINA == $IP_ARQUIVO ] && echo "IP's iguais, nada a fazer." || echo "Ip's diferentes, alterando ..." && sed -i "s/$IP_ARQUIVO/$IP_MAQUINA/" $FILE


------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------


Olá bom dia Maurício, muito obrigado pelo apoio, eu fiz as alterações de acordo com minha rede e arquivo mas não alterou o ip, o arquivo.sh ficou assim:
#!/bin/bash
FILE=caminho/do/meu/arquivo.sh
REDE=10.10.10.0/23
IP_MAQUINA=`ip addr show $REDE|grep -m1 inet|awk '{print $2}'|cut -d'/' -f1`
IP_ARQUIVO=`sed -n '16p' $FILE| cut -d'=' -f2`
[ $IP_MAQUINA == $IP_ARQUIVO ] && echo "IP's iguais, nada a fazer." || echo "Ip's diferentes, alterando ..." && sed -i "s/$IP_ARQUIVO/$IP_MAQUINA/" $FILE


Durante a execução até apareceu que estava alterando o ip, mas a linha 16 "IP" ficou em branco

[root@meuproxy]# ./teste.sh
Device "10.10.10.0/23" does not exist. (coloquei a rede aqui 10.10.10.0/23 para não expor a minha mas é também um /23)
./teste.sh: line 6: [: ==: unary operator expected
Ip's diferentes, alterando ...




4. Re: Comparar e substiuir ip da maquina em arquivo.sh

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 31/07/2018 - 10:18h

rootkitsp escreveu:

Durante a execução até apareceu que estava alterando o ip, mas a linha 16 "IP" ficou em branco

[root@meuproxy]# ./teste.sh
Device "10.10.10.0/23" does not exist. (coloquei a rede aqui 10.10.10.0/23 para não expor a minha mas é também um /23)
./teste.sh: line 6: [: ==: unary operator expected
Ip's diferentes, alterando ...



olha só ... eu fiz de acordo com um exemplo de arquivo aqui ... da uma olhada

script
mauricio@phantom ~ $ cat sh.sh 
#!/bin/bash
FILE="ip.txt" # ALTERAR DE ACORDO COM O SEU ARQUIVO
REDE="wlan1" # ALTERAR DE ACORDO COM O SUA REDE
IP_MAQUINA=`ip addr show $REDE|grep -m1 inet|awk '{print $2}'|cut -d'/' -f1`
IP_ARQUIVO=`sed -n '16p' $FILE| cut -d'=' -f2`
[ "$IP_MAQUINA" == "$IP_ARQUIVO" ] && echo "IP's iguais, nada a fazer." || echo "Ip's diferentes, alterando ..." && sed -i "s/$IP_ARQUIVO/$IP_MAQUINA/" $FILE


mauricio@phantom ~ $ cat ip.txt
bknsp
afjdnvboçja
jfvb asihbadfçobn
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
IP=192.168.25.1
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjb
mauricio@phantom ~ $ ./sh.sh
Ip's diferentes, alterando ...
mauricio@phantom ~ $ cat ip.txt
bknsp
afjdnvboçja
jfvb asihbadfçobn
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
IP=192.168.25.5
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjb
mauricio@phantom ~ $ ./sh.sh
IP's iguais, nada a fazer.


Se seu arquivo estiver com uma estrutura diferente vc tem que mandar a linha 16 pra gente adaptar


------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



5. Re: Comparar e substiuir ip da maquina em arquivo.sh [RESOLVIDO]

andre oscar
rootkitsp

(usa Red Hat)

Enviado em 31/07/2018 - 10:25h

Mauriciodez escreveu:

rootkitsp escreveu:

Durante a execução até apareceu que estava alterando o ip, mas a linha 16 "IP" ficou em branco

[root@meuproxy]# ./teste.sh
Device "10.10.10.0/23" does not exist. (coloquei a rede aqui 10.10.10.0/23 para não expor a minha mas é também um /23)
./teste.sh: line 6: [: ==: unary operator expected
Ip's diferentes, alterando ...



olha só ... eu fiz de acordo com um exemplo de arquivo aqui ... da uma olhada

script
mauricio@phantom ~ $ cat sh.sh 
#!/bin/bash
FILE="ip.txt" # ALTERAR DE ACORDO COM O SEU ARQUIVO
REDE="wlan1" # ALTERAR DE ACORDO COM O SUA REDE
IP_MAQUINA=`ip addr show $REDE|grep -m1 inet|awk '{print $2}'|cut -d'/' -f1`
IP_ARQUIVO=`sed -n '16p' $FILE| cut -d'=' -f2`
[ "$IP_MAQUINA" == "$IP_ARQUIVO" ] && echo "IP's iguais, nada a fazer." || echo "Ip's diferentes, alterando ..." && sed -i "s/$IP_ARQUIVO/$IP_MAQUINA/" $FILE


mauricio@phantom ~ $ cat ip.txt
bknsp
afjdnvboçja
jfvb asihbadfçobn
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
IP=192.168.25.1
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjb
mauricio@phantom ~ $ ./sh.sh
Ip's diferentes, alterando ...
mauricio@phantom ~ $ cat ip.txt
bknsp
afjdnvboçja
jfvb asihbadfçobn
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
IP=192.168.25.5
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjbbknsp
afjdnvboçja
arvjb
mauricio@phantom ~ $ ./sh.sh
IP's iguais, nada a fazer.


Se seu arquivo estiver com uma estrutura diferente vc tem que mandar a linha 16 pra gente adaptar


------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



então a linha 16 está daquela forma que passei, IP=ip

linha14 - LOG=log.txt
linha15 -LIMITE=5 # numero maximo de processos simultaneos
linha16 -IP=10.10.10.10
linha17 -ARQUIVO_FINAL=$IP\_$DATA.txt




6. Re: Comparar e substiuir ip da maquina em arquivo.sh [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 31/07/2018 - 10:31h

rootkitsp escreveu:
então a linha 16 está daquela forma que passei, IP=ip

linha14 - LOG=log.txt
linha15 -LIMITE=5 # numero maximo de processos simultaneos
linha16 -IP=10.10.10.10
linha17 -ARQUIVO_FINAL=$IP\_$DATA.txt




então ... se sua linha 16 está igual ao meu arquivo a parada tem que funcionar ... note q eu alterei meu script pois tinha esquecido de colocar aspas nas variáveis.

refaz aí com base nesse ultimo script que mandei, se mesmo assim não funcionar, posta teu script que a gente descobre o pq não funcionou !!!


------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



7. Re: Comparar e substiuir ip da maquina em arquivo.sh

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 31/07/2018 - 21:47h

rootkitsp escreveu:

Boa tarde Pessoal, estou com uma tarefa aqui e não estou sabendo exatamente por onde começar, procurei em varios sites mas não encontrei algo que pudesse adequar, o problema é o seguinte, eu tenho um arquivo.sh que na linha 16 tem o seguinte IP=10.10.10.10 eu preciso verificar o ip da minha máquina e comparar com esse ip da linha 16, se o ip for igual, ignoro, se for diferente substitui o ip da linha 16 pelo ip que é o da máquina, ou seja se eu der um ifconfig e aparecer 10.10.10.20 a linha 16 deverá ficar IP=10.10.10.20 alguém poderia me dar uma ajuda com esse tema?


Boa noite RootKitSP.
Segue:
ip=$(ip addr show wlp3s0|awk '/inet / {print $2}')
[[ ${IP} != ${ip} ]] && sed -i "16s|$IP|${ip}|" $0

Observações:
Essas duas linhas serão colocadas no seu "arquivo.sh", após a linha "16"
Altere "wlp3s0" para o nome da sua placa de rede"
A lógica é simples:
Na linha 16, é declarada a var "IP",
Esse meu comando pega o ip do "PC", (var ip), compara com o IP, se diferente,
altera o arquivo.sh, que é o script que esta executando.

Se tem necessidade de executar um outro script para alterar o arquivo.sh,
use esse abaixo:
#!/bin?bash
IP=$(awk -F'=' 'NR==16 {print $2}' arquivo.sh)
ip=$(ip addr show wlp3s0|awk '/inet / {print $2}')
[[ ${IP} != ${ip} ]] && { sed -i "16s|${IP}|${ip}|" arquivo.sh ; echo -e "\nArquivo Alterado\n" ; }

Att.:
Marcelo Oliver



8. Re: Comparar e substiuir ip da maquina em arquivo.sh [RESOLVIDO]

andre oscar
rootkitsp

(usa Red Hat)

Enviado em 02/08/2018 - 15:56h

Muito obrigado pessoal!!!! Deu certíssimo!!!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts