Como FTP várias pastas para outro servidor usando mput no Unix?

15

Estou logado em um servidor (usando Putty). de lá eu estou conectando usando FTP para outro servidor. Eu quero copiar várias pastas do primeiro servidor para o segundo servidor usando mput.

Como:

ftp> mput folder1 folder2 folder3

Mas eu recebo "folder1: não um arquivo simples" ... e assim por diante. Cada uma dessas pastas tem subpastas, arquivos (alguns binários, outros não).

Como posso realizar o que eu quero sem compactar as coisas e depois transferir?

    
por 7ochem 04.12.2009 / 20:32

5 respostas

19

A linha de comando FTP é bem primitiva.

Você não pode enviar arquivos / pastas recursivamente para um site remoto.

Se você quiser recriar uma estrutura de diretórios no lado remoto da mesma maneira que o local, você precisará manualmente mkdir de cada caminho e usar mput * para enviar tudo nesse diretório para o lado remoto.

Duas opções para tornar isso mais fácil:

  1. Pare de usar o comando FTP primitivo (o ncftp é uma boa alternativa)

  2. Use tar para distribuir as pastas, enviar o arquivo e extrair do outro lado.

por 04.12.2009 / 20:39
10

Eu fiz um script bash:

#!/bin/bash
ftp_site=ftp.yoursite.net
username=my_user_name
passwd=my_password
remote=/path/to/remote/folder
folder=$1
cd /path/to/local/folder/$folder
pwd
ftp -in <<EOF
open $ftp_site
user $username $passwd
mkdir $remote/$folder
cd $remote/$folder
mput *
close
bye

e chamou-o com

find . -type d -exec ./recursive-ftp.sh {} \;

parece funcionar.

    
por 01.04.2010 / 21:43
8

Isto não é possível com o programa normal de ftp, já que o mput não usa recursão. Você poderia usar o ncftp e depois chamar 'mput -r folder'.

Felicidades, Fabian

    
por 04.12.2009 / 20:42
-1

powershell aberto cd para o diretório que você deseja enviar execute os seguintes comandos:

1. gci -r | % {if ($_.PSIsContainer) {$t = $((($_.fullname -split "\")[$(((pwd) -split "\").length)..200]) -join "/"); "mkdir ""$t""'r'nmput ""$t/*"" ""$t"""}} | sc .\mput_all
2. notepad .\mput_all

Cole os resultados na sua janela de ftp. Apreciar. Também não esqueça de adicionar mput * para transferir todos os arquivos do diretório base.

    
por 15.04.2014 / 02:17
-1

O Secure Copy scp tem um sinalizador -r recursivo que você pode achar útil.

    
por 20.08.2014 / 18:22

Tags