wput carrega vários arquivos sem recriar a árvore de diretórios no destino

1

Estou tentando encontrar uma maneira de fazer o upload de um lote de arquivos de um servidor para outro pelo cron algumas vezes ao dia e o wput parece ser a melhor e mais fácil opção de usar.

Funciona muito bem, mas o problema é que wput sempre recria a árvore de diretórios no destino. Então aqui está o comando que eu uso.

wput -u /var/www/clients/client1/web/parser/*.json ftp://username:password@remoteserver/web/

Portanto, isso deve fazer o upload de todos os arquivos dentro do diretório /parser/ e dos arquivos que possuem .json extension.

Isso funciona muito bem, exceto:

Ao fazer o upload dos arquivos para o servidor remoto, ele carrega toda a árvore de diretórios e, em vez de ter uma lista de arquivos dentro da pasta /web/ no servidor remoto, os arquivos são carregados com todos os diretórios do servidor de origem

Em vez disso:

/web/file1.json
/web/file2.json
/web/file3.json
/web/file4.json

Eu tenho isso

/web/var/www/clients/client1/web/parser/file1.json
/web/var/www/clients/client1/web/parser/file2.json
/web/var/www/clients/client1/web/parser/file3.json
/web/var/www/clients/client1/web/parser/file4.json

Como posso evitar que o wput carregue toda a árvore de diretórios no remoteserver?

    
por Aleksandar Đorđević 11.08.2017 / 13:51

1 resposta

2

O problema é que wput está sempre recriando a árvore de diretórios no destino

Você precisa usar a opção −−basename=path :

This option causes Wput to snip path from all input−files when they are connected to the URL. wput /usr/share/doc.tgz ftp://host/ would create ftp://host//usr/share/doc.tgz, whereas specifying /usr/share/ as basename will result in ftp://host/doc.tgz being created.

Fonte wput

Tente o seguinte comando:

wput --basename=/var/www/clients/client1/web/parser -u /var/www/clients/client1/web/parser/*.json ftp://username:password@remoteserver/web/
    
por 11.08.2017 / 14:03

Tags