Si tienes la necesidad de enviar tus respaldos o transferir archivos a un servidor remoto de manera repetitiva lo mejor es programarlos para que se realicen de manera automática. Desde Windows es fácil hacerlo mediante la utilerÃa de “Tareas Programadas” que viene incorporado en el sistema operativo y con scripts para el programa “ftp” que se ejecuta en la lÃnea de comandos
Lo primero es generar un archivo de texto que contendrá las instrucciones que se ejecutaran en el programa ftp. Para esto, desde el Bloc de Notas (notepad.exe) vas a generar un nuevo archivo que contenga los comandos
[miusuario]
[mipassword]
binary
send [mi_archivo.ext]
quit
las palabras entre corchetes las reemplazaras con la siguiente información
miusuario | El login con el cual accesas a tu servidor ftp |
mipassword | La contraseña con la cual accesas a tu servidor ftp |
binary | Esto le indica al programa el modo de transferencia de tus archivos. ASCII se aplica para archivos de texto. BINARY se aplica para todo lo demás. |
send mi_archivo.ext | Este comando envÃa el archivo en cuestión y puedes repetirlo en tu script las veces que sea necesario dependiendo de la cantidad de archivos que debes de enviar. Reemplaza mi_archivo.ext con el nombre y la extensión del archivo que requieras descargar. En caso de que lo que necesites sea descargar algún archivo del servidor, primero deberás ubicarte en el directorio remoto en el que se encuentre el archivo que requieres con el comando cd /directorio_remoto (reemplaza directorio_remoto por el directorio que necesites) y después escribe el comando get mi_archivo.ext |
quit le indica al programa ftp que finalice.
Puedes consultar mas comandos ftp en este post
Guarda tu archivo en el mismo directorio local en que están almacenados tus archivos a enviar. En este caso yo lo llamare instrucciones.txt
Después de generar el script ahora debes de generar las instrucciones para ejecutar el programa ftp. Para esto nuevamente abre el bloc de notas y en un archivo nuevo escribe
C:
cd \[mi_directorio]\[mi_subdirectorio]
ftp -s:[instrucciones.txt] [direccionftp]
Reemplaza las siguientes lÃneas
Â
C: | Es la unidad lógica en la que están almacenados tus archivos |
cd \mi_directorio\mi_subdirectorio | Esto es necesario ya que el programa ftp envÃa los archivos desde la ruta en la cual se ejecuto inicialmente el programa. Reemplaza esto por la ruta en que estan guardados tus archivos. |
ftp -s:instrucciones.txt 127.0.0.1 | Aquà reemplaza instrucciones.txt por el nombre y la extensión del script que generaste en el paso anterior y tambien reemplaza 127.0.0.1 por la direccion del tu servidor ftp |
En este archivo batch puedes poner instrucciones para comprimir tus archivos o cualquier operación previa que se requiera procesar antes de enviarlos.
Al final guarda tu archivo con el nombre que quieras PERO CON LA EXTENSIION .BAT para que Windows sepa que es un archivo para ejecutar instrucciones.
En este caso yo lo llamare enviar.bat
Se puede acceder al Programador de Tareas de Windows desde el panel de control, pero como la interfaz grafica varia entre XP y Vista mejor hacer otro script para programar la tarea desde la lÃnea de comandos.
Para programar esta tarea debes de tener una cuenta de acceso al sistema con privilegios de administrador. Ejecuta el siguiente comando desde el intérprete de comandos de Windows (cmd.exe)
schtasks /CREATE /S [nombre_equipo] /RU [nombre_equipo]\[usuario_administrador] /RP [contraseña] /SC daily /ST [15:00:00] /TN Mi_tarea /TR c:\enviar.bat
nombre_equipo | El nombre que tiene tu equipo |
usuario_administrador | El usuario con privilegios de administrador. Es indispensable que este usuario tenga una contraseña asignada |
contraseña | es obvio |
daily | aqui puedes usar, enrte muchas otras: hourly, daily, weekly, monthly, once, onstart, onlogon |
15:00:00 | esto reemplazalo con la hora (en formato de 24 hrs.) en que quieres que se ejecute el evento |
Mi_tarea | ponle un nombre corto y descriptivo a tu tarea |
c:\enviar.bat | Aqui reemplaza la ruta y el nombre de tu archivo BAT |
Â
Para ver si ejecuta tu tarea teclea SCHTASKS /RUN /TN Mi_tarea
Para ver como quedo programada ejecuta SCHTASKS /QUERY /TN Mi_tarea
una pregunta…
Donde cargas el servidor ftp al que enviaras los archivos, ya que he probado y solo me deja en la linea de comandos de ftp. y me dice que el host no es valido
Ups!!. Pequeño gran detalle que se me olvido anotar. Dentro de tu script “instrucciones.txt” escribe antes del usuario y la contraseña la siguiente sentencia: open nombredemiservidor
reemplaza obviamente nombredemiservidor con la direccion de tu FTPserver y con eso abres la conexión
Gracias por la observacion
Hola buenas,
mi pregunta es la siguiente:
¿Como puedo descargar un archivo desde mi servidor ftp a mi ordenador?
gracias
open http://ftp.xxx.zzl.org:21
xxx_zzl
XXXX
binary
send FILE.xls
quit
HE INTENTADO CON ESTE SCRIPT PERO ME DEVUELVE EL SIGUIENTE ERROR DE HOST NOT FOUND.
CON ESOS MISMOS DATOS PUEDO CONECTARME ATRAVEZ DE FILEZILLA
ALGUIEN SE HA ENCONTRADO CON ESTO?
SALUDOS,
MISAEL
Es incorrecto que pongas http:// porque es un servidor con protocolo ftp (file transfer protocol) no con protocolo http (hypertext transfer protocol). Solo escribe
open ftp.xxx.zzl.org
El puerto 21 es el puerto estandar para el protocolo ftp por lo que no es necesario especificarlo pero si utilizaras otro puerto lo debes especificar con un espacio despues de la direccion del servidor no con dos puntos
Hola… solo para comentarles que me sirvió esta información pero no me funcionó el envÃo: tuve que experimentar un poco con los dos archivos y al final quedaron asà funcionando al 100% (por si a alguien le sirve)
====instrucciones.txt====
[usuario]
[contraseña]
bin
cd [ubicacion de la carpeta]
put [archivo.ext]
quit
===enviar.bat===
ftp -s:instrucciones.txt [servidorftp.com.mx]
Eso es todo.
Gracias por tus correccion Alexa!
Si funciona
Como puedes subir un archivo que cambia de nombre todos los dias ??
Os escribo solo para agradeceros la tremenda ayuda que me habeis dado para la construccion de los ficheros para poder enviar mis ficheros a mi web. Me habeis dado una gran alegria.
¿Hay alguna forma de hacer esto sin necesidad de montar un servidor ftp?
Muchas gracias, esta informacion me fue realmente util
Muy buen aporte funciona de maravilla
buen post, tanto tiempo buscando, y no es necesario poner el open ftp
saludos
Muchas gracias, fue muy util. pero necesito ponerle fecha al archivo, como lo hago?
Gracias por la ayuda que me puedan brindar.
Hey esto no me sale me manda un error de autenticacion de log in a fallado y esa misma autenticacion la meto en filezilla y me accede no se ke sera me pueden ayudar es urgente plis
Ahora me ya me conecta con el usuario y la contraseña pero a la hora de buscar la ruta me sale el siguiente error
Prohibited file name: C:\ArchivosEnviar\pruebita.txt
pruebita.txt Archivo no encontrado
Y en esa ruta esta .. ya lo comprobe con el cmd y me abre el archivo … ahora nose porke no me sale … kien puede ayudarme pliss
OOooo Amigos ya me salio pero ahora surrge otro problemaaa …
me pasa el Archivo pero no me pasa lo que hay dentro de el nose que sera pueden ayudarme plissssss … es un archivo .txt
Hola me funciona mi mayor pregunta es como puedo realizar eso mismo pero con un sftp no un ftp??? por favor si tienen algun link que me ayude he andado por la red y no consigo un ejemplo tan bueno como este
Gracias!!
unas preguntas yo cree la tarea desde el progamador de tareas y le puse que se ejecute a una hora x a esa hora se vio como se ejecuto algo no hace falta que tenga la pagina de mi ftp abierta ni nada no?? con las instrucciones que le di es suficiente para que las cargue? tengo un archivo de 32 partes o sea que en el archivo instrucciones.txt puse 32 put con el nombre de cada uno de los archivo seria algo asi
put x.part01
…
put x.part32
con que ejecute una sola vez mi enviar.bat sube todos los archivos o tendria que poner que ejecute cada hora?
Buenas tardes mi pregunta es la siguiente, hice todos los pasos pero me indica el siguiente error conexion cerrada por el host remoto. de antemano muchas gracias
excelente gracias! : )
Hola, mil gracias por el artÃculo por que me parece excelente y de gran ayuda. Una sola pregunta. ¿cómo hacer para que esa tarea se repita a un cierto perÃodo de tiempo? Digamos cada 1 hora o cada 15 minutos.
Desde ya muchas gracias por todo.
Saludos.
muy buen aporte funciona excelente.. pero tengo una duda necesito implementar esto para mi empresa para el respaldo de archivos de distintas secciones.. los archivos estan ubicados en una carpeta por seccion como lo puedo hacer para poder copiar todos esos archivos de esas carpetas sin tener que definirlos en “instrucciones.txt”? para poder respaldarlos todos semanalmente?… he tratado con xcopy pero segun lo que he buscado me dice que funciona por un tema de protocolos..
Hola, tengo el siguiente problema.
Tengo una carpeta en mi PC donde descargo archivos para ser transferidos al sitio FTP, necesito que cualquier archivo que ponga en esa carpeta se transfiera y si lo hace en forma correcta se borre de la carpeta de la PC.
Gracias
Antes de automatizarlo, es decir, los primeros pasos, cuando solo deseo enviar el archivo al servidor….. el archivo efectivamente se envia, pero me llega vacio. en blanco. sin ningun dato. que puede estar sucediendo?
Buen dÃa, disculpa, un programita que emule una terminal y haga una funcion diariamente?? Pongo un pequeño ejemplo conectandome por Hyperterminal:
envio CTRL + C
RECIBO:
Welcome to the Teltronics
System Administration Monitor
Copyright Harris Corporation 1984, 1985, 1986, 1987, 1988, 1989,
1990, 1991, 1992, 1993, 1994, 1995, 1996
Teltronics, Inc. 2000, 2001
Software version: 3.2.3:0072c
Username …? (envio) admin
Recibo:
Password …? (envio) ************
Recibo:
Good Morning, ADMIN, it is 29-AUG-2013 09:22:04 THU
Welcome to the Teltronics Administration System
You are logged onto shelf CC-2
The system status is ACTIVE/STANDBY
… Enter ‘HELP’ for a menu …
ADMIN …? ( envio) edt
Recibo:
Welcome to the Teltronics Configuration Editor
The Teltronics Configuration Editor allows you to enter, modify, delete and
list call processing parameters in the system database. To choose an editor
command or option, type in the entire command or the first three letters of
the command. Enter ‘HELP’ at any prompt for assistance. Below is the current
status of the databases on the system.
The editor is currently running on common control shelf CC-2.
Shelf Database A Database B
———————————————————————–
CC-1 | *NORMAL | DATABASE DOES NOT EXIST |
———————————————————————–
———————————————————————–
*CC-2 | *NORMAL | DATABASE DOES NOT EXIST |
———————————————————————–
+ – Database has not been redundantly updated to the other shelf
* – Database/shelf is active
R – System must be reset to save edit session
EDT …?( envio) sel a
… SELECTING DATABASE ‘A’ …
Recibo:
A …?
Hola. a mi me funciona perfectamente, pero me lo sube al raÃz del ftp. Yo necesito q me lo suba a una carpeta dentro de public_html. Como tendrÃa que hacer?
Yo puse: ipdelservidor\home\usuario\public_html\archivos\ pero me dice Host desconocido
Los del servidor no me dejan ejecutar nada q esté fuera de la carpeta public_html…según ellos por seguridad.
Hola, necesito hacer lo mismo pero para un servidor SFTP, Alguien sabe como se hace.
muchas gracias me sirvio de ayuda