Transferência de arquivos agendada entre servidores

2

Estou interessado em agendar a cópia e o envio de arquivos grandes pela Internet de um servidor para outro. Os servidores não estão na mesma rede.

Eu não sei sobre todas as minhas opções disponíveis para resolver este problema, mas alguns protocolos / especificações com os quais eu estou vagamente familiar e que podem ser úteis para esta tarefa são (1) FTP e (2) bittorrent.

Eu usei o Filezilla antes para enviar manualmente arquivos grandes entre grupos de servidores. Não há recursos de agendamento desse aplicativo FTP específico, portanto, não será suficiente para atender ao meu requisito de agendamento. Idealmente, gostaria de realizar essa tarefa usando algo mais programático (não baseado em GUI) e não proprietário (como um aplicativo para pagamento).

Já estou usando scripts Python que são executados em uma base programada que executam outras operações em um grupo de servidores. Os servidores estão executando o Windows e os scripts são automatizados por meio do Windows Task Scheduler . Se eu pudesse enviar arquivos via FTP usando Python, isso seria ideal para mim especificamente porque eu poderia simplesmente jogar o código FTP no que eu já trabalhei e agendei. No entanto, tentei brincar com o “ftplib” do Python e não conseguia fazer cara ou coroa dele. Então, antes de tentar seguir esse caminho, queria postar aqui primeiro.

Não tenho certeza se devo seguir uma abordagem baseada em FTP, então gostaria de algumas recomendações sobre isso. Além disso, eu realmente não me importo com a linguagem de programação que eu uso para esta tarefa, embora prefira um pouco o Python, já que parece uma escolha natural, já que estou lidando com scripts do lado do servidor. Eu também gostaria de recomendações sobre isso.

Como esta é minha primeira postagem de falha de servidor, você provavelmente pode imaginar que eu não entendo mais sobre muitos dos tópicos mencionados acima. Agradecemos antecipadamente.

    
por nairware 13.07.2012 / 20:32

3 respostas

8

Eu começaria dizendo que você iria querer evitar o FTP e o Bit Torrent. Bit Torrent é uma ótima tecnologia quando muitas pessoas têm o arquivo que você gostaria e o download pode ser distribuído entre todos eles (download rápido de um ISO do Linux, por exemplo). Eu não recomendaria isso para um site simples A para a transferência do site B.

O FTP é amplamente considerado desatualizado porque é inseguro. Todas as informações são transmitidas em texto simples e facilmente interceptadas por partes maliciosas que podem estar ouvindo seu tráfego. Você vai querer completar esta transferência através de um canal seguro.

Para isso, você tem algumas opções para criptografar sua transmissão.

  • túneis SSH (scp / sftp)
  • VPN

Eu recomendaria o seguinte

  • Faça o download e instale o WinSCP em ambos os nós
  • Revise a Scripting Documentation e escreva um script para copiar com segurança os arquivos do ponto A para o ponto B. Você Observe que esse script também pode ser facilmente agendado com o Agendador do Windows.

Essa é provavelmente a maneira mais fácil que eu poderia recomendar. Sua outra opção seria estabelecer uma VPN com a máquina remota e simplesmente escrever um script de uma linha que copiaria o arquivo do servidor local para o servidor remoto.

Bem-vindo ao SF.

    
por 13.07.2012 / 20:41
1

Basta usar qualquer cliente FTP do Windows (ou melhor, FTPS ou SFTP).

Por exemplo, como a resposta aceita já sugere, o WinSCP suporta scripts e FTP / FTPS / SFTP.

Veja automatizar as transferências de arquivos para o servidor FTP .

Um arquivo de lote simples para fazer upload de arquivos com o WinSCP se parece com:

winscp.com /log=c:\path\ftp.log /command ^
    "open ftp://user:[email protected]/" ^
    "put c:\local\path\* /remote/path/" ^
    "exit"

Você pode ter o arquivo em lote gerado pela GUI do WinSCP para você.

Para agendamento, basta usar o Agendador do Windows.
Para obter detalhes, consulte agendamento de transferências de arquivos para o servidor FTP .

(eu sou o autor do WinSCP)

    
por 12.08.2017 / 19:49
0

Para uma solução baseada em Windows, recomendo pesquisar no TeraCopy ( link ). Ele funciona significativamente mais rápido do que a cópia do Windows, dá suporte à pausa / retomada e tenta novamente se a conexão cair.

Existem parâmetros de linha de comando disponíveis para que você possa fazer o script das transferências via arquivo de lote ou Powershell e depois agendar através do Agendador de Tarefas do Windows.

Eu também não recomendo o FTP. Não é compatível com firewall, a retomada de um upload pode exigir configuração especial no servidor FTP.

    
por 13.07.2012 / 21:01