Você pode aproveitar Fuse
Crie 2 pontos de extremidade de diretório de fusíveis com base em uma conexão de FTP e, em seguida, faça comandos de cópia regulares ou algo mais complexo.
Suponha que você esteja usando uma distro com base no apt (mas é o mesmo com o yum e assim por diante).
Instale o pacote curlftpfs:
apt-get install curlftpfs
Crie um diretório ligado ao ftp:
mkdir /mnt/ftp1
Faça o mesmo para o segundo:
mkdir /mnt/ftp2
Conecte-se ao host1 e ao host2:
curlftpfs user1:pass1@host1 /mnt/ftp1
curlftpfs user2:pass2@host2 /mnt/ftp2
Faça um comando de cópia simples
cp -R /mnt/ftp1/somedir /mnt/ftp2
Quando terminar, pode simplesmente desmontar as 2 montagens
umount /mnt/ftp1
umount /mnt/ftp2
Observações:
Esta solução usa o ftp simples, se você quiser tirar vantagem extra da criptografia você pode usar ftps com comandos equivalentes ou no caso do shell ftp sftp, mas você disse que uma máquina é windows então a menos que esteja usando algo como cygwin eu acho que sftp está fora de pergunta.