Invocar rsync sobre ssh como acima (sem outras opções de conexão) fará com que o sshd remoto crie um sub-processo como este (supondo que seu shell padrão no host remoto seja bash):
bash -c rsync --server [-options] [--long-options] ...
Este shell é o único que faz o seu arquivo init e assim no seu arquivo init você pode fazer uso da variável shell
BASH_EXECUTION_STRING
The command argument to the -c invocation option.
assim:
if [[ "$BASH_EXECUTION_STRING" == rsync\ --server\ * ]]; then return; fi
Shells gerados por conexões SSH regulares (não rsync) não corresponderão a esse comando e, portanto, se comportarão normalmente.