Originales por cortesía de Esteban Amado, Ángel Barcenilla y César Garrido. Extractos modificados de los originales
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%
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
