Mover archivos anteriores a una fecha

Yo debo conectarme a un MS SQL Server cada x cantidad the dias para verificar que el .BAK de la base de datos fue creado. Este backup corre a las 8:30pm y su tamano es de 25Mb. Pense que en vez de yo estar moviendo los archivos de forma manual, deberia crear un script que buscara en C:\Backups por todos los archivos con la extension .BAK que tengan como fecha el dia anterior y los moviera a una ubicacion especifica en la red. Ademas de esto me enviara un email con los nombres de los archivos que se movieran.

Este fue el script final:

$date = (get-date).AddDays(-1)
$files=get-childitem C:\backups *.bak | where-object {$_.LastWriteTime -le $date}
get-childitem C:\backups *.bak | where-object {$_.LastWriteTime -le $date} |
move-item -destination \ServerName\ExpiredBackups

$body=””
Foreach($file in $files)
{$body=$body+$file.FullName+” “}

$smtpserver=”mailserver.PetareLLC.com”
$from=”admin@petareLLC.com”
$to=”omartinez@PetareLLC.com”
Send-MailMessage -From $from -To $To -Subject “Old backup files were moved” -Body $body -SmtpServer $SMTPServer -BodyAsHtml

Despues de probar el script, create una tarea en el Task Scheduler, usando los siguientes parametros:

Action: Start a Program

Program: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

Parameters: -ExecutionPolicy byPass -File “C:\Backups\moveoldfiles.ps1”

Adicional a lo anterior, se deben dar permisos al usuario en la carpeta destino, y la direccion IP debe ser anadida al relay del servidor de correo.

Esta tarea la programe para que corriera a las 8:45pm, dandole tiempo suficiente para que el backup se complete.

Leave a Comment

Your email address will not be published. Required fields are marked *