1. Introducción
2. Sintaxis y parámetros de DriveHQ CommandFTP
3. Creación de archivos de script FTP
3.1 Ejemplo de archivo de script FTP
3.2 Archivo de script FTP con parámetros
4. Automatice la transferencia de archivos con el Programador de tareas de Windows
5. Sincronización automática de carpetas mediante DriveHQ CommandFTP
6. Referencias de comandos FTP
6.1 Comandos FTP estándar
6.2 Comandos FTP avanzados de DriveHQ
1. Introducción
DriveHQ CommandFTP es un potente cliente FTP y SFTP de línea de comandos diseñado para reemplazar el cliente FTP de Windows. Admite scripts FTP y es compatible con cualquier servidor FTP/SFTP estándar.
FTP/SFTP es extremadamente popular para transferir archivos/carpetas grandes a través de Internet. El cliente FTP de línea de comandos se usa ampliamente para la transferencia automatizada de archivos mediante scripts FTP. Mucha gente usa el cliente FTP de línea de comandos integrado en Windows. Sin embargo, este cliente FTP integrado tiene algunas desventajas importantes:
- 1. Solo admite FTP en modo activo, que suele estar bloqueado por routers, cortafuegos o software de seguridad.
- 2. Solo admite FTP estándar sin cifrado de datos.
- 3. No admite la reanudación/reintentación automática.
DriveHQ CommandFTP está diseñado para reemplazar el cliente FTP predeterminado de Windows. Tiene las siguientes ventajas:
- 1. Admite FTP en modo activo y pasivo.
- 2. Es compatible con FTP sobre SSL (FTPS y FTPES) y SFTP.
- 3. Admite la reanudación/reintentación automática.
- 4. Admite compresión y cifrado de datos.
- 5. Permite descargar y subir carpetas.
- 6. Admite la duplicación/sincronización de carpetas.
- 7. Admite el registro de eventos para auditorías y resolución de problemas.
- 8. Puede enviar informes por correo electrónico después de una operación.
- 9. Admite scripts FTP más potentes.
En muchos casos, DriveHQ CommandFTP puede reemplazar directamente al cliente FTP de Windows. Comparten una sintaxis y parámetros de línea de comandos similares. Sin embargo, DriveHQ CommandFTP ofrece muchas más funciones. Puede gestionar tareas complejas de transferencia de archivos con un solo comando. Gracias a su compatibilidad con SFTP, puede escribir un script FTP y ejecutarlo con un servidor SFTP.
2. Sintaxis y parámetros de DriveHQ CommandFTP
Sintaxis
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 |
Descripción |
| FTP_SERVER |
El nombre del servidor FTP/SFTP o la dirección IP, como ftp.drivehq.com, ftp://ftp.drivehq.com o ftps://ftp.drivehq.com. Es obligatorio a menos que los parámetros incluyan -s:FTP_SCRIPT_FILE
|
|
| -u:USERNAME |
Especifica el nombre de usuario de la cuenta FTP/SFTP. |
|
| -p:PASSWORD |
Especifica la contraseña de la cuenta FTP/SFTP. |
|
| -k:"PRIVATE_KEY_FILE" |
Opcional. Especifica la ruta del archivo de clave privada SFTP. |
|
| -s:"FTP_SCRIPT_FILE" |
Opcional. Especifica la ruta del archivo de script FTP. Si se proporciona este parámetro, se ignoran los demás, excepto la opción "-d:LOG_FILE". |
Opciones de comando
| /xo[:time] |
Excluir archivos antiguos |
|
| /xn[:time] |
Excluir archivos más recientes |
|
| /xf:filenames |
Excluir archivos, los archivos están separados por comas |
|
| /xd:foldernames |
Excluir carpetas; las carpetas se separan por comas |
Opciones de registro
| -d:"LogFileName" |
Especifica la ruta del archivo de registro. Si se utiliza "-d" sin especificar un nombre de archivo de registro, este se mostrará en la ventana de la consola. |
3. Creación de archivos de script FTP
Los scripts FTP son muy populares entre los administradores de TI y los integradores de sistemas. Se utilizan ampliamente para la copia de seguridad automatizada de datos y la transferencia de archivos. Los scripts FTP permiten crear un archivo de texto con una lista de comandos y parámetros FTP. Estos comandos se pueden ejecutar secuencialmente en una sola operación. Dado que un archivo de script puede contener numerosos comandos FTP, permite realizar tareas de transferencia de archivos muy complejas.
La ejecución de scripts FTP con el cliente FTP predeterminado de Windows es muy limitada: solo admite FTP estándar, que no es seguro; y solo admite FTP en modo activo, que suele estar bloqueado por routers y firewalls. DriveHQ CommandFTP admite la mayoría de las funciones del cliente FTP de Windows; además, admite muchas funciones que no están disponibles en dicho cliente. DriveHQ CommandFTP es compatible con todos los servidores FTP estándar.
Para escribir un archivo de script FTP, primero puede ejecutar los comandos FTP en modo interactivo. Abra una ventana de comandos y escriba los siguientes comandos, como se muestra en la captura de pantalla a continuación:
Estos comandos suelen incluir: conectarse a un servidor FTP, iniciar sesión en el servidor, listar archivos/carpetas en un directorio, cambiar de directorio, cargar/descargar/eliminar archivos, etc. Si solo usa FTP ocasionalmente, el método anterior funciona perfectamente. Sin embargo, si necesita transferir/hacer copias de seguridad/eliminar archivos repetidamente, por ejemplo, como parte de una tarea de copia de seguridad programada o EDI (Intercambio Electrónico de Datos) con otra empresa, puede crear fácilmente un script que se pueda reutilizar una y otra vez. Junto con el Programador de tareas del sistema operativo, puede automatizar el proceso.
Ejemplo de archivo de script FTP
Un archivo de script FTP tiene los mismos comandos/entradas que se usan en una sesión FTP interactiva. Básicamente, solo necesita crear un archivo de texto en un editor de texto (por ejemplo, el Bloc de notas) e ingresar los comandos y entradas como lo haría en el modo interactivo. CommandFTP de DriveHQ tiene una interfaz muy similar a la del cliente FTP de Windows. Los siguientes comandos se pueden ejecutar tanto en el cliente FTP de Windows como en CommandFTP de DriveHQ. Para usar CommandFTP, escriba cmdftp en lugar de ftp. Por ejemplo::
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 puedes ver, estos comandos serán:
- Inicie sesión en un servidor FTP: ftp.drivehq.com;
- Introduzca el nombre de usuario y la contraseña;
- Cambie al directorio local "c:\test";
- Cambie al directorio FTP "/test";
- Elimine el archivo "Orders.xml.bak" (si existe) en el servidor FTP;
- Cambie el nombre del archivo "Orders.xml" (si existe) a "Orders.xml.bak" en el servidor FTP;
- Sube el archivo local "Orders.xml" al servidor FTP;
- Salir
Puedes ejecutarlos en una ventana de comandos para depurar el código antes de guardarlo en un archivo de script. El contenido del script será el siguiente:
open ftp.drivehq.com
USERNAME
xxxxxxxxx
cd test
delete orders.xml.bak
rename orders.xml orders.xml.bak
put c:\test\orders.xml
quit
El script FTP anterior se puede ejecutar diariamente para transferir automáticamente la información de los nuevos pedidos al servidor FTP. Subirá el archivo "Orders.xml" más reciente al servidor FTP; antes de subirlo, renombrará (hará una copia de seguridad) del archivo anterior.
Para ejecutar el script FTP, simplemente ejecute el comando FTP con la opción -s. Con el cliente FTP de Windows, puede usar:
ftp -s:ftpscript.txt
Con el cliente DriveHQ CommandFTP, puede utilizar
cmdftp -s:ftpscript.txt
Scripts FTP con parámetros
El script FTP anterior es estático. Se puede ejecutar repetidamente, pero no es muy flexible. Por ejemplo, si necesita transferir datos para varios clientes, probablemente querrá usar carpetas diferentes. Para reutilizar el mismo script FTP, necesita admitir parámetros adicionales. Hay dos soluciones:
(1) Utilice un archivo de script por lotes para crear dinámicamente el archivo de script FTP. Los scripts por lotes de Windows pueden aceptar parámetros de línea de comandos. Si utiliza un cliente FTP de Windows, esta es la única solución.
(2) DriveHQ CommandFTP admite parámetros adicionales.
Con el primer método, necesitas crear un archivo por lotes, por ejemplo test.bat. Guarda el archivo en la carpeta C:\test. Puedes ejecutar el archivo por lotes escribiendo en:
c:\test\test.bat PARAM1 PARAM2 ...
El archivo test.bat será como:
@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
De esta forma, puede pasar los argumentos del archivo por lotes al archivo de script FTP. El mismo script por lotes se puede reutilizar para diferentes empresas, por ejemplo:
c:\test\test.bat c:\OrdersOfCompanyA ordersOfCompanyA.xml
c:\test\test.bat c:\OrdersOfCompanyB ordersOfCompanyB.xml
Con DriveHQ CommandFTP, puede ejecutar un script FTP con argumentos adicionales. De esta forma, no necesita crear un archivo de script por lotes. Simplemente puede ejecutar el script FTP con el siguiente comando:
cmdftp -s:ftpscript.txt argument1 argument2 argument3 ...
El archivo de script FTP debe modificarse ligeramente de la siguiente manera:
# %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
En el archivo de script anterior, el nombre de la carpeta se reemplaza por %1 y el nombre del archivo por %2. Para ejecutar el script FTP, debe proporcionar estos parámetros como argumentos de línea de comandos.
cmdftp -s:c:\temp\ftpscript2.txt -%1:test -%2:orders.xml
Cuando DriveHQ CommandFTP ejecute el archivo de script, reemplazará %1 con "test" y %2 con "orders.xml".
4. Automatice la transferencia de archivos con el Programador de tareas de Windows
Ya sea que utilice un archivo por lotes o directamente DriveHQ CommandFTP, puede programar la transferencia de archivos en el Programador de tareas de Windows. Puede programar la tarea para que se ejecute diaria, semanal o mensualmente. En la configuración avanzada, incluso puede configurar la tarea para que se ejecute cada pocas horas o minutos. Puede establecer la hora del día en que se iniciará la tarea. Para abrir el Programador de tareas, escriba "Programador de tareas" en el cuadro de búsqueda (vea la captura de pantalla a continuación):
Haz clic en Programador de tareas; se abrirá el Programador de tareas de Windows.
Para crear una tarea, haga clic en "Crear tarea básica".
Introduzca el nombre y la descripción de la tarea y, a continuación, haga clic en Siguiente.
Seleccione la frecuencia de ejecución de la tarea. Puede elegir entre diaria, semanal o mensual. Si desea que la tarea se ejecute cada hora, puede configurarlo más adelante en la sección de Configuración avanzada. Haga clic en Siguiente para configurar la acción.
En la página de Acciones, seleccione "Iniciar un programa" y, a continuación, haga clic en Siguiente.
Seleccione DriveHQ CommandFTP (cmdftp.exe) como programa. Agregue los parámetros de la línea de comandos en el cuadro de texto "Agregar argumentos". La opción "Iniciar en" es opcional. Puede configurarla en la misma carpeta que el archivo EXE. Haga clic en Siguiente para finalizar la creación de la tarea.
Para acceder a la configuración avanzada, haga clic en "Biblioteca de programación de tareas" y verá una lista de las tareas programadas. Haga doble clic en la tarea "Cargar pedidos" para editar su configuración.
Tenga en cuenta que, por defecto, la tarea se ejecutará solo cuando el usuario haya iniciado sesión. Puede cambiar esta configuración para que la tarea se ejecute incluso cuando el usuario no haya iniciado sesión.
5. Sincronización automática de carpetas mediante DriveHQ CommandFTP
DriveHQ CommandFTP admite la duplicación de carpetas. Sincronizar una carpeta local con una carpeta FTP es extremadamente fácil. Simplemente use el siguiente comando:
cmdftp FTP_SERVER -u:nombredeusuario -p:contraseña -m:"CARPETA_LOCAL|CARPETA_FTP"
Mediante el Programador de tareas de Windows, puede ejecutar este comando para sincronizar periódicamente las dos carpetas.
6. Referencias de comandos FTP
Después de iniciar sesión en un servidor FTP, puede enviar comandos FTP al servidor FTP. El cliente FTP de Windows admite los siguientes comandos.
Tenga en cuenta que estos comandos no son lo mismo que Comandos FTP definidos en el Protocolo FTP.
Cada comando del protocolo FTP generalmente solo maneja un problema simple. Un comando FTP en un cliente FTP de Windows puede usar varios comandos del protocolo FTP.
DriveHQ CommandFTP es similar al cliente FTP de Windows. Admite comandos y sintaxis similares. Además, también admite algunos comandos FTP avanzados específicos de DriveHQ, como comandos para copiar, mover, cargar, descargar o eliminar carpetas.
6.1 Comandos del cliente FTP de Windows
El cliente FTP de Windows (ftp.exe) admite los siguientes comandos FTP:
| Comandos FTP |
Descripción |
| ! |
Este comando alterna entre el sistema operativo local y el servidor FTP. Cuando inicia sesión en un servidor FTP, por defecto se conecta al servidor FTP. Si desea ejecutar un comando localmente, normalmente puede usar !CMD_NAME, e.g. !dir, !mkdir, etc. |
| ? |
Muestra la información de ayuda. |
| append |
Agregar a un archivo. |
| ascii |
Configurar el modo de transferencia ASCII. |
| bell |
Activa la opción "Emitir un pitido cuando se complete el comando". |
| binary |
Configurar el modo de transferencia binaria. |
| bye |
Desconecta la sesión FTP y sal. |
| cd |
Cambiar de directorio. |
| close |
Finalice la sesión FTP. |
| delete |
Elimina un archivo. |
| debug |
Activar o desactivar el modo de depuración. |
| dir |
Enumera los archivos y subcarpetas de un directorio.
|
| disconnect |
Desconecta la sesión FTP. |
| get |
Obtener archivo del servidor FTP remoto. |
| glob |
Activar o desactivar el globbing. Cuando está desactivado, los caracteres comodín en los nombres de archivo (en el poner y conseguir Las órdenes) se toman literalmente. |
| hash |
Activar/desactivar la impresión de "#" para cada búfer transferido. |
| help |
Muestra la información de ayuda; normalmente se usa help NOMBRE_DEL_COMANDO. |
| lcd |
Si se escribe solo, mostrará el directorio de trabajo local actual; de lo contrario, cambiará el directorio de trabajo local. |
| literal |
Envía un comando arbitrario al servidor FTP conectado, esperando una respuesta de una sola línea. |
| ls |
Lista los archivos en la carpeta FTP. |
| mdelete |
Eliminar varios archivos en el servidor FTP. |
| mdir |
Enumera los archivos/subcarpetas de varios directorios FTP. |
| mget |
Descarga varios archivos del servidor FTP a tu carpeta de trabajo local. |
| mkdir |
Crear un nuevo directorio. |
| mls |
Enumera el contenido de varios directorios FTP. |
| mput |
Sube varios archivos locales al servidor FTP. |
| open |
Conéctese a un servidor FTP. |
| prompt |
Permite habilitar o deshabilitar la solicitud interactiva de comandos múltiples. |
| put |
Sube un archivo al servidor FTP. |
| pwd |
Imprimir el directorio de trabajo en el servidor FTP. |
| quit |
Desconéctese del servidor FTP y salga. |
| quote |
Igual que el comando literal (Enviar comando ftp arbitrario). |
| recv |
Descargar/recibir un archivo del servidor FTP. |
| remotehelp |
Obtén ayuda del servidor remoto. |
| rename |
Cambiar el nombre de un archivo en el servidor FTP. |
| rmdir |
Eliminar un directorio en el servidor FTP. |
| send |
Enviar un archivo. |
| status |
Muestra el estado de las opciones actuales. |
| trace |
Activar/desactivar el rastreo de paquetes. |
| Type |
Establecer el tipo de transferencia de archivos. |
| user |
Enviar información del nuevo usuario (nombre de usuario). |
| verbose |
Activa o desactiva el modo detallado. |
6.2 Comandos FTP avanzados de DriveHQ
DriveHQ CommandFTP admite algunos comandos FTP más avanzados:
| Comandos FTP |
Descripción |
| download |
Descarga una carpeta o un archivo.
Sintaxis: Download [FTP-FILEorFOLDER-PATH] [LOCAL-FILEorFOLDER-PATH]
|
| upload |
Sube una carpeta o un archivo.
Sintaxis: Upload [LOCAL-FILEorFOLDER-PATH] [FTP-FILEorFOLDER-PATH]
|
| mirror |
Replicar una carpeta local y una carpeta FTP.
Sintaxis: MIRROR [LOCAL-FOLDER-PATH] [FTP-FOLDER-PATH]
|
| deleteoldfiles |
En la carpeta especificada, elimine los archivos con una antigüedad superior a x días.
Sintaxis: deleteoldfiles [FTP-PATH] /xo:[time]
|