Posso enviar um arquivo para várias pastas de domínio no FTP?

2

Eu quero enviar (e eventualmente substituir) o mesmo arquivo index.php para muitas pastas de domínio. Existe alguma maneira de fazer isso de uma só vez ou um atalho?

Estou usando o Filezilla.

Obrigado

Editar:

Desde que eu sou realmente um novato em comandos de FTP, eu consegui encontrar um programa de ftp que me ajudaram a conseguir o que eu queria. É chamado de PyroFTP . Ele tinha um script de exemplo que eu poderia seguir e, eventualmente, acabei com algo parecido com isso e simplesmente o executei:

Connect "ftp.site.com", "username", "password"

LocalChDir "D:\folder"

RemoteChDir "public_html/domainfolder1"
Put "file.txt"

RemoteChDir "../domainfolder2"
Put "file.txt"

RemoteChDir "../domainfolder3"
Put "ifile.txt"

Disconnect 
    
por John 14.02.2012 / 16:27

2 respostas

2

Resposta do Windows

Isto é essencialmente fornecendo um script de trabalho para a resposta do music2myear, mas não para o FileZilla.

Eu costumava fazer isso usando um script em lote e um programa chamado NcFTP - O FileZilla provavelmente não suportava a linha de comando na época Eu estava usando para todo o resto. Deve ser muito fácil modificar para o FileZilla, se você quiser.

@FOR /F "eol=; tokens=1,2,3,4" %%A IN (ftpdetails.txt) DO call ncftpput -u %%A -p %%B %%C %%D %1
@pause

Isso levaria os destinos de um arquivo de texto ( ftpdetails.txt ) com o seguinte formato:

username password ip destinationfolder ; comment
username2 password2 ip2 destinationfolder2 ; comment2

Esta versão modificada abriria todos os destinos em paralelo, mas corre o risco de inundações:

@FOR /F "eol=; tokens=1,2,3,4" %%A IN (ftpdetails.txt) DO start ncftpput -u %%A -p %%B %%C %%D %1
@pause

O uso estava apenas arrastando o arquivo que eu queria carregar no topo do arquivo de lote. % 1 pode ser substituído por um nome de arquivo para upload, abrindo-o. Assim, os espaços quebrariam isso.

    
por 14.02.2012 / 16:59
2
filezilla.exe -u “c:\ftp\TestFile.txt” ftp://ftp_user:ftp_password@ftp_host_ip/folderpath -close

O Filezilla pode ser roteirizado. Se você estiver usando o Windows, o FTP interno também pode ser roteirizado.

Basta criar um script que mova o arquivo para todos os hosts desejados e executá-lo quando você atualizar o arquivo de índice.

Instruções de script

Quando você quer automatizar tarefas com programas que aceitam argumentos de linha de comando, o script é como você faz isso.

Você precisará das seguintes informações:

  • O caminho completo para o arquivo que você deseja enviar.
  • O nome de usuário, a senha, o endereço IP ou o nome do domínio do servidor e o caminho da pasta para os arquivos que precisam ser atualizados.

O "Site Remoto" é para se você tiver configurado um perfil de conexão para cada servidor no FileZilla. Você pode chamar o perfil de conexão pelo nome e evitar ter que digitar o nome de usuário, a senha, o servidor e o caminho de cada conexão. Olhando para a documentação, acho que entrar na informação é mais fácil e claro.

No FileZilla, crie um perfil de conexão para cada servidor para o qual você deseja enviar o arquivo.

Abra o bloco de notas. Digite o texto a seguir alterado para suas configurações e necessidades específicas. Salve o arquivo como (qualquer nome que você quiser) .bat.

filezilla.exe -u "<full path to the file on your computer>" ftp://username:password@server/path -close

Adicione quantas cópias dessa linha forem necessárias: uma para cada um dos arquivos que você está atualizando.

A resposta de Bob mostra como você pode usar loops e um arquivo de origem para automatizar grande parte desse processo. É muito mais difícil entender a sintaxe dos loops, mas sua solução faz a mesma coisa e pode ser mais fácil de gerenciar se você precisar atualizar um grande número de servidores.

    
por 14.02.2012 / 16:33

Tags