copiar_renombrar_borrar_copias_notificar
Esto copia un .bak a una ubicación de red, renombra el archivo con la fecha de hoy, borra copias viejas y para determinado día de la semana, guarda una copia en otra ubicación. Finalmente envía el resultado por correo.
$src = "C:\Veeam\Backup\SqlLogBackup\Sting_prod.bak" $srcDir = "C:\Veeam\Backup\SqlLogBackup" $dst = "\\bccsrv12\07-BackupsAdicionales\STING_PRD_DailyBackup" $wDst = "\\bccsrv12\07-BackupsAdicionales\STING_PRD_wBackup" $logfile = "\\bccsrv12\07-BackupsAdicionales\STING_PRD_DailyBackup\log.txt" function Send-ToEmail([string]$email, [string]$body){ $message = new-object Net.Mail.MailMessage; $message.From = "[email protected]"; $message.To.Add($email); $message.Subject = "Backup adicional de la base STING_PRD - $((Get-Date).ToString('dd/MM/yyyy'))"; $message.Body = $body; $smtp = new-object Net.Mail.SmtpClient("smtp.bccba.org.ar", "25"); $smtp.EnableSSL = $false; $smtp.send($message); #write-host "Mail Sent"; } echo 'creando nuevo registro para la ejecución actual. Borrando el log anterior y comenzando uno nuevo...' > $logfile echo '_________________________' >> $logfile Get-Date -Format 'dd/MM/yyyy-HH:mm' >> $logfile echo '_________________________' >> $logfile echo "Este script copia el archivo $src hacia la ubicación $dst" >> $logfile cd $dst echo '' >> $logfile echo '' >> $logfile echo 'Eliminando del destino backups anteriores a 5 días...' >> $logfile forfiles /p . /s /m *.* /D -5 /C "cmd /c del @path" echo '_________________________' >> $logfile echo '' >> $logfile echo 'listo. Copiando la base actualizada...' >> $logfile xcopy /s /y $src . >> $logfile echo '_________________________' >> $logfile echo '' >> $logfile echo '' >> $logfile echo 'Listo... renombrando archivo de destino con la fecha actual' >> $logfile Rename-Item -Path "$dst\Sting_prod.bak" -NewName "STING_PROD_$((Get-Date).ToString('yyyy-MM-dd')).bak" if((get-date).DayOfWeek -Match 'Saturday'){ echo '' >> $logfile echo '' >> $logfile echo "hoy es sábado, se guarda una copia en $wDst" >> $logfile xcopy /s /y "$dst\STING_PROD_$((Get-Date).ToString('yyyy-MM-dd')).bak" $wDst >> $logfile } echo '_________________________' >> $logfile echo '' >> $logfile echo '' >> $logfile echo 'y eliminando el backup de hoy (Sting_prod.bak) del servidor local (bccsrv08)' >> $logfile Remove-Item -path "$src" >> $logfile $filecount = (Get-ChildItem $srcDir -File).Count echo 'Listo' >> $logfile echo '' >> $logfile echo '_________________________' >> $logfile echo "En $srcDir hay $filecount archivos. Tal vez quieran revisar si no sobra alguno." >> $logfile echo '' >> $logfile echo 'Enviando el resultado por correo.' >> $logfile $bodyContent = Get-Content $logFile -Raw Send-ToEmail -email "[email protected]" -body $bodyContent exit
copiar_renombrar_borrar_copias_notificar.txt · Last modified: 2024/10/17 21:42 by 127.0.0.1
