Dai un'occhiata a ncftp , viene fornito con un'utilità (ncftpput ) che può essere scriptato per questo scopo:
$ ncftpput -R ftp.server.com /remote/path /backup
Il -R flag significa modalità ricorsiva. Puoi avere i tuoi dettagli di autenticazione in un file separato. Vedi la manpage (ncftpput(1) ) per i dettagli.
Un'altra alternativa potrebbe essere l'utilizzo di CurlFtpFS, un driver del file system FUSE che espone un host FTP come una directory montata (consentendo di accedere a quei file con qualsiasi strumento regolare, incluso cp ). Non so quanto funzioni bene, ma da una rapida ricerca su Google sembra molto promettente. CurlFtpFS risale più indietro rispetto a FUSE in realtà, quindi dovrebbe essere stabile.
Per usarlo, installa il pacchetto appropriato per la tua distribuzione (ad esempio, Arch e Debian usano il nome del pacchetto curlftpfs ), caricare il fuse modulo e sudo curlftpfs ftp.example.com /mnt/ftp/ -o user=username:password,allow_other , sostituendo i valori appropriati per nome server, punto di montaggio, nome utente e password.
Ci sono ulteriori dettagli nella pagina collegata, ma questo dovrebbe aiutarti a iniziare.
Potresti usare lftp
lftp ftp://user:example@unixlinux.online -e "mirror -e -R /local/folder /remote/folder ; quit"