lftp deve ser capaz de fazer isso em uma etapa, em particular com lftp mirror
:
EDIT: a sintaxe do comando lftp é confusa, a chamada original que eu postei não funciona. Experimente assim:
lftp -e "mirror -R {local dir} {remote dir}" -u {username},{password} {host}
anote as aspas em torno dos argumentos para a opção -e
.