Estou um pouco enferrujado com minhas habilidades de script e estou tentando encontrar um bom ponto de partida para criar um script que crie arquivos (gerando novos nomes de arquivos) e edite o endereço IP no arquivo, incrementando-o em +1
Meu cenário é assim - Temos cerca de 50 endereços IP para adicionar aos nossos scripts de rede, cada um com um IP incremental. Eu poderia fazer isso manualmente, mas achei que seria um bom momento para tentar acelerar minhas habilidades de script.
O esquema de nomenclatura é assim:
ifcfg-eth0:1, ifcfg-eth0:2, ifcfg-eth0:3 ...*n*
O conteúdo desses arquivos é:
DEVICE=eth0:1
NETMASK=255.255.255.0
IPADDR=10.2.7.148
BOOTPROTO=none
ONBOOT=yes
DNS1=10.2.53.150
PEERDNS=yes
DNS2=10.2.53.250
GATEWAY=10.2.7.1
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
Em que IPADDR=10.2.7.148
deve ser aumentado em +1 em cada arquivo.
Por exemplo:
O arquivo ifcfg-eth0:2
seria o mesmo, exceto que IPADDR
seria 10.2.7.149
e assim por diante.
Tenho quase certeza de que devo invocar sed
para localizar e substituir os endereços IP.
Por exemplo, a pesquisa de um endereço IP usando sed
pode ser realizada da seguinte forma:
sed -rn '/(IPPADDR=)((1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])\.){3}(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])/p' file
Quais etapas precisam ser tomadas para gerar um novo arquivo com o nome eth0:N
incrementado por +1, bem como o endereço IP no arquivo.
Obrigado antecipadamente!
EDITAR:
Deixe-me esclarecer que os nomes dos arquivos não devem conter o endereço IP.
Estou precisando que o arquivo1 seja copiado para o arquivo2 eth0:1
- > eth0:2
com o mesmo conteúdo do arquivo acima, exceto o fato de que o campo IPADDR=
no arquivo gerado deve ser incrementado em um.
Nota: O nome do arquivo também deve ser incrementado em +1 IE. cp ifcfg-eth0:1 ifcfg-eth0:2