1. Introdução
2. Sintaxe e parâmetros do comando FTP do DriveHQ
3. Criando arquivos de script FTP
3.1 Um exemplo de arquivo de script FTP
3.2 Arquivo de script FTP com parâmetros
4. Automatize a transferência de arquivos com o Agendador de Tarefas do Windows
5. Sincronização automática de pastas usando o DriveHQ CommandFTP
6. Referências de comandos FTP
6.1 Comandos FTP padrão
6.2 Comandos FTP avançados do DriveHQ
1. Introdução
O DriveHQ CommandFTP é um poderoso cliente FTP e SFTP de linha de comando, projetado para substituir o cliente FTP do Windows. Ele oferece suporte a scripts FTP e é compatível com qualquer servidor FTP/SFTP padrão.
FTP/SFTP é extremamente popular para a transferência de arquivos/pastas grandes pela Internet. O cliente FTP de linha de comando é amplamente utilizado na transferência automatizada de arquivos com scripts FTP. Muitas pessoas usam o cliente FTP de linha de comando integrado no Windows. No entanto, o cliente FTP integrado apresenta algumas desvantagens importantes:
- 1. Ele suporta apenas FTP em modo ativo, que geralmente é bloqueado por roteadores, firewalls ou softwares de segurança.
- 2. Suporta apenas FTP simples, sem criptografia de dados.
- 3. Não suporta retomada/tentativa automática.
O DriveHQ CommandFTP foi projetado para substituir o cliente FTP padrão do Windows. Ele oferece as seguintes vantagens:
- 1. Suporta FTP nos modos ativo e passivo.
- 2. Ele suporta FTP sobre SSL (FTPS e FTPES) e SFTP.
- 3. Suporta retomada/tentativa automática.
- 4. Suporta compressão e criptografia de dados.
- 5. Permite o download e o upload de pastas.
- 6. Suporta o espelhamento/sincronização de pastas.
- 7. Suporta o registro de eventos para auditoria e resolução de problemas.
- 8. Ele pode enviar relatórios por e-mail após uma operação.
- 9. Ele suporta scripts FTP mais robustos.
Em muitos casos, o DriveHQ CommandFTP pode substituir diretamente o cliente FTP do Windows. Eles compartilham sintaxe e parâmetros de linha de comando semelhantes. No entanto, o DriveHQ CommandFTP oferece muito mais recursos. Ele pode lidar com tarefas complexas de transferência de arquivos com apenas um comando. Com seu suporte para SFTP, você pode escrever um script FTP e executá-lo em um servidor SFTP.
2. Sintaxe e parâmetros do comando FTP do DriveHQ
Sintaxe
cmdftp FTP_SERVER [-u:USERNAME] [-p:PASSWORD] [-i] [-A] [-k:"PRIVATE_KEY_FILE"] [-s:"FTP_SCRIPT_FILE"] [-d:"LOG_FILE"] [-m:"SOURCE_FTP_SERVER", "DESTINATION_FTP_SERVER"] [CMDOPTIONS]
cmdftp [-s:"FTP_SCRIPT_FILE"] [-d:"logfile"]
Parâmetros
| Parâmetro |
Descrição |
| FTP_SERVER |
O nome ou endereço IP do servidor FTP/SFTP, como ftp.drivehq.com, ftp://ftp.drivehq.com ou ftps://ftp.drivehq.com. É obrigatório, a menos que os parâmetros incluam -s:FTP_SCRIPT_FILE
|
|
| -u:USERNAME |
Especifica o nome de usuário da conta FTP/SFTP. |
|
| -p:PASSWORD |
Especifica a senha da conta FTP/SFTP. |
|
| -k:"PRIVATE_KEY_FILE" |
Opcional. Especifica o caminho do arquivo da chave privada SFTP. |
|
| -s:"FTP_SCRIPT_FILE" |
Opcional. Especifica o caminho do arquivo de script FTP. Se este parâmetro for fornecido, os outros parâmetros serão ignorados, exceto a opção "-d:LOG_FILE". |
Opções de comando
| /xo[:time] |
Excluir arquivos antigos |
|
| /xn[:time] |
Excluir arquivos mais recentes |
|
| /xf:filenames |
Excluir arquivos; os arquivos são separados por vírgula |
|
| /xd:foldernames |
Excluir pastas; as pastas são separadas por vírgula |
Opções de registro
| -d:"LogFileName" |
Especifica o caminho do arquivo de log. Se usar "-d" sem um nome de arquivo de log, o log será exibido na janela do console. |
3. Criando arquivos de script FTP
Os scripts FTP são muito populares entre administradores de TI e integradores de sistemas. Eles são amplamente utilizados em backups automatizados de dados e transferência de arquivos. Os scripts FTP permitem criar um arquivo de texto contendo uma lista de comandos e entradas FTP. Em seguida, esses comandos podem ser executados sequencialmente em uma única execução. Como um arquivo de script pode conter muitos comandos FTP, ele pode realizar tarefas de transferência de arquivos bastante complexas.
A criação de scripts FTP com o cliente FTP padrão do Windows é muito limitada: suporta apenas FTP simples, que não é seguro; e apenas FTP em modo ativo, que frequentemente é bloqueado por roteadores/firewalls. O DriveHQ CommandFTP suporta a maioria dos recursos do cliente FTP do Windows; além disso, oferece muitos recursos não disponíveis no cliente FTP do Windows. O DriveHQ CommandFTP é compatível com todos os servidores FTP padrão.
Para escrever um arquivo de script FTP, você pode executar os comandos FTP no modo interativo primeiro. Abra uma janela de comando e digite os seguintes comandos, conforme mostrado na captura de tela abaixo:
Esses comandos geralmente incluem: conectar-se a um servidor FTP, fazer login no servidor, listar arquivos/pastas em um diretório, alterar o diretório atual, enviar/baixar/excluir arquivos e assim por diante. Se você usa FTP apenas ocasionalmente, o método acima funciona perfeitamente. No entanto, se você precisa transferir/fazer backup/excluir arquivos repetidamente, por exemplo, como parte de uma tarefa de backup agendada ou EDI (Intercâmbio Eletrônico de Dados) com outra empresa, você pode facilmente escrever um arquivo de script que pode ser reutilizado diversas vezes. Combinado com o Agendador de Tarefas do sistema operacional, você pode automatizar o processo de negócios.
Um exemplo de arquivo de script FTP
Um arquivo de script FTP possui os mesmos comandos/entradas usados em uma sessão FTP interativa. Basicamente, você só precisa criar um arquivo de texto em um editor de texto (por exemplo, o Bloco de Notas) e digitar os comandos e entradas como faria no modo interativo. O CommandFTP do DriveHQ tem uma interface muito semelhante à do cliente FTP do Windows. Os comandos a seguir podem ser executados tanto no cliente FTP do Windows quanto no CommandFTP do DriveHQ. Para usar o CommandFTP, digite cmdftp em vez de ftp. Exemplo::
C:\>ftp
ftp> open ftp.drivehq.com
Connected to ftp.drivehq.com.
220 Welcome to the most popular FTP hosting service! Save on hardware, software,
hosting and admin. Share files/folders with read-write permission. Visit http:/
/www.drivehq.com/ftp/;
User (ftp.drivehq.com:(none)): dhqdemo
331 User name ok, need password.
Password: xxxxxxxxx
230 User dhqdemo logged on.
ftp> cd test
250 CWD command successful. "/test" is current directory.
ftp> delete orders.xml.bak
550 File not found.
ftp> rename orders.xml orders.xml.bak
350 File exists, ready for destination name.
250 File "/test/orders.xml" renamed successfully.
ftp> put c:\test\orders.xml
200 Port command successful.
150 Opening BINARY mode data connection for file transfer.
226 Transfer complete
ftp: 41 bytes sent in 0.06Seconds 0.65Kbytes/sec.
ftp> quit
221 Bye
C:\>
Como você pode ver, esses comandos irão:
- Faça login em um servidor FTP: ftp.drivehq.com;
- Digite o nome de usuário e a senha;
- Mude para um diretório local "c:\test";
- Mude para um diretório FTP "/test";
- Exclua o arquivo "Orders.xml.bak" (se existir) no servidor FTP;
- Renomeie o arquivo "Orders.xml" (se existir) para "Orders.xml.bak" no servidor FTP;
- Faça o upload do arquivo local "Orders.xml" para o servidor FTP;
- Sair
Você pode executá-los em uma janela de comando para depurar o código antes de salvá-los em um arquivo de script. O conteúdo do script será o seguinte:
open ftp.drivehq.com
USERNAME
xxxxxxxxx
cd test
delete orders.xml.bak
rename orders.xml orders.xml.bak
put c:\test\orders.xml
quit
O script FTP acima pode ser executado diariamente para transferir automaticamente as informações de novos pedidos para o servidor FTP. Ele enviará o arquivo "Orders.xml" mais recente para o servidor FTP; antes de enviar o arquivo, ele renomeará (fará backup) do arquivo anterior.
Para executar o script FTP, basta executar o comando FTP com a opção -s. Com o cliente FTP do Windows, você pode usar:
ftp -s:ftpscript.txt
Com o cliente CommandFTP da DriveHQ, você pode usar
cmdftp -s:ftpscript.txt
Scripts FTP com parâmetros
O script FTP acima é estático. Ele pode ser executado repetidamente, mas não é muito flexível. Por exemplo, se você precisar transferir dados para vários clientes, provavelmente desejará usar pastas diferentes. Para reutilizar o mesmo script FTP, ele precisa suportar parâmetros adicionais. Existem duas soluções:
(1) Use um arquivo de script em lote para criar dinamicamente o arquivo de script FTP. Os scripts em lote do Windows podem receber parâmetros de linha de comando. Se você usa o cliente FTP do Windows, esta é a única solução.
(2) O DriveHQ CommandFTP suporta parâmetros adicionais.
Com o primeiro método, você precisa criar um arquivo em lote, por exemplo, test.bat. Salve o arquivo na pasta C:\test. Você pode executar o arquivo em lote digitando o comando:
c:\test\test.bat PARAM1 PARAM2 ...
O arquivo test.bat será semelhante a este:
@echo off
echo open ftp.drivehq.com> ftpscript.txt
echo USERNAME>> ftpscript.txt
echo PASSWORD>> ftpscript.txt
echo cd %1>> ftpscript.txt
echo delete %2.bak>> ftpscript.txt
echo rename %2 %2.bak>> ftpscript.txt
echo put c:\%1\%2>> ftpscript.txt
echo quit>> ftpscript.txt
Dessa forma, você pode passar os argumentos do arquivo em lote para o arquivo de script FTP. O mesmo script em lote pode ser reutilizado para diferentes empresas, por exemplo.:
c:\test\test.bat c:\OrdersOfCompanyA ordersOfCompanyA.xml
c:\test\test.bat c:\OrdersOfCompanyB ordersOfCompanyB.xml
Com o DriveHQ CommandFTP, você pode executar um script FTP com argumentos adicionais. Dessa forma, você não precisa criar um arquivo de script em lote. Basta executar o script FTP com o seguinte comando:
cmdftp -s:ftpscript.txt argument1 argument2 argument3 ...
O arquivo de script FTP precisa ser ligeiramente modificado da seguinte forma:
# %1 is like "test", %2 is like "orders.xml"
# This file is saved as c:\temp\ftpscript2.txt
# to run it, use:
# cmdftp -s:c:\temp\ftpscript2.txt -%1:test -%2:orders.xml
open ftp.drivehq.com
USERNAME
PASSWORD
cd /%1
delete /%1/%2.bak
rename /%1/%2 /%1/%2.bak
put c:\%1\%2
quit
No arquivo de script acima, o nome da pasta foi substituído por %1 e o nome do arquivo por %2. Para executar o script FTP, você deve fornecer esses parâmetros como argumentos de linha de comando.
cmdftp -s:c:\temp\ftpscript2.txt -%1:test -%2:orders.xml
Quando o DriveHQ CommandFTP executar o arquivo de script, ele substituirá %1 por "test" e %2 por "orders.xml".
4. Automatize a transferência de arquivos com o Agendador de Tarefas do Windows
Seja usando um arquivo em lote ou diretamente o DriveHQ CommandFTP, você pode agendar a transferência de arquivos no Agendador de Tarefas do Windows. É possível agendar a tarefa para ser executada diariamente, semanalmente ou mensalmente. Nas Configurações Avançadas, você pode até mesmo configurar a tarefa para ser executada a cada poucas horas ou minutos, definindo também o horário de início. Para abrir o Agendador de Tarefas, digite "Agendador de Tarefas" na caixa de pesquisa (veja a captura de tela abaixo):
Clique em Agendador de Tarefas, isso iniciará o Agendador de Tarefas do Windows.
Para criar uma tarefa, clique em "Criar tarefa básica".
Insira o nome e a descrição da tarefa e clique em Avançar.
Selecione a programação da tarefa. Você pode escolher entre diária, semanal e mensal. Se desejar executar a tarefa a cada hora, poderá fazê-lo posteriormente nas Configurações Avançadas. Clique em Avançar para definir a Ação.
Na página Ação, selecione "Iniciar um programa" e clique em Avançar.
Navegue até a pasta e selecione DriveHQ CommandFTP (cmdftp.exe) como o programa. Adicione os parâmetros da linha de comando na caixa de texto "Adicionar argumentos". O campo "Iniciar em" é opcional. Você pode defini-lo para a mesma pasta do arquivo EXE. Clique em Avançar para concluir a criação da tarefa.
Para acessar as Configurações Avançadas, clique em "Biblioteca de Agendamento de Tarefas". Você verá uma lista de tarefas agendadas. Clique duas vezes na tarefa "Carregar Pedidos" para editar as configurações da tarefa.
Observe que, por padrão, a tarefa será executada somente quando o usuário estiver conectado. Você pode alterar essa configuração para executar a tarefa mesmo quando o usuário não estiver conectado.
5. Sincronização automática de pastas usando o DriveHQ CommandFTP
O DriveHQ CommandFTP suporta espelhamento de pastas. Sincronizar uma pasta local com uma pasta FTP é extremamente fácil. Basta usar o seguinte comando:
cmdftp FTP_SERVER -u:username -p:password -m:"LOCAL_FOLDER|FTP_FOLDER"
Utilizando o Agendador de Tarefas do Windows, você pode executar este comando para sincronizar as duas pastas periodicamente.
6. Referências de comandos FTP
Após fazer login em um servidor FTP, você pode enviar comandos FTP para o servidor. O cliente FTP do Windows suporta os seguintes comandos.
Observe que esses comandos não são os mesmos que Comandos FTP definidos no Protocolo FTP.
Cada comando do protocolo FTP geralmente lida apenas com uma tarefa simples. Um comando FTP em um cliente FTP do Windows pode usar vários comandos do protocolo FTP.
O DriveHQ CommandFTP é semelhante ao cliente FTP do Windows. Ele suporta comandos e sintaxe similares. Além disso, também oferece suporte a alguns comandos FTP avançados específicos do DriveHQ, como comandos para copiar, mover, enviar, baixar ou excluir pastas.
6.1 Comandos do cliente FTP do Windows
O cliente FTP do Windows (ftp.exe) suporta os seguintes comandos FTP:
| Comandos FTP |
Descrição |
| ! |
Este comando alterna entre o sistema operacional local e o servidor FTP. Ao fazer login em um servidor FTP, o padrão é usar o servidor FTP. Se você quiser executar um comando localmente, geralmente pode usar !CMD_NAME, e.g. !dir, !mkdir, etc. |
| ? |
Exibe as informações de ajuda. |
| append |
Anexar a um arquivo. |
| ascii |
Defina o modo de transferência ASCII. |
| bell |
Ative a opção "Emitir sinal sonoro ao concluir o comando". |
| binary |
Defina o modo de transferência binária. |
| bye |
Desconecte a sessão FTP e saia. |
| cd |
Alterar diretório. |
| close |
Encerre a sessão FTP. |
| delete |
Exclui um arquivo. |
| debug |
Ative ou desative o modo de depuração. |
| dir |
Lista os arquivos e subpastas em um diretório.
|
| disconnect |
Desconecte a sessão FTP. |
| get |
Obter arquivo do servidor FTP remoto. |
| glob |
Ative ou desative a classificação de caracteres curinga. Quando desativada, os caracteres curinga em nomes de arquivos (no colocar e pegar comandos) são interpretados literalmente. |
| hash |
Alternar a impressão de "#" para cada buffer transferido. |
| help |
Exiba as informações de ajuda; geralmente use help NOME_DO_COMANDO. |
| lcd |
Exibe o diretório de trabalho local atual se digitado sozinho; caso contrário, altera o diretório de trabalho local. |
| literal |
Enviar comando arbitrário para o servidor FTP conectado, com a expectativa de uma resposta de uma única linha. |
| ls |
Liste os arquivos na pasta FTP. |
| mdelete |
Excluir vários arquivos no servidor FTP. |
| mdir |
Lista os arquivos/subpastas de vários diretórios FTP. |
| mget |
Baixe vários arquivos do servidor FTP para sua pasta de trabalho local. |
| mkdir |
Crie um novo diretório. |
| mls |
Listar o conteúdo de vários diretórios FTP. |
| mput |
Enviar vários arquivos locais para o servidor FTP. |
| open |
Conecte-se a um servidor FTP. |
| prompt |
Ativa ou desativa a exibição de prompts interativos em vários comandos. |
| put |
Faça o upload de um arquivo para o servidor FTP. |
| pwd |
Imprimir diretório de trabalho no servidor FTP. |
| quit |
Desconecte-se do servidor FTP e saia. |
| quote |
O mesmo que o comando literal (Enviar comando ftp arbitrário). |
| recv |
Baixar/receber um arquivo do servidor FTP. |
| remotehelp |
Obtenha ajuda de um servidor remoto. |
| rename |
Renomear um arquivo no servidor FTP. |
| rmdir |
Remover um diretório no servidor FTP. |
| send |
Envie um único arquivo. |
| status |
Mostra o estado das opções atuais. |
| trace |
Ativar/desativar rastreamento de pacotes. |
| Type |
Defina o tipo de transferência de arquivos. |
| user |
Enviar informações do novo usuário (nome de usuário). |
| verbose |
Ative ou desative o modo detalhado. |
6.2 Comandos FTP avançados do DriveHQ
O DriveHQ CommandFTP suporta alguns comandos FTP mais avançados:
| Comandos FTP |
Descrição |
| download |
Baixe uma pasta ou um arquivo.
Sintaxe: Download [FTP-FILEorFOLDER-PATH] [LOCAL-FILEorFOLDER-PATH]
|
| upload |
Faça o upload de uma pasta ou arquivo.
Sintaxe: Upload [LOCAL-FILEorFOLDER-PATH] [FTP-FILEorFOLDER-PATH]
|
| mirror |
Espelhar uma pasta local e uma pasta FTP.
Sintaxe: MIRROR [LOCAL-FOLDER-PATH] [FTP-FOLDER-PATH]
|
| deleteoldfiles |
Na pasta especificada, exclua os arquivos com mais de x dias.
Sintaxe: deleteoldfiles [FTP-PATH] /xo:[time]
|