was successfully added to your cart.

Sistema de copia de seguridad casero

Copias de seguridad con winscp, robocopy y powershell

1- Copias de seguridad de un plesk con winscp

Para hacer copias de seguridad no es necesario comprar ningún software que se encargue de ello, basta dedicarle un tiempo mínimo a pensar un poco como queremos montarlo, que equipo va a ser el que lance las tareas, que dias queremos hacer la copias de cada servidor, cual va a ser el equipo que almacene las copias….y después crear unos scripts que hagan ese trabajo.

Primero teneis que descargaros el Winscp para windows. Y configurar la conexión a vuestro servidor Plesk.

Mirad el código que he usado dentro de un fichero «.bat» para hacer las copias:

set fechasistema=nombredetucarpeta_%date:~6,4%%date:~3,2%%date:~0,2%
mkdir e:\BACKUP_SERVIDOR\%fechasistema%
winscp /console /script=C:\Users\David\Desktop\Backup\backup-servidor-davidescudero.txt /log=E:\BACKUP_SERVIDOR\log_davidescudero.txt
powershell.exe C:\Users\David\Desktop\Backup\send_mail_backup_davidescudero.ps1

Esto llama a otro script de winscp que tengo creado en un «.txt» con el siguiente código:

option batch on
 option confirm off
 open root@davidescudero.com
 get /var/lib/psa/dumps/* E:\BACKUP_SERVIDOR\%fechasistema%\*
 exit

Como veis he utilizado una variable del entorno windows con la fecha del sistema para crear distintas carpetas con las distintas fechas con las que hago los backup.

Como veréis, en el primer script, cuando finalizan todas las tareas ejecuto un script de powershell, que me manda un mail con los logs del backup. El fichero powershell «ps1» es el siguiente:

$EmailTo = "mailalqueenvias"
$EmailFrom = "maildesdeelqueenvias"
$Subject = "BACKUP SERVIDOR DAVIDESCUDERO FINALIZADO"
$Body = "El backup del servidor ha finalizado."
$SMTPServer = "servidorsmtp"
#$filenameAndPath = "E:\BACKUP_SERVIDOR\log_davidescudero.txt"
$SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom,$EmailTo,$Subject,$Body)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587) 
#$attachment = New-Object System.Net.Mail.Attachment($filenameAndPath)
#$SMTPMessage.Attachments.Add($attachment)
$SMTPClient.EnableSsl = $true 
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("usuariodelmaildeenvio","passworddelmaildeenvio"); 
$SMTPClient.Send($SMTPMessage)

En este caso he comentado los logs adjuntos, pero si queréis que se adjunten solo teneis que quitar las almohadillas ‘#’.

A partir de ahora ya tendréis un backup de vuestro servidor plesk en un servidor windows o en vuestro PC de casa.

 

2- Copias de seguridad de casa con ROBOCOPY y avisos con Powershell

Bueno, las copias de seguridad son esenciales si eres freelance, y yo las tengo muy controladas, hago copias de seguridad en todos los equipos que trabajo, y el sistema es sencillamente la mejor herramienta que existe y infalible para hacer copias de seguridad, ROBOCOPY.

Indagad un poco acerca de los posibles usos de ROBOCOPY y descargad la herramienta de la página oficial de Microsoft.

Un ejemplo de script en «.bat» para uno de mis equipos es:

ROBOCOPY "\\iMac-de-david.local\Documents" "D:\IMAC\DOCUMENTOS_IMAC" /E /R:1 /Z /W:1 /V /tee /XF *.vmdk *.iso *.dmg /log:C:\Logs_Backup\log_copia_imac.log

ROBOCOPY «\\iMac-de-david.local\Desktop» «D:\IMAC\ESCRITORIO_IMAC» /E /R:1 /Z /W:1 /V /tee /XF *.vmdk *.iso *.dmg /log:C:\Logs_Backup\log_copia_imac.log ROBOCOPY «\\iMac-de-david.local\Downloads» «D:\IMAC\DESCARGAS_IMAC» /E /R:1 /Z /W:1 /V /tee /XF *.vmdk *.iso *.dmg /log:C:\Logs_Backup\log_copia_imac.log powershell.exe C:\Users\David\Desktop\Backup\send_mail_backup_imac.ps1

Primero: Copio los datos que me interesan a uno de los discos.
Segundo: Envío un mensaje a mi mail indicándome que la copia de seguridad se ha hecho correctamente utilizando el mismo script de powershell anteriormente citado en el punto 1.

Para programar estas copias de seguridad, con el Programador de tareas de windows es muy sencillo, solo teneis que hacer lo siguiente:

A continuación configuramos una nueva tarea que llame a nuestro script. Muy importante marcar «Ejecutar tanto si el usuario inició sesión como si no».

Después, rellenados estos datos, abrimos la pestaña desencadenadores y añadimos uno nuevo:

Ahora, en la pestaña de Acciones hacemos lo mismo, creamos una nueva acción que será la ejecución de nuestro fichero «.bat»