top of page

Originales por cortesía de Esteban Amado, Ángel Barcenilla y César Garrido.    Extractos modificados de los originales

Como automatizar la ejecución de comandos FTP

REM ** ======================================================
REM ** Nombre:  ScriptFTP.bat

REM ** ---------------------------------------------------------------------
REM ** Recoge los ficheros de un servidor y los pone en otro
REM ** Debe ejecutarse desde el servidor de destino (donde dejaremos los ficheros recogidos).
REM ** ======================================================
REM ** ---------------------------------------------------------------------
REM ** 1- Creamos un fichero con los comandos FTP automáticos
REM ** ---------------------------------------------------------------------
REM ** Nos posicionamos en el directorio de destino (donde dejaremos los ficheros recogidos)
REM ** Ponemos nombre al fichero de comandos ftp (comandos01.ftp)
REM ** Nos conectamos al servidor o a la web origen (de donde recogeremos el fichero)
REM ** Ponemos un usuario y contraseña válidos para conectarnos
REM ** Nos posicionamos en el directorio donde están los ficheros que queremos recoger
REM ** Cambiamos a modo binario para que la transferencia sea correcta
REM ** Posicionamos el cursor en la línea de comandos (prompt)
REM ** recogemos todo lo que haya en el directorio
REM ** Fin. Salimos.
REM ** ---------------------------------------------------------------------

cd %ProgramFiles%\directorio01
set FTPFile=comandos01.ftp
echo open SERVIDOR01                                     > %FTPFile%
echo user miusuario micontraseña                       >> %FTPFile%
echo cd directorio25/subdirectorio02                   >> %FTPFile%
echo bin                                                              >> %FTPFile%
echo prompt                                                       >> %FTPFile%
echo mget *.*                                                      >> %FTPFile%
echo bye                                                             >> %FTPFile%  


REM ** ---------------------------------------------------------------------
REM ** 2- Ejecutamos el fichero de comandos FTP (el que acabamos de crear automáticamente)
REM ** ---------------------------------------------------------------------
REM ** Recogerá todos los ficheros de SERVIDOR01\directorio25\subdirectorio02
REM ** y los pondrá en nuestro servidor y directorio actuales \directorio01
REM ** ---------------------------------------------------------------------

ftp -s:%FTPFile% -v -n   

REM ** ---------------------------------------------------------------------
REM ** Eliminamos el fichero de comandos FTP
REM ** ---------------------------------------------------------------------

del %FTPFile% 

Copiar ficheros entre servidores con automatismos FTP

REM **********************************************************************

REM   Cortesía de ESTABAN AMADO. Extracto modificado del autor.

REM **********************************************************************
REM   Nombre:           RecogeFicheros.bat                        
REM  ------------------------------------------------------------------
REM   - comprime ficheros de log y los borra              
REM   - nombre de maquina local                                      
REM   - Enviar por FTP a nuevo destino los ficheros comprimidos   
REM ------------------------------------------------------------------
REM   Si al comprimir un directorio éste queda vacio, WZZIP lo borra,
REM   por eso se crea un fichero temporal que se eliminará tras comprimir
REM   los ficheros.
REM ------------------------------------------------------------------

cd %ProgramFiles%\RecogeFicheros


REM ** ---------------------------------------------------------------------
REM ** Calcular la fecha-hora para los nombres de los ficheros
REM ** ---------------------------------------------------------------------

set fecha=%date:~10,4%%date:~7,2%%date:~4,2%
if .%MC2_SO%.==.WIN2003. set fecha=%date:~6,4%%date:~3,2%%date:~0,2%


set hh=%time:~0,2%
if %hh%==0 set hh=00
if %hh%==1 set hh=01
if %hh%==2 set hh=02
if %hh%==3 set hh=03
if %hh%==4 set hh=04
if %hh%==5 set hh=05
if %hh%==6 set hh=06
if %hh%==7 set hh=07
if %hh%==8 set hh=08
if %hh%==9 set hh=09
set hora=%hh:~0,2%%time:~3,2%%time:~6,2%


REM ** ---------------------------------------------------------------------
REM ** Generar los nombres de los ficheros
REM ** ---------------------------------------------------------------------

if NOT "*%MC2_NAME%*"=="**" goto ET_SALTO01
set MC2_NAME=%COMPUTERNAME%

:ET_SALTO01
set LocalLogFile=Log-%MC2_NAME%-%fecha%-%hora%
set LogFile=%ProgramFiles%\RecogeFicheros\%LocalLogFile%
set LocalCfgFile=Cfg-%MC2_NAME%-%fecha%-%hora%
set CfgFile=%ProgramFiles%\RecogeFicheros\%LocalCfgFile%


REM ** ---------------------------------------------------------------------
REM ** Marca de inicio de proceso
REM ** ---------------------------------------------------------------------

echo "***************************************************"
echo "Iniciando %0. Fecha:%fecha% Hora: %hora%

REM ** ---------------------------------------------------------------------
REM ** Comprimimos los ficheros por cada aplicación instalada
REM ** ---------------------------------------------------------------------
REM ** -----------
REM ** Directorio01
REM ** -----------

"%ProgramFiles%\winzip\wzzip" -ex -P  -a "%CfgFile%" "%ProgramFiles%\Directorio01\*.ini"
"%ProgramFiles%\winzip\wzzip" -ex -P  -a "%CfgFile%" "%ProgramFiles%\Directorio01\*.txt"
echo "ComprimirLog" > "%ProgramFiles%\Directorio01\log\Comprimirlog.tmp"
"%ProgramFiles%\winzip\wzzip" -ex -P -m -a "%LogFile%" "%ProgramFiles%\Directorio01\log\*.txt"
"%ProgramFiles%\winzip\wzzip" -ex -P -m -a "%LogFile%" "%ProgramFiles%\Directorio01\log\*.dat"
"%ProgramFiles%\winzip\wzzip" -ex -P -m -a "%LogFile%" "%ProgramFiles%\Directorio01\log\*.snf"
del "%ProgramFiles%\Directorio01\log\Comprimirlog.tmp"


REM ** -----------
REM ** Directorio02
REM ** -----------

"%ProgramFiles%\winzip\wzzip" -ex -P  -a "%CfgFile%" "%ProgramFiles%\Directorio02\*.ini"
echo "ComprimirLog" > "%ProgramFiles%\Directorio02\log\Comprimirlog.tmp"
"%ProgramFiles%\winzip\wzzip" -ex -P -m -a "%LogFile%" "%ProgramFiles%\Directorio02\log\*.log"
del "%ProgramFiles%\Directorio02\log\Comprimirlog.tmp"


REM ** -----------
REM ** Directorio03
REM ** -----------

"%ProgramFiles%\winzip\wzzip" -ex -P  -a "%CfgFile%" "c:\Directorio03\subdirctorio15\*.ini"
"%ProgramFiles%\winzip\wzzip" -ex -P -m -a "%LogFile%" "c:\Directorio03\subdirctorio17\*.log"
"%ProgramFiles%\winzip\wzzip" -ex -P -m -a "%LogFile%" "c:\Directorio03\subdirctorio24\Fichero.log.*"


REM ** -----------
REM ** Por ultimo añadimos las tareas programadas al fichero de CFG
REM ** -----------

"%ProgramFiles%\winzip\wzzip" -ex -P  -a "%CfgFile%" "%WINDIR%\Tasks\*.job"
"%ProgramFiles%\winzip\wzzip" -ex -P  -a "%CfgFile%" "%WINDIR%\SYSTEM32\cron*"
"%ProgramFiles%\winzip\wzzip" -ex -P -r  -a "%CfgFile%" "%ProgramFiles%\RecogeFicheros\crontab\*.*"


REM ** ---------------------------------------------------------------------
REM ** Generamos un fichero de comandos ftp para enviar los zip generados
REM ** ---------------------------------------------------------------------

set FTPFile=dummy.ftp
echo OPEN servidor.dominio.com        > %FTPFile%
echo USER usuario   contraseña         >> %FTPFile%
echo BIN                                            >> %FTPFile%
echo prompt                                       >> %FTPFile%
echo CD RecogeFicheros\Logs          >> %FTPFile%
echo PUT "%LocalLogFile%.zip"         >> %FTPFile%
echo CD \RecogeFicheros\cfg            >> %FTPFile%
echo PUT "%LocalCfgFile%.zip"          >> %FTPFile%
echo bye                                            >> %FTPFile%



REM ** ---------------------------------------------------------------------
REM ** Ejecutamos el ftp y limpiamos fichero de trabajo ftp
REM ** ---------------------------------------------------------------------

ftp -s:%FTPFile% -v -n
del dummy.ftp



REM ** ---------------------------------------------------------------------
REM ** Creamos los directorios de Log y de CFG donde moveremos los ficheros
REM ** ---------------------------------------------------------------------

mkdir Logs
move log-*.zip Logs
mkdir cfgs
move cfg-*.zip cfgs


 

Borrar ficheros. Liberar espacio en disco.

REM ======================================================

REM   nombre:               borraficheros.bat

REM  ---------------------------------------------------------------------

REM   Borra ficheros de log y configuración para que no ocupen espacio.

REM ======================================================

@echo off
echo ***********************************************
echo Script para borrar archivos de log y config
echo anteriores a 90 dias
echo ***********************************************
cd %ProgramFiles%\directorio01
echo.
echo Borrar logs de directorio01
echo ------------------------------
forfiles -p"%ProgramFiles%\directorio01\logs" -d-90 -c"cmd /c del @FILE" -v
echo.
echo Borrar cfgs de directorio01
echo -------------------------------
forfiles -p"%ProgramFiles%\directorio01\cfgs" -d-90 -c"cmd /c del @FILE" -v

copiarficheros
Fecha
comprimeficheros
borrarficheros
letras.png

©  Informática para romanos de trinchera. Siglo I ae.

bottom of page