Solución gratuita y de código abierto basada en git:
Use git-ftp para la sincronización. Después de la instalación y configuración de un repositorio git local, puede hacer:
- git ftp init -u <usuario> -P f tp: //host.example.com/public_html #para presionar por primera vez
- git ftp push --user <usuario> --passwd <contraseña> f tp: //host.example.com/public_html
Ahora solo necesita observar los cambios en el sistema de archivos, agregarlos a su repositorio git local y empujar su repositorio usando el comando anterior.
Ventajas:
- git-ftp funciona en windows y linux (probado con mysys git en windows)
- se integra muy bien en su configuración de desarrollo si ya está usando git
- muy fácil de configurar y usar (si está familiarizado con git)
- cambios incrementales -> ahorra mucho ancho de banda
Desventajas
- necesita encontrar una solución para observar los cambios en el sistema de archivos (no debería ser demasiado difícil de hacer, por ejemplo, nodejs tiene soluciones para esto)
Aquí hay un ejemplo para un archivo por lotes que estoy usando en Windows:
@echo off
git init .
git add . --all
git commit -am "auto commit"
set /p pwd= Please enter ftp password:
git ftp push --user myftpuser --passwd %pwd% ftp://myftphost.com/myfolder
Tenga en cuenta que este es un ejemplo interactivo, pero podría hacerlo no interactivo almacenando la contraseña en el archivo por lotes.