Você não pode obter rsync
para informar isso por meio do código de saída. Os códigos de saída documentaram significados pré-definidos.
Acho que a melhor maneira de fazer isso a partir do java seria adicionar a opção --info=NAME
para mencionar somente nomes de diretórios e arquivos atualizados:
rsync -a --info=NAME --update user@remotehost/files/ ~/files/
Imprime os nomes dos arquivos e diretórios atualizados, um por linha, na saída padrão (fd = 0).
Em seguida, você coletaria a saída de rsync
e contaria o número de novas linhas na string.
Eu acho que uma boa maneira de coletar a saída em java
pode ser encontrada nesta resposta, mas eu não tentei: link
Fazer não usar redirectErrorStream
ou, de qualquer outra forma, mesclar a saída padrão de um fluxo de erro padrão. Se fizer isso, você contará as mensagens de erro como arquivos atualizados, não o que você deseja.