A opção -l ( -links ) está implícita em -a ( --archive ), mas você também precisa de -K ( --keep-dirlinks ) para que os diretórios de destino possam ser links simbólicos. Você pode achar que também precisa de --delete-before para corrigir a estrutura existente.
rsync -avKP --delete --ignore-errors src/ 192.168.0.75:dst/
Olhando mais de perto o seu código original, você está interagindo com o que eu vejo agora é o nível superior do seu servidor, incluindo /bin e /usr . Nesse caso, /bin é um link simbólico para /usr/bin , mas seu código passa isso para rsync com $i/ , o que equivale a /bin/ . Portanto, rsync nunca vê isso como um link simbólico porque seu $i/ já o referenciou.
Remover o seu for loop e deixar o rsync manipular a própria árvore de diretórios permitirá que ele veja o link simbólico de nível superior e o transfira corretamente.