Eu tive exatamente o mesmo problema, e minha solução foi algo que eu nunca tinha pensado. No meu caso rsync funcionou bem o tempo todo até que parou durante alguns testes após as alterações em um dos meus scripts. O culpado foi que o meu usuário UNIX atualmente logado estava em uma pasta inexistente que já foi excluída por um script.
A mensagem de erro getcwd(): No such file or directory (2) estava relacionada a $PWD , não a origem, e não ao destino.
Basta alterar a pasta para uma existente (por exemplo, cd ~ ) e executar novamente o script. Não se esqueça de alterar rsync caminhos se eles ainda não forem absolutos.