terça-feira, 4 de dezembro de 2018

Tips:Testes de Laboratório: Array dinamico, gerado dinamicamente.

Gerando um Array com um array dinamico.
O problema: Eu quero criar um array com os ips do meu ambiente, mas não quero setar um a um.Para isso criarei um arquivo onde ficarão contidos os ips dos meus servidores e em função desse arquivo, eu criarei um array dinamico (array1) que gera um array com o conteudo dos meus ips.Esse arquivo, chamado tmp vai servir de source para implementações em pool de servidores.

Exemplo: Minha rede tem os servidores 192.168.1.[1-3], feito isso eu crio o arquivo: aruivo2 com o conteudo:
192.168.1.1
192.168.1.2
192.168.1.3
No dia seguinte eu irei inserir o servidor: 192.168.1.4, o arquivo ficaria assim:
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
Feito isso, meu script vai contar quantas linhas tem esse arquivo(arquivo2)

Objetivo: Criar um array com tamanho dinamico, em função do numero de entradas(linhas) em um arquivo(arquivo2). Esse array1 vai gerar um arquivo(tmp), onde estarão entradas do tipo array. O conteudo dessa array2

Arquivos:
arquivo, tmp e script.sh

root@DevArea:~/18.12.04.0837# cat script.sh
#!/bin/bash
#Autor: Rodrigo da Silva Cunha
. tmp
arq="arquivo"
head=1
tail=$(cat $arq |wc |awk -F' ' '{print $1 }')
>tmp
for i in $( seq ${head} ${tail})
do
aux=$(sed -n ''$i'p' $arq)
echo Metadado[$i]='"'$aux'"' >> tmp
echo ${Metadado[$i]}
done

root@DevArea:~/18.12.04.0837# cat arquivo
192.168.1.1
192.168.1.2
192.168.1.3

O arquivo tmp é gerado dinamicamente com um formato, similar ao de baixo:

root@DevArea:~/18.12.04.0837# cat tmp 
Metadado[1]="192.168.1.1"
Metadado[2]="192.168.1.2"
Metadado[3]="192.168.1.3"
root@DevArea:~/18.12.04.0837# 

Obrigado a Todos, duvidas nos comentários.




Nenhum comentário:

Postar um comentário