Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/adrianlois/backups-ftp-winscp-7zip
PowerShell - Automatizar Backups FTP con WinSCP y 7zip (2018)
https://github.com/adrianlois/backups-ftp-winscp-7zip
7zip automation backups ftp powershell winscp
Last synced: 17 days ago
JSON representation
PowerShell - Automatizar Backups FTP con WinSCP y 7zip (2018)
- Host: GitHub
- URL: https://github.com/adrianlois/backups-ftp-winscp-7zip
- Owner: adrianlois
- License: gpl-3.0
- Created: 2018-10-01T17:52:11.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-09-21T20:26:14.000Z (over 3 years ago)
- Last Synced: 2024-11-14T11:27:03.385Z (3 months ago)
- Topics: 7zip, automation, backups, ftp, powershell, winscp
- Language: PowerShell
- Homepage: https://www.zonasystem.com/2017/07/automatizar-copias-de-seguridad-ftps-winscp-taskschd.html
- Size: 729 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Backups-FTP-WinSCP-7Zip
PowerShell - Automatizar Backups FTP con WinSCP y Compress-7Zip (2018)Más info: https://www.zonasystem.com/2017/07/automatizar-copias-de-seguridad-ftps-winscp-taskschd.html
## Procedimientos
1. Se establecen las variables
2. Se comprimen los datos en un único fichero comprimido temporal
3. Se envía el fichero comprimido a un servidor FTP
4. Se genera un único log de las acciones realizadas
5. Se envía el log por correo vía Gmail
6. Se eliminan los temporales creados en el proceso### Envío log cuenta Gmail (Google)
Para el envío del log vía Gmail es necesario activar el acceso a "Aplicaciones menos seguras" en la cuenta Google. Por seguridad, se debería crear una cuenta específica para esta finalidad.
https://myaccount.google.com/lesssecureapps![email_backup_log_enviado_gmail_powershel](https://raw.githubusercontent.com/adrianlois/Automatizar-Backups-FTP-PowerShell/master/screenshots/ejecucion_app_menos_seguras_gmail.png)
![email_backup_log_enviado_gmail_powershel](https://raw.githubusercontent.com/adrianlois/Automatizar-Backups-FTP-PowerShell/master/screenshots/email_envio_backup_log_gmail_powershell.png)
### instalar-modulos.ps1:
Es necesario instalar los módulos: WinSCP y Compress-7Zip
- WinSCP: https://github.com/dotps1/WinSCP/wiki/New-WinSCPSession
- Compress-7Zip: https://www.powershellgallery.com/packages/7Zip4Powershell/1.8.0## Ficheros PowerShell Backup
## Versiones automatizadas (no interactivas): v1.0, v2.0, v2.1
Estas versiones son pensadas para lanzar el script de backup de Powershell en una tarea programada de Windows.
## ▶ backup-v1.0:
Establecer los valores deseados en las variables. Ideal para usarlo a través de una tarea programada de forma no interactiva. El inconveniente es que las passwords se guardarían en texto plano. Mejoras en la versión 2.0 y 2.1
#### Paths
- $PathLocalDatos = "PathLocalDatos"
- $PathRemotoFTP = "PathRemotoFTP"
- $PathTempFichero7z = "PathTemporalFichero7z"#### Credenciales
- $Passwd7z = "PasswdFichero7z"
- $HostServidorFTP = "ftp.miweb.com"
- $UsuarioFTP = "UsuarioFTP"
- $PasswdFTP = "PasswdFTP"
- $UsuarioEmail = "[email protected]"
- $PasswdEmail = "PasswdEmail"#### Asunto y cuerpo del Email
- $AsuntoEmail = "AsuntoEmail"
- $CuerpoEmail = "TextoCuerpoEmail"## ▶ backup-v2.0:
Las passwords se almacenan cifradas en ficheros separados. Está limitado a ejecutarse desde el mismo usuario y desde el mismo equipo que generó los ficheros de passwords.
- **CrearPasswordsBackup-v2.0.ps1**: Nos solicita una ruta a un directorio para almacenas las passwords cifradas en un fichero. Solo es necesario ejecutarlo una primera vez. Si cambiamos de usuario, equipo o formateamos Windows estas claves ya no servirán y deberemos crear unas nuevas. En caso de usar las mismas password en diferentes equipos en la versión 2.1 se soluciona este inconveniente. *(https://www.zonasystem.com/2019/01/cifrar-passwords-con-powershell.html)*
- **backup-v2.0.ps1**: Modificar los valores de las siguientes variables:
**Video demo (PoC)**: https://youtu.be/YGRDsgpRlS0
#### Paths
- $PathLocalDatos = "PathLocalDatos"
- $PathRemotoFTP = "PathRemotoFTP"
- $PathTempFichero7z = "PathTemporalFichero7z"
- $PathFicherosPasswd = "PathFicherosPassword"#### Credenciales
- $HostServidorFTP = "ftp.miweb.com"
- $UsuarioFTP = "UsuarioFTP"
- $UsuarioEmail = "[email protected]"#### Asunto y cuerpo del Email
- $AsuntoEmail = "AsuntoEmail"
- $CuerpoEmail = "TextoCuerpoEmail"## ▶ backup-v2.1.ps1:
Respecto a la versión 2.0, se añade la mejora de crear una clave de cifrado y descifrado de las passwords establecidas. De ese modo con el fichero generado automáticamente cifrado.key y los ficheros cifrados de las password establecidas, de ese modo se podrá ejecutar desde otros usuarios y en otros equipos.
▶ **Video demo (PoC)**: https://youtu.be/0iSXvSB15PI
- **CrearPasswordsBackup-v2.1.ps1**: Genera un fichero único "cifrado.key", este será el fichero llave para cifrar y descifrar el resto de ficheros donde se establecieron las passwords. *(El fichero cifrado.key se le pasará al script backup-v2.1.ps1 para que pueda descifrar las passwords cifradas desde cualquier usuario del mismo equipo u otro equipo diferente).* *(https://www.zonasystem.com/2019/01/cifrar-passwords-con-powershell.html)*
- **backup-v2.1.ps1**: Modificar los valores de las siguientes variables: (igual que la versión 2.0)
#### Paths
- $PathLocalDatos = "PathLocalDatos"
- $PathRemotoFTP = "PathRemotoFTP"
- $PathTempFichero7z = "PathTemporalFichero7z"
- $PathFicherosPasswd = "PathFicherosPassword"#### Credenciales
- $HostServidorFTP = "ftp.miweb.com"
- $UsuarioFTP = "UsuarioFTP"
- $UsuarioEmail = "[email protected]"#### Asunto y cuerpo del Email
- $AsuntoEmail = "AsuntoEmail"
- $CuerpoEmail = "TextoCuerpoEmail"## Versiones interactivas: v3.0, v4.0
Estas versiones están pensadas para ejecutar el script de Powershell de forma manual, introducir los datos críticos y que no se almacenen ni en texto plano ni cifrados en el equipo local.
## ▶ backup-v3.0.ps1:
Se solicitan los valores de passwords de forma interactiva sin almacenarlas en texto plano en el fichero .ps1. A diferencia de backup.ps1, no se guardarán las passwords en texto plano en el fichero .ps1.
![backup-interactivo-passwords-7z-ftp-gmail](https://raw.githubusercontent.com/adrianlois/Automatizar-Backups-FTP-PowerShell/master/screenshots/backupv2-interactivo-passwords-7z-ftp-gmail.png)
## ▶ backup-v4.0.ps1:
Establecer los valores de todos los datos incluídas las passwords a través de un formulario de forma interactiva. Al igual que backup-v2.ps1, no se guardarán el resto de datos en el fichero .ps1.
![datos_backup-7z-ftp-gmail](https://raw.githubusercontent.com/adrianlois/Automatizar-Backups-FTP-PowerShell/master/screenshots/backupv3-datos_passwords-7z-ftp-gmail.png)
**Video demo (PoC)**: https://youtu.be/R8tstuRbMto