{"id":20260840,"url":"https://github.com/adrianlois/backups-ftp-winscp-7zip","last_synced_at":"2026-05-27T23:31:31.926Z","repository":{"id":122920903,"uuid":"151132493","full_name":"adrianlois/Backups-FTP-WinSCP-7Zip","owner":"adrianlois","description":"PowerShell - Automatizar Backups FTP con WinSCP y 7zip (2018)","archived":false,"fork":false,"pushed_at":"2025-03-15T22:25:30.000Z","size":756,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-03T10:49:42.314Z","etag":null,"topics":["7zip","automation","backups","ftp","powershell","winscp"],"latest_commit_sha":null,"homepage":"https://www.zonasystem.com/2017/07/automatizar-copias-de-seguridad-ftps-winscp-taskschd.html","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adrianlois.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-10-01T17:52:11.000Z","updated_at":"2025-03-15T22:25:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"a6b4977b-0a54-407d-b743-671db6a8a1d3","html_url":"https://github.com/adrianlois/Backups-FTP-WinSCP-7Zip","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/adrianlois/Backups-FTP-WinSCP-7Zip","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrianlois%2FBackups-FTP-WinSCP-7Zip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrianlois%2FBackups-FTP-WinSCP-7Zip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrianlois%2FBackups-FTP-WinSCP-7Zip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrianlois%2FBackups-FTP-WinSCP-7Zip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adrianlois","download_url":"https://codeload.github.com/adrianlois/Backups-FTP-WinSCP-7Zip/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrianlois%2FBackups-FTP-WinSCP-7Zip/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33588345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-27T02:00:06.184Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["7zip","automation","backups","ftp","powershell","winscp"],"created_at":"2024-11-14T11:22:35.293Z","updated_at":"2026-05-27T23:31:31.908Z","avatar_url":"https://github.com/adrianlois.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Backups-FTP-WinSCP-7Zip\nPowerShell - Automatizar Backups FTP con WinSCP y Compress-7Zip (2018)\n\nMás info: https://zonasystem.com/2017/07/automatizar-copias-de-seguridad-ftps-winscp-taskschd.html\n\n## Procedimientos\n1. Se establecen las variables\n2. Se comprimen los datos en un único fichero comprimido temporal\n3. Se envía el fichero comprimido a un servidor FTP\n4. Se genera un único log de las acciones realizadas\n5. Se envía el log por correo vía Gmail\n6. Se eliminan los temporales creados en el proceso\n\n### Envío log cuenta Gmail (Google)\nPara 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.\nhttps://myaccount.google.com/lesssecureapps\n\n![email_backup_log_enviado_gmail_powershel](https://raw.githubusercontent.com/adrianlois/Automatizar-Backups-FTP-PowerShell/master/screenshots/ejecucion_app_menos_seguras_gmail.png)\n\n![email_backup_log_enviado_gmail_powershel](https://raw.githubusercontent.com/adrianlois/Automatizar-Backups-FTP-PowerShell/master/screenshots/email_envio_backup_log_gmail_powershell.png)\n\n\n### instalar-modulos.ps1:\n\nEs necesario instalar los módulos: WinSCP y Compress-7Zip\n- WinSCP: https://github.com/dotps1/WinSCP/wiki/New-WinSCPSession\n- Compress-7Zip: https://www.powershellgallery.com/packages/7Zip4Powershell/1.8.0\n\n## Ficheros PowerShell Backup\n\n## Versiones automatizadas (no interactivas): v1.0, v2.0, v2.1\n\nEstas versiones son pensadas para lanzar el script de backup de Powershell en una tarea programada de Windows.\n\n\n## ▶ backup-v1.0: \n\nEstablecer 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\n\n#### Paths\n- $PathLocalDatos = \"PathLocalDatos\"\n- $PathRemotoFTP = \"PathRemotoFTP\"\n- $PathTempFichero7z = \"PathTemporalFichero7z\"\n\n#### Credenciales\n- $Passwd7z = \"PasswdFichero7z\"\n- $HostServidorFTP = \"ftp.miweb.com\"\n- $UsuarioFTP = \"UsuarioFTP\"\n- $PasswdFTP = \"PasswdFTP\"\n- $UsuarioEmail = \"Usuario@gmail.com\" \n- $PasswdEmail = \"PasswdEmail\"\n\n#### Asunto y cuerpo del Email\n- $AsuntoEmail = \"AsuntoEmail\"\n- $CuerpoEmail = \"TextoCuerpoEmail\"\n\n## ▶ backup-v2.0:\n\nLas 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.\n\n- **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://zonasystem.com/2019/01/cifrar-passwords-con-powershell.html)*\n\n- **backup-v2.0.ps1**: Modificar los valores de las siguientes variables:\n\n**Video demo (PoC)**: https://youtu.be/YGRDsgpRlS0\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://youtu.be/YGRDsgpRlS0\" target=\"_blank\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/adrianlois/Automatizar-Backups-FTP-PowerShell/master/screenshots/powershell-ftp-cifrado-passwords-backup-v2.0-videodemo.png\" \nalt=\"powershell-ftp-cifrado-passwords-backup-v2.0-videodemo\" width=\"650\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n#### Paths\n- $PathLocalDatos = \"PathLocalDatos\"\n- $PathRemotoFTP = \"PathRemotoFTP\"\n- $PathTempFichero7z = \"PathTemporalFichero7z\"\n- $PathFicherosPasswd = \"PathFicherosPassword\"\n\n#### Credenciales\n- $HostServidorFTP = \"ftp.miweb.com\"\n- $UsuarioFTP = \"UsuarioFTP\"\n- $UsuarioEmail = \"Usuario@gmail.com\" \n\n#### Asunto y cuerpo del Email\n- $AsuntoEmail = \"AsuntoEmail\"\n- $CuerpoEmail = \"TextoCuerpoEmail\"\n\n\n## ▶ backup-v2.1.ps1: \n\nRespecto 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.\n\n▶ **Video demo (PoC)**: https://youtu.be/0iSXvSB15PI\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://youtu.be/0iSXvSB15PI\" target=\"_blank\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/adrianlois/Automatizar-Backups-FTP-PowerShell/master/screenshots/powershell-ftp-backup-cifrado-passwords-keyfile-v2.1-videodemo.png\" \nalt=\"powershell-ftp-cifrado-passwords-keyfile-backup-v2.1-videodemo\" width=\"650\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n- **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://zonasystem.com/2019/01/cifrar-passwords-con-powershell.html)*\n\n- **backup-v2.1.ps1**: Modificar los valores de las siguientes variables: (igual que la versión 2.0)\n\n#### Paths\n- $PathLocalDatos = \"PathLocalDatos\"\n- $PathRemotoFTP = \"PathRemotoFTP\"\n- $PathTempFichero7z = \"PathTemporalFichero7z\"\n- $PathFicherosPasswd = \"PathFicherosPassword\"\n\n#### Credenciales\n- $HostServidorFTP = \"ftp.miweb.com\"\n- $UsuarioFTP = \"UsuarioFTP\"\n- $UsuarioEmail = \"Usuario@gmail.com\" \n\n#### Asunto y cuerpo del Email\n- $AsuntoEmail = \"AsuntoEmail\"\n- $CuerpoEmail = \"TextoCuerpoEmail\"\n\n## Versiones interactivas: v3.0, v4.0\n\nEstas 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.\n\n## ▶ backup-v3.0.ps1:\n\nSe 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.\n\n![backup-interactivo-passwords-7z-ftp-gmail](https://raw.githubusercontent.com/adrianlois/Automatizar-Backups-FTP-PowerShell/master/screenshots/backupv2-interactivo-passwords-7z-ftp-gmail.png)\n\n## ▶ backup-v4.0.ps1: \n\nEstablecer 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.\n\n![datos_backup-7z-ftp-gmail](https://raw.githubusercontent.com/adrianlois/Automatizar-Backups-FTP-PowerShell/master/screenshots/backupv3-datos_passwords-7z-ftp-gmail.png)\n\n**Video demo (PoC)**: https://youtu.be/R8tstuRbMto\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://youtu.be/R8tstuRbMto\" target=\"_blank\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/adrianlois/Automatizar-Backups-FTP-PowerShell/master/screenshots/powershell-ftp-backup-v4.0-videodemo.png\" \nalt=\"powershell-ftp-backup-v4.0-videodemo-adrianlois\" width=\"650\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadrianlois%2Fbackups-ftp-winscp-7zip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadrianlois%2Fbackups-ftp-winscp-7zip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadrianlois%2Fbackups-ftp-winscp-7zip/lists"}