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

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

Re: [shell-script] Atualização de arquivos em N pastas


From: Julio C. Neves
Subject: Re: [shell-script] Atualização de arquivos em N pastas
Date: Fri, 31 Jan 2014 22:11:03 -0200

Fala Paulo,
se a sua interpretação do que o Cara_que_continua_sem_assinar_o_email_e_sem_explicar_direito quis dizer, fazer 2 colocações:
» Evite usar nome e senha no script. É melhor fazer:
read -p "Login Name na máquina remota ($LOGNAME): " user # oferece $LOGNAME como default
user=${user:-$LOGNAME} # se user estiver vazia, recebe o default
read -sp "Senha: " senha

» No ftp do UNIX vc podia executar uma instrução remota com o cmd:
site exec cmd
Fui ler o man do GNU ftp e a sintaxe é:

site arq1 arq2 arq3 ...

se não me engano, nesses arqs vc põe os cmds que serão executados no host remoto. Vale a pena sondar isso na internet e se alguém testar, peço que informe na lista ou em pvt para mim o resultado do teste.

Abcs,
Julio
@juliobash

Próximos cursos de Shell

Cidade

Local

Período

São Paulo

4Linux

03-07/02

Curitiba

SoftSell

17-21/02

Rio de Janeiro

EDX

10-14/03

Dou treinamento de shell em qualquer cidade.
Para detalhes, entre em contato por email ou
echo 436233889341364416673541503686485725801923229706P | dc 



Em 31 de janeiro de 2014 20:50, Paulo Bettega <address@hidden> escreveu:
Olá Robson, o Cara_que_continua_sem_assinar_o_email quer mandar os
arquivos para um ftp, então teria que enviar os arquivos antes.


#!/bin/bash
origem=/pasta
destino=/destino
end_ftp='10.10.1.1'
user='user'
senha='senha'

for arq in $origem/*
do
ftp -ivn "$end_ftp" << eofftp
user "$user" "$senha"
binary
mkdir $(dirname $arq)
send $arq $arq
eofftp
done


Não sei se dá pra fazer um find remoto:) seguindo o teu exemplo.
Se fosse ssh ao invés de ftp seria mais fácil, executando
todos os comando direto na máquina remota.

Abraços e desculpem alguma trave:)
Paulo Bettega



On 31-01-2014 18:23, Robson Alexandre wrote:
> Caro Cara_que_continua_sem_assinar_o_email,
>
> acho q compreendi o q vc está tentando fazer.
>
> então veja se a lógica está correta,
> para cada arquivo em pasta/ executo um find em destino/ e copio de origem para destino.
>
> #!/bin/bash
> origem=/pasta
> destino=/destino
>
> for arq in $origem/*
> do
> cp -v $arq $(find $destino -name $(basename $arq))
> done
>
>
>
> Atenciosamente
> Robson Alexandre
>
>
>
>
> Em 31 de janeiro de 2014 15:59, _ _ <address@hidden <mailto:address@hidden>> escreveu:
>
>     __
>
>     Julio, obrigado pela resposta e ajuda. Esqueci de assinar mesmo.
>
>     Dei um find nos dois diretórios e gravei no log. Este procedimento é
>     para 1 caso de pasta, tenho mais de 1 caso, mas é a mesma coisa para os
>     outros.
>
>     Bom, acho que agora vai ficar mais fácil de entender. Tentei explicar,
>     mas compliquei mais.
>
>     Preciso atualizar todos os arquivos do anexo "pasta.log" nos destinos do
>     "diretorio_subdiretorio_arquivo.log"
>
>     Os mesmos arquivos existem nos dois lados, a diferença é que os da
>     "pasta.log" estão atualizados.
>
>     O problema é que do outro lado, no DESTINO, tenho vários diretórios.
>
>     Julio, eu não manjo nada de scripts.
>
>     Em 31-01-2014 15:26, Julio C. Neves escreveu:
>
>
>      > Olá Cara_que_não_assinou_o_email,
>      >
>      > Tá complicado de entender, mas veja:
>      >
>      > ComSeps=$(ls | sed -r
>      > 's/^(agua|fogo|terra|ar)(agua|fogo|terra|ar)(.*)$/\1:\2:\3'
>      > # Dentro de $ComSeps, as coisas estarão assim: fogo:terra:2.ext
>      > for Arq in $ComSeps
>      > {
>      > mv $(sed 's/://g' <<< $Arq) /$(cut -f1 -d: <<< $Arq)/$(cut -f2 -d:
>      > <<< $Arq)
>      > }
>      >
>      > Se eu entendi o que vc quis dizer, isso deve funcionar, porém não testei.
>      >
>      > Abcs,
>      > Julio
>      > *@juliobash*
>      >
>      > *Próximos cursos de Shell *
>      >
>      > *Cidade*
>      >
>      >
>      >
>      > *Local*
>      >
>      >
>      >
>      > *Período*
>      >
>      > São Paulo
>      >
>      >
>      >
>      > 4Linux <http://www.4linux.com.br/>
>      >
>      >
>      >
>      > 03-07/02
>      >
>      > Curitiba
>      >
>      >
>      >
>      > SoftSell <http://www.softsell.com.br/>
>      >
>      >
>      >
>      > 17-21/02
>      >
>      > Rio de Janeiro
>      >
>      >
>      >
>      > EDX <http://edx.srv.br/>
>
>      >
>      >
>      >
>      > 10-14/03
>      >
>      > Dou treinamento de shell em qualquercidade.
>      > Para detalhes, entreem contato por email ou
>
>      > echo 436233889341364416673541503686485725801923229706P | dc
>      >
>      >
>      >
>      > Em 31 de janeiro de 2014 12:25, <address@hidden <mailto:address@hidden>
>      > <mailto:address@hidden <mailto:address@hidden>>> escreveu:
>
>      >
>      > Grupo, peço licença pra entrar e postar uma solicitação de ajuda.
>      >
>      > Tenho 4 pasta, com o nome de 4 categorias.
>      > Cada categoria tem 3 subcategorias.
>      > Cada subcategoria, tem n arquivos dentro da pasta.
>      > São imagens.
>      > Peguei todas as imagens, de todas as
>      > ~/categoria/subcategoria/arquivo.ext, e copiei para uma única
>      > pasta, tudo misturado, chamado "pasta".
>      > As imagens estão em um FTP, separadas nas pastas assim:
>      > ~/diretorioX/subdiretorioY/arquivoZ.ext
>      > Editei estas imagens através de um action de photoshop, e ele
>      > salva tudo em uma única ~/pasta/ tudo misturado...
>      > Agora eu preciso fazer upload ORIGEM: ~/pasta/arquivo.ext DESTINO:
>      > ~/categoria/subcategoria/arquivo.ext
>      >
>      > Eu tenho todos os arquivos no DESTINO, mas estão sem edição.
>      > Preciso ler os arquivos da ~/pasta/ e substituí-lo no
>      > ~/diretorioX/subdiretorioY/arquivoZ.ext
>      >
>      > Exemplos:
>      >
>      > Origem: ~/pasta/fogoterra1.ext
>      > Destino: ~/Fogo/Terra/fogoterra1.ext
>      >
>      > Origem: ~/pasta/fogoterra2.ext
>      > Destino: ~/Fogo/Terra/fogoterra2.ext
>      >
>      > Origem: ~/pasta/terraágua1.ext
>      > Destino: ~/Terra/Água/terraágua1.ext
>      >
>      > Origem: ~/pasta/arfogo.ext
>      > Destino: ~/Ar/Fogo/arfogo.ext
>      >
>      > Coloquei um tópico aqui neste fórum também:
>      > http://www.vivaolinux.com.br/topico/Shell-Script/Script-de-atualizacao-de-arquivos-recursivamente
>      >
>      > Agradeço imensamente quem puder me ajudar. Eu ainda não sei
>      > escrever script. Tenho mais de 800 arquivos pra atualizar em
>      > inumeras pastas. Na mão é desumano.
>      >
>      > Desde já obrigado.
>      >
>      >
>      >
>
>     [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

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    address@hidden

<*> O uso que você faz do Yahoo Grupos está sujeito aos:
    http://info.yahoo.com/legal/br/yahoo/utos/terms/




reply via email to

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