shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Re: Dúvida com variáveis


From: Cristiano Amaral
Subject: Re: [shell-script] Re: Dúvida com variáveis
Date: Tue, 13 Nov 2012 07:36:58 -0200

Corrigindo...

for SERVER in $(cat servidores.txt) ; do  Poderia ficar assim

for SERVER in $servidores ; do


Em 13 de novembro de 2012 07:35, Cristiano Amaral
<address@hidden>escreveu:

> Cristiano, acho melhor usar uma variavel do que um cat...
>
> ARQ=/root/arquivo.txt
> servidores="maquina1 maquina2 maquina3"
>
> for SERVER in $(cat servidores.txt) ; do
> echo "Digite a senha para o servidor ${SERVER}"
> scp ${ARQ} ${SERVER}:/root/
> sleep 1
> done
>
>
> ARQ=/root/arquivo.txt
> > for SERVER in $(cat servidores.txt) ; do
> > echo "Digite a senha para o servidor ${SERVER}"
> > scp ${ARQ} ${SERVER}:/root/
> > sleep 1
> > done
>
> Em 12 de novembro de 2012 23:16, Tiago Peczenyj <address@hidden>escreveu:
>
> é ate possivel criar variaveis
>>
>> DIR1
>> DIR2
>> ...
>> mas é tanto esforço e fica tão ilegivel que ou vc cria um array ou não
>> cria
>> variavel nenhuma, leia como o Cristiano ensinou
>>
>> 2012/11/12 Cristiano <address@hidden>
>>
>> > **
>> >
>> >
>> >
>> >
>> > --- Em address@hidden, Pedro Renato Martelotta
>> <het_net@...>
>> > escreveu
>> > >
>> > > Pessoal,
>> > >
>> > > Estava fazendo um script para enviar um arquivo para vários
>> servidores. A
>> > > dúvida é: como ler uma variével dentro de outra?
>> > > Segue uma parte do código (está errado, é só pra clarear a dúvida):
>> > >
>> > > ...
>> > > *# Lista de servidores a receber o arquivo (13 servidores)
>> > > SVR1=servidor20
>> > > ...
>> > > SVR12=servidor28
>> > > SVR13=servidor50
>> > >
>> > > # Localização do arquivo
>> > > ARQ=/root/arquivo.txt
>> > >
>> > > # Envio via SCP
>> > > for i in $(seq 13)
>> > > do
>> > > CONT=SVR${i}
>> > > echo "Digite a senha para o servidor ${CONT}"
>> > > scp ${ARQ} ${CONT}:/root/
>> > > sleep 1
>> > > done*
>> > >
>> > > Antes disso, tinha pensado em ${SVR${i}}, mas não funciona. Alguém
>> > entendeu
>> > > o que quis fazer e poderia me ajudar?
>> > >
>> > >
>> > > [As partes desta mensagem que não continham texto foram removidas]
>> > >
>> >
>> > Pedro, boa noite.
>> >
>> > O que você está tentando fazer pode ser feito usando vetores (arrays).
>> > Porém, vetores não estão disponíveis para qualquer interpretador. Nem
>> mesmo
>> > no bash eles existem em todas as versões (se não me falha a memória, só
>> da
>> > 4.0 para frente).
>> >
>> > Mas fazer o que você quer é muito mais simples, usando o while e o
>> > redirecionamento de entrada (<). Deste modo, você não precisa definir
>> > variáveis no arquivo que relaciona os servidores. Basta listar os
>> > endereços, tipo:
>> >
>> > $ cat servidores.txt
>> > servidor1
>> > servidor2
>> > ...
>> > servidorN
>> >
>> > Com os arquivos nomeados linha por você pode fazer algo assim:
>> >
>> > ARQ=/root/arquivo.txt
>> > while read SERVER ; do
>> > echo "Digite a senha para o servidor ${SERVER}"
>> > scp ${ARQ} ${SERVER}:/root/
>> > sleep 1
>> > done < servidores.txt
>> >
>> > Outra maneira de fazer isso com o "for" seria lendo o conteúdo do mesmo
>> > arquivo servidores.txt (sem a atribuição de variáveis) à partir de uma
>> > subshell, tipo:
>> >
>> > ARQ=/root/arquivo.txt
>> > for SERVER in $(cat servidores.txt) ; do
>> > echo "Digite a senha para o servidor ${SERVER}"
>> > scp ${ARQ} ${SERVER}:/root/
>> > sleep 1
>> > done
>> >
>> > E, por fim, você consegue fazer isso sem ter que digitar senha, usando
>> > autenticação por par de chaves. Mas, para isso, teria que configurar
>> cada
>> > servidor (/etc/ssh/sshd_config) para aceitar a autenticação por par de
>> > chaves, além de copiar, ao menos, a chave pública do usuário para o
>> > servidor de destino (em ~/.ssh).
>> >
>> > Talvez configurar isso dê tanto ou mais trabalho que copiar manualmente
>> os
>> > arquivos. Entretanto, dependendo da recorrência da replica dos arquivos,
>> > vale a pena configurar o acesso por chaves (além de ser muito mais
>> seguro
>> > que a autenticação por senha).
>> >
>> >
>> >
>>
>>
>>
>> --
>> Tiago B. Peczenyj
>> Linux User #405772
>>
>> http://pacman.blog.br
>>
>>
>> [As partes desta mensagem que não continham texto foram removidas]
>>
>>
>>
>> ------------------------------------
>>
>> ---------------------------------------------------------------------
>> Esta lista não admite a abordagem de outras liguagens de programação,
>> como perl, C etc. Quem insistir em não seguir esta regra será moderado sem
>> prévio aviso.
>> ---------------------------------------------------------------------
>> Sair da lista: address@hidden
>> ---------------------------------------------------------------------
>> Esta lista é moderada de acordo com o previsto em
>> http://www.listas-discussao.cjb.net
>> ---------------------------------------------------------------------
>> Servidor Newsgroup da lista: news.gmane.org
>> Grupo: gmane.org.user-groups.programming.shell.brazil
>>
>> Links do Yahoo! Grupos
>>
>>
>>
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]