Estudo de Caso: Em 2018, em função da alteração do tzdata, muitos sysadmins que não atualizaram o pacote ficaram com os seus horarios atrasados e muitos
tiveram que alterar "na mão" cada um dos seus servidores. Para este auxiliar este "incendio" eu criei um script que, em função de uma base de dados
faz um comando, no caso de alteração e check de todo o pool de servidores pre cadastrados.
Obs: É necessario utilizar a chave de acesso ao servidor via rsa, para automatizar o processo.É necessario também preencher o arquivo "arquivo" com os ips dos servidores que deseja executar os comandos.
Código no Git: Git
Imagem do script em funcionamento:
Na imagem acima eu verifiquei a data, vi que estava em 1 hora, alterei a data para 00:00 e novamente aferi a data nos servidores.
arquivos no diretório:
arquivo, script, tmp
#!/bin/bash
#Autor Rodrigo Cunha - rodrigo.root.rj@gmail.com
. tmp
arq="arquivo"
head=1
tail=$(cat $arq |wc |awk -F' ' '{print $1 }')
command="hostname && date"
commandt="date -s "00:50""
>tmp
for i in $( seq ${head} ${tail})
do
aux=$(sed -n ''$i'p' $arq)
echo Metadado[$i]='"'$aux'"' >> tmp
echo ${Metadado[$i]}
done
for i in $(seq ${head} ${tail})
do
ssh -o ConnectTimeout=3 root@${Metadado[$i]} "$command"
done
arquivo:
192.168.1.1
192.168.1.2
192.168.1.3
Produto: ./tmp
Metadado[1]="192.168.1.1"
Metadado[2]="192.168.1.2"
Metadado[3]="192.168.1.3"
#
!/bin/bash
source servidores
command="hostname && date"
commandt="date -s "11:50""
for i in $(seq ${e} ${f})
do
ssh -o ConnectTimeout=3 root@${Testeservidor[$i]} "$commandt"
done
tiveram que alterar "na mão" cada um dos seus servidores. Para este auxiliar este "incendio" eu criei um script que, em função de uma base de dados
faz um comando, no caso de alteração e check de todo o pool de servidores pre cadastrados.
Obs: É necessario utilizar a chave de acesso ao servidor via rsa, para automatizar o processo.É necessario também preencher o arquivo "arquivo" com os ips dos servidores que deseja executar os comandos.
Código no Git: Git
Imagem do script em funcionamento:
Na imagem acima eu verifiquei a data, vi que estava em 1 hora, alterei a data para 00:00 e novamente aferi a data nos servidores.
arquivos no diretório:
arquivo, script, tmp
#!/bin/bash
#Autor Rodrigo Cunha - rodrigo.root.rj@gmail.com
. tmp
arq="arquivo"
head=1
tail=$(cat $arq |wc |awk -F' ' '{print $1 }')
command="hostname && date"
commandt="date -s "00:50""
>tmp
for i in $( seq ${head} ${tail})
do
aux=$(sed -n ''$i'p' $arq)
echo Metadado[$i]='"'$aux'"' >> tmp
echo ${Metadado[$i]}
done
for i in $(seq ${head} ${tail})
do
ssh -o ConnectTimeout=3 root@${Metadado[$i]} "$command"
done
arquivo:
192.168.1.1
192.168.1.2
192.168.1.3
Produto: ./tmp
Metadado[1]="192.168.1.1"
Metadado[2]="192.168.1.2"
Metadado[3]="192.168.1.3"
#
!/bin/bash
source servidores
command="hostname && date"
commandt="date -s "11:50""
for i in $(seq ${e} ${f})
do
ssh -o ConnectTimeout=3 root@${Testeservidor[$i]} "$commandt"
done
Obrigado a todos, qualquer proposta de melhoria será bem-vinda.
Comments
Post a Comment