Posso carregar um arquivo em várias pastas de domínio no FTP?


2

Quero fazer upload (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, consegui encontrar um programa ftp que me ajudasse a alcançar o que queria. Chama-se PyroFTP . Ele tinha um exemplo de script que eu poderia seguir e, eventualmente, acabei com algo parecido com isto 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 

Respostas:


2

Resposta do Windows

Isso basicamente fornece 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 - FileZilla provavelmente não suportava a linha de comando no momento, porque eu o estava usando para todo o resto. Deve ser bastante 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

Seriam necessários 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 inundar:

@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 sobre o arquivo em lotes. % 1 pode ser substituído por um nome de arquivo para upload, abrindo-o. Como é, os espaços o quebrariam.


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

O Filezilla pode ser com script. Se você estiver usando o Windows, o FTP embutido também poderá ser script.

Basta montar um script que mova o arquivo para todos os hosts desejados e execute-o quando você atualizar o arquivo de índice.

Instruções de script

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

Você precisará das seguintes informações:

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

O "Site Remoto" é para se você configurou um perfil de conexão para cada servidor no FileZilla. Você pode chamar o perfil de conexão pelo nome e, assim, evitar a necessidade de inserir o nome de usuário, senha, servidor e caminho de cada conexão. Olhando para a documentação, acho que inserir as informações é mais fácil e mais claro.

No FileZilla, crie um perfil de conexão para cada servidor no qual você deseja fazer upload do 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 desta linha você precisar: 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 a solução dele faz a mesma coisa e pode ser mais fácil de gerenciar se você precisar atualizar um grande número de servidores.


Não tenho experiência em scripts. Como eu faço isso? Devo criar um arquivo de script (.vbs?) E colar o código acima lá? Também o que é "Site Remoto"?
John John

Não é VBS. Você deseja fazer isso no script em lote, que é um arquivo .bat. Os scripts em lote apenas agrupam os comandos do prompt de comando e seus argumentos. O VBS usa comandos VB, que não são os mesmos.
Music2myear 15/02/12

Atualmente, tenho filezilla.exe -u "d:\file.txt" ftp://username:passowrd@www.mysite.com/public_html/domainfolder -closeem um arquivo .bat. Mas como executar? Eu tentei pressionar enter, apenas um flash do prompt de comando aparece. Eu executei o prompt de comando e executei o arquivo e ele disse que 'filezilla' não é um comando reconhecido ... #
John

Coloque o caminho completo para o arquivo executável do filezilla. Aparentemente, o Windows não sabe onde procurar isso. Deve ser algo como "C: \ Arquivos de Programas \ FileZilla \ FileZilla.exe". Como existem espaços no caminho, você precisará colocá-lo entre aspas para que o processador de comandos reconheça que esse é um argumento.
Music2myear

Ele é executado no prompt de comando, mas diz "opção desconhecida -u". Em seguida, abre uma caixa de diálogo sobre os argumentos do filezilla, que é a mesma aqui: wiki.filezilla-project.org/Command-line_arguments_(Client) . A partir daí, não vejo exemplos de upload.
John John
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.