=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
UNIX GURU UNIVERSE DICA UNIX
Dica Unix 2548 - 23 de dezembro de 2006
http://www.ugu.com/sui/ugu/show?tip.today
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
ATUALIZAÇÕES MÚLTIPLAS DE SISTEMAS DE ARQUIVOS
Esta dica vai lhe mostrar um dos vários métodos de atualizar múltiplos sistemas de arquivos com um só script :
Há uma variedade de possibilidades para implementar isto, mas esta não tem necessidade de uma atualização do sistema de arquivos remoto, excetuando os arquivos que você precisa atualizar ( ex - não há atualização dos arquivos .rhosts ou hosts.equiv ). Eu utilizo macros de ftp como as abaixo :
——————————- CUT HERE —————————
#!/bin/ksh
program: update-all-workstations
purpose: To ensure that all workstations have the same update of
specific programs.
notes: We run a ping command also to see if host is alive
before we try to do the updates.
hosts=ypcat hosts | grep col[d-f] | awk '{print $2}'
for host in $hosts
do
alive=ping -v $host 1 | awk '{print $3}'
if [ $alive = “alive” ];
then
echo $host » live-hosts
else
echo $host » dead-hosts
fi
done
A próxima sequencia não é requerida se as estações de trabalho possuirem o arquivo .rhosts
pois ele permite ao servidor ( ou sistema que roda o script ) o acesso root
Se o .rhosts é utilizado, há a eliminação do prompt para pedido de senha e a criação do arquivo
#.netrc
A linha posterior assume que todas as estações de trabalho possuem a mesma senha
Se isto não for o caso, a administração necessita de mais algumas arrumações. Mova as próximas
linhas para baixo depois do condicional do se as senhas são diferentes em cada estação de trabalho.
echo “Please enter the root password for the workstations:c”
read password
for host in cat live-hosts
do
echo “machine $host login root password $password” > $HOME/.netrc
chmod 600 $HOME/.netrc
echo “macdef init” » $HOME/.netrc
echo “prompt” » $HOME/.netrc
echo “binary” » $HOME/.netrc
echo “put /tmp/myfiles.tar /tmp/myfiles.tar” » $HOME/.netrc
echo “close” » $HOME/.netrc
echo “quit” » $HOME/.netrc
echo “nn” » $HOME/.netrc # Os próximos passos são redundantes, mas necessários.
se você está utilizando um arquivo .netrc, este arquivo vai será utilizado depois do ftp
e antes do comando rexec
rm $HOME/.netrc echo “machine $host login root password $password” > $HOME/.netrc chmod 600 $HOME/.netrc rexec $host “cd /usr/local; tar xvf /tmp/myfiles.tar” done
fim deste script
############################################
Agora, se você está utilizando o arquivo .rhosts, o processo é muito mais simples.
Examine o script que procura o arquivo .rhosts em cada estação de trabalho para permitir que o servidor tenha acesso root em cada uma delas.
—————————- CUT HERE —————————–
#!/bin/ksh
program: update-using-rhosts
função : ter certeza que todas as estações estão com a mesma versão
de um programa específico
Nota : iremos rodar um ping para ver se o host está on line para
depois efetuar as atualizações
hosts=ypcat hosts | grep col[d-f] | awk '{print $2}'
for host in $hosts
do
alive=ping -v $host 1 | awk '{print $3}'
if [ $alive = “alive” ];
then
echo $host » live-hosts
else
echo $host » dead-hosts
fi
done
for host in cat live-hosts
do
primeiramente, criamos um arquiv otar para a saída padrão, jogando via pipe para o rsh
que irá gerar o arquivo no hosts remoto
para logo depois extrair o mesmo no hosts reoto no lugar necessário.
tar cvf - ./usr/local/bin | rsh $host “cd /; tar xvf -” done
End of this script
Obviamento, o segundo método é muito mais fácil, mas o seu uso vai depender das características de sua estrutura.
Se você precisar de assistência para este tipo de scripts, posso lhe ajudar, mas tenha em mente que eu não vou assumir nenhuma responsabilidade por qualquer coisa que possa vir a acontecer em sua estrutura com o uso dos mesmos. Somente um administrador experiente deve tentar o uso destes scripts, e por sua vez tomar todas as precauções necessárias para que não haja problemas posteriores.
James A. (Jamie) Dennis jdennis@netset.com
NOTA DO TRADUTOR : caso tenha problemas para visualizar a dica, visite este link : dica22dedezembro2006.txt
Para entrar : http://www.ugu.com/sui/ugu/show?tip.subscribe Para sair: http://www.ugu.com/sui/ugu/show?tip.unsubscribe Para enviar uma dica: http://www.ugu.com/sui/ugu/show?tip.today
DECLARAÇÃO: TODAS AS DICAS DE UNIX SÃO PROPRIEDADE DA UNIX GURU UNIVERSE E NÃO SÃO PARA SER VENDIDAS, IMPRESSAS OU USADAS SEM O CONSENTIMENTO POR ESCRITO DA UNIX GURU UNIVERSE. TODAS AS DICAS SÃO "USADAS POR SEU PROPIO RISCO". UGU ADVERTE PARA TESTAR TODAS AS DICAS EM UM AMBIENTE QUE NÃO ESTEJA EM PRODUÇÃO.Unix Guru Universe - www.ugu.com - tips@ugu.com - Copyright 1994-2006