Weblogs Código

RecorteX

» eliminar
73 usuarios y 243 recortes de código
Usuario

Contraseña
Crear cuenta
Estás viendo los recortes de la etiqueta eliminar

RSS
Recortes: 2

Etiquetas relacionadas:
carpetas
n
copias
registros
de
seguridad
dias
sql
antiguedad
duplicados

copias de seguridad y eliminacion de carpetas con N dias de antiguedad

Este es un pequeño bat que he creado para realizar copias de seguridad automatizadas.

Las copias se realizan diariamente ,programando una tarea que lanze el script, y las carpetas donde se almacenan los datos toman como nombre la fecha diaria.

La carpeta con mas de 5 dias es eliminada automaticamente,para ello empleo algunos comandos incluidos en el Kit de implementación de Microsoft Windows 2000 ,esto son:

[*]robocopy.exe ,para realizar las copias y asignar nombre a las carpetas.
[*]forfiles.exe ,para realizar la purga de carpetas y archivos con mas de 5 dias.

Posteriormente añadi la opcion de enviar el log de la actividad por mail a mi correo,para ello use programas de terceros:

[*]bmail.exe ,un pequeño programa de 17Kb que permite enviar correo desde linea de comando.
[*]miniRelay.exe ,un servidor de smtp muy liviano y que no precisa instalacion.

Para hacer andar el script logicamente deberas descargar tanto los comandos usados como los programas ,con google es cuestion de minutos.

No comento el codigo porque considero que es bastante simple ,no obstante todos los comandos empleados tienen su correspondiente ayuda.

Si aun asi..tienes algun problema ,no dudes en mandarme un mail.

Saludos!


  @echo off

REM haz copias de seguridad ,poniendo como nombre de carpeta el dia actual
REM elimina las carpetas y archivos con mas antiguedad de la deseada.
REM si te ha sido util cuentamelo: dev@professionalpartners.es
net session /delete


forfiles -pF:\USUARIOS -m*.* -d-5 -c"CMD /C RD /S /Q @FILE"

SETLOCAL

set FECHA= %date%
set FECHA=%FECHA:/=%
set FECHA=%FECHA: =%
set FECHA=%FECHA::=%
set FECHA=%FECHA:,=% 
SET _origen=D:\USUARIOS
SET _destino=F:\USUARIOS
SET _que=/COPYALL /B /SEC /MIR
SET _opciones=/R:0 /W:0 /LOG:log.txt /NFL /NDL

ROBOCOPY %_origen% "%_destino%\%FECHA%" %_que% %_opciones%

bmail.exe -s localhost -t malaga.we0@sermicro.com -f copia@mondapan.com -h -m c:\robotmongolo\log.txt

exit

Eliminar registros repetidos

Supongamos que tenemos una tabla con emails, y que algunos pueden estar repetidos, queremos hacer un "borrado selectivo" y eliminar solo las repeticiones.
 
DELETE FROM t_table WHERE id IN (SELECT id FROM t_table main WHERE id > (SELECT min(id) FROM t_table WHERE id <> main.id AND Email = main.Email))
 
Proyecto: Juanjo Navarro, 2006 - Diseño: Albin