Este código Script lo ejecuto mientras este en ejecución otro SCRIPT BATCH que su ventana se llama «proceso», si no lo detecta en ejecución finaliza (exit). En este script se utilizan 3 utilitarios (sendmail.exe – plink.exe y sleep.exe), los cuales se deben bajar para poder utilizarlos. En si lo que hace el Script es conectarse a un servidor UNIX y listar el contenido de un directorio en particular (archivos .lst), luego genera un archivo solo con el tamaño y nombre del archivo. Después se filtran los que pesan 0 y 64 Bytes, además de los que contienen la cadena «cambia». Al detectar archivos que pasan los filtros, se envía un mail informando la situación.-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
@echo off set num=%1 title %num% mode con cols=1 mode con lines=1 set archivo=d:\menudos\archivos.txt set depurado=d:\menudos\depurado.txt set paso=d:\menudos\paso.txt set ruta1=/usr01/home/prec/EX_2009/sql/*.lst set ruta2=/proc/home/prec/EX_2013/sql/*.lst if %num%==1 set ruta=%ruta1% && set ano=2009 if %num%==2 set ruta=%ruta2% && set ano=2010 :log del /F /Q %depurado% > nul rem Si no detecta el Script BATCH DOS llamado "proceso" finaliza ejecucion tasklist /FI "WINDOWTITLE eq proceso" | findstr "cmd" || exit plink.exe -ssh -pw monitoreo monitor@peumo ls -ltr %ruta% > %archivo% type %archivo% | findstr /v "cambia" > %paso% for /f "tokens=1-9" %%a in ('type %paso%') do ( if %%e==64 (echo filtrado) else (if %%e==0 (echo filtrado) else (echo %%e %%i >> %depurado%) ) ) type %depurado% | findstr ".lst" && goto archivos sleep 30 goto log :archivos SET dia=%DATE:~,2% SET mes=%DATE:~3,2% SET ano=%DATE:~6,4% SET fecha=%dia%-%mes%-%ano% SET hor=%TIME:~,2% SET min=%TIME:~3,2% SET seg=%TIME:~6,2% SET hora=%hor%:%min% sendemail.exe -f desde@cor.cl -t para@cor.cl -u "Proceso %ano% con archivos encontrados %fecha% a las %hora% Hrs." -m "En el archivo adjunto puede ver los archivos detectados, debe reportarlo" -a %depurado% -s cor.cid.cl sleep 30 goto log |