Solução gratuita e de código aberto baseada no git:
Use git-ftp para sincronização. Após a instalação e configuração de um repositório git local, você pode:
- git ftp init -u <usuário> -P f tp: //host.example.com/public_html #for forçar a primeira vez
- git ftp push --user <usuário> --passwd <senha> f tp: //host.example.com/public_html
Agora você só precisa observar as alterações no sistema de arquivos, adicioná-las ao seu repositório git local e enviar o seu repositório usando o comando acima.
Vantagens:
- O git-ftp funciona no Windows e no Linux (testado com o mysys git no Windows)
- integra-se perfeitamente à sua configuração de desenvolvimento, se você já estiver usando o git
- muito fácil de configurar e usar (se você estiver familiarizado com o git)
- mudanças incrementais -> economiza muita largura de banda
Desvantagens:
- você precisa encontrar uma solução para observar as alterações no sistema de arquivos (não deve ser muito difícil de fazer, por exemplo, o nodejs tem soluções para isso)
Aqui está um exemplo para um arquivo em lotes que estou usando no 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
Observe que este é um exemplo interativo, mas você pode torná-lo não interativo armazenando a senha no arquivo em lotes.