ATUALIZAÇÕES MÚLTIPLAS DE SISTEMAS DE ARQUIVOS

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

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

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