Soluciones en informática...

que se adaptan a tus necesidades

Tecnologías de la Información...

Aplicadas eficientemente a tu negocio

Consultoría profesional

y con soluciones reales

Asesor en Sistemas



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

Genera tu script ftp

envio ftp
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

Genera tu archivo batch

envio ftp

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

 
Programa la tarea

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

Comparte este articulo
[Ask] [del.icio.us] [Digg] [Facebook] [Google] [LinkedIn] [MySpace] [Rojo] [Squidoo] [Technorati] [Twitter] [Windows Live] [Yahoo!] [Email]

30 respuestas a Envía o recibe archivos automáticamente a servidores FTP

  • 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

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>