Minha sugestão seria rsync. Algo como:
rsync -avu --delete /source /backup
deve cuidar do backup local. Isso pode ser facilmente automatizado usando o cron, por exemplo, você poderia colocar um arquivo em /etc/cron.daily
contendo isso para executar um backup diário:
rsync -avu --delete /source /backup | mail -s "backup report" [email protected]
Você pode obter muitas informações sobre o rsync na página man ( man rsync
).
Quanto ao ftp, receio que o protocolo não se presta muito bem ao que você quer; por exemplo, determinar se um arquivo remoto é o mesmo que um local não é muito confiável, então você pode ter que ressincronizar tudo toda vez que fizer o backup. Dito isto, você poderia olhar para o wget, com o qual você pode espelhar um site ftp como este:
wget -m ftp://user:[email protected]
Eu percebo que estes não são utilitários GUI; desculpe, eu sou um cara de linha de comando. Além disso, se você quiser automatizar isso, é muito mais fácil fazer isso com utilitários de linha de comando que são projetados para serem executados de forma não interativa.