Existe a possibilidade de utilizar o comando find para encontrar arquivos em um servidor FTP? [RESOL

1. Existe a possibilidade de utilizar o comando find para encontrar arquivos em um servidor FTP? [RESOL

Mestre Kame
mlgrassi

(usa Debian)

Enviado em 20/04/2018 - 10:37h

Prezados,

Existe alguma forma de no shell do linux executar o comando find para para percorrer a árvore de diretórios do FTP e encontrar arquivos enquanto estiver estabelecida a conexão ?

Lembrando que NÃO estou falando da possibilidade de chamar comandos shell dentro do FTP que se faz utilizando exclamação (!). Ex. !pwd !find !grep
Não é isso que preciso.
O exclamação é utilizado para de dentro da conexão ftp executar comandos shell na máquina local.
E o que preciso é que o find (ou qualquer outro comando que exista no kernel linux que tenha propósito de busca recursiva) se conecte no ftp e busque lá os arquivos que eu precisar.

Fico no aguardo e desde já agradeço.


  


2. MELHOR RESPOSTA

Fernando
phoemur

(usa Debian)

Enviado em 20/04/2018 - 21:32h

Vou dar uma dica que eu sempre uso. Não sei se é do seu gosto...

Monte o servidor FTP em uma pasta local utilizando CurlFtpFS, daí você usa o find normal do bash que dá certo.
http://curlftpfs.sourceforge.net/

CurlFtpFS é baseado no FUSE (filesystem in userspace), que permite você montar sistemas de arquivos no userspace sem precisar de acesso ao kernel.
O servidor FTP vai estar montado na sua árvore de diretórios como se fosse local, daí você pode usar comandos normais do seu linux para acessá-lo

Um exemplo desse tipo de operação:


mkdir -p /mnt/tmp # cria dir temporario
curlftpfs ftp://ftp.slackware-brasil.com.br/slackware64-current/ /mnt/tmp # monta o FTP no dir temporario
find /mnt/tmp -type f -iname "UPGRADE.TXT" # acha o arquivo necessario usando o comando find

/mnt/tmp/UPGRADE.TXT

cp /mnt/tmp/UPGRADE.TXT /home/phoemur # copia -> faz o Download
fusermount -u /mnt/tmp # desmonta o diretorio


Eu particularmente acho esse comando muito útil.
Também existe o SSHFS ( https://github.com/libfuse/sshfs ) que serve pra você montar o sistemas de arquivos dessa mesma forma via SSH, que é bem parecido com o curlftpfs


3. Re: Existe a possibilidade de utilizar o comando find para encontrar arquivos em um servidor FTP? [RESOL

Rodrigo Albuquerque Serafim
raserafim

(usa Slackware)

Enviado em 20/04/2018 - 11:10h

Essa sua dúvida também é do meu interesse.

Já fiz dois outros tópicos perguntando algo semelhante: uma dizia respeito à como saber o tamanho de um arquivo utilizando-se do FTP em script; o outro, perguntava como saber o md5sum por FTP utilizando-se de script.

nas duas situações, porém, as respostas foram sempre sugestões por meio do SSH..



4. Re: Existe a possibilidade de utilizar o comando find para encontrar arquivos em um servidor FTP? [RESOL

Mestre Kame
mlgrassi

(usa Debian)

Enviado em 20/04/2018 - 11:29h

Pois é, já passei por situações semelhantes. Tu pergunta uma coisa específica e respondem outra coisa nada haver.

Se a pergunta é de FTP que tem haver o ssh? No meu caso por exemplo, o servidor onde roda o FTP não tem acesso ssh, pois a política de segurança me permite apenas acesso a porta 21 então... 1+1=2


5. Re: Existe a possibilidade de utilizar o comando find para encontrar arquivos em um servidor FTP? [RESOL

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 20/04/2018 - 11:49h

viram isso aqui já ???

https://serverfault.com/questions/28568/using-the-find-command-on-the-ftp-server




------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



6. Re: Existe a possibilidade de utilizar o comando find para encontrar arquivos em um servidor FTP? [RESOL

Mestre Kame
mlgrassi

(usa Debian)

Enviado em 20/04/2018 - 13:41h

Beleza, ajudou ! O find interno do lftp é bem precário (pois não aceita opções como -type -name ) mas já é alguma coisa.

Obrigado.


7. Re: Existe a possibilidade de utilizar o comando find para encontrar arquivos em um servidor FTP? [RESOL

Mestre Kame
mlgrassi

(usa Debian)

Enviado em 24/04/2018 - 17:54h

phoemur escreveu:

Vou dar uma dica que eu sempre uso. Não sei se é do seu gosto...

Monte o servidor FTP em uma pasta local utilizando CurlFtpFS, daí você usa o find normal do bash que dá certo.
http://curlftpfs.sourceforge.net/

CurlFtpFS é baseado no FUSE (filesystem in userspace), que permite você montar sistemas de arquivos no userspace sem precisar de acesso ao kernel.
O servidor FTP vai estar montado na sua árvore de diretórios como se fosse local, daí você pode usar comandos normais do seu linux para acessá-lo

Um exemplo desse tipo de operação:


mkdir -p /mnt/tmp # cria dir temporario
curlftpfs ftp://ftp.slackware-brasil.com.br/slackware64-current/ /mnt/tmp # monta o FTP no dir temporario.
find /mnt/tmp -type f -iname "UPGRADE.TXT" # acha o arquivo necessario usando o comando find.

/mnt/tmp/UPGRADE.TXT

cp /mnt/tmp/UPGRADE.TXT /home/phoemur # copia -> faz o Download
fusermount -u /mnt/tmp # desmonta o diretorio


Eu particularmente acho esse comando muito útil.
Também existe o SSHFS ( https://github.com/libfuse/sshfs ) que serve pra você montar o sistemas de arquivos dessa mesma forma via SSH, que é bem parecido com o curlftpfs


Amigo, eu tenho o Debian 9 de 32bits (x86). Instalei o curlftpfs via apt-get install. Por default instala a versão 0.9.2-9+b1
Eu montei o ftp remoto na minha máquina com o debug ativado para acompanhar detalhadamente a montagem e a mesma foi bem sucedida no meu diretório local. Porém ao tentar listar algum diretório ou arquivo retorna Total 0.
Ou seja, não funciona a listagem dos arquivos quiçá criar ou deletar arquivos. Já verifiquei as permissões e não sei o que fazer.

Você passou por isso já?







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts