TL; DR: não.
Depende do que você define como "backup inicial".
Primeiro, você cria um backup ( hourly.0
), que tem todos os arquivos de hoje.
Na próxima iteração, ele "copia" os arquivos ( cp -L
, apenas copia os links para os dados) na pasta hourly.1
.
Se todos os arquivos forem os mesmos de antes, o rsync não escreverá nada, então você tem um bloco de dados para um arquivo (vamos usar myfile.jpg
) e dois links ( hourly.0/myfile.jpg
e hourly.1/myfile.jpg
) apontando para o mesmo arquivo na unidade.
Na próxima iteração sem alterações, você ainda tem os mesmos dados, apenas outro ponteiro ( hourly.2/myfile.jpg
) apontando para esses dados. Se você configurou para manter três backups, ele excluirá hourly.2
, movde hourly.1
para hourly.2
, moverá hourly.0
para hourly.1
, "copiará" (criará hardlinks) de hourly.1
para criar hourly.0
e, em seguida, execute novamente o rsync.
Se o arquivo for alterado, o rsync irá "remover" o arquivo (apenas o link, na verdade) hourly.0/myfile.jpg
(os dados permanecem na unidade, pois ainda existem dois links apontando para ele). O Rsync criará um novo arquivo (link + dados) com o novo myfile.jpg
.
Então agora você tem um bloco de dados com um link para o novo arquivo, um bloco com dois links para ele para a versão antiga do arquivo.
Na próxima iteração, ele exclui o hourly.2
(um link a menos para os dados do arquivo antigo), "copia" (links) o novo arquivo (novo link para o novo arquivo. Existem dois ponteiros para os novos dados do arquivo e um para os dados das versões antigas.
Na próxima iteração, ele exclui o último link da versão antiga (dados sem links que apontam para ele, é considerado livre pelo sistema de arquivos e será sobrescrito quando necessário) e três links para os novos dados do arquivo.
Se houver um link apontando para os dados (não importa de qual diretório), esses dados permanecerão na unidade. Somente depois de excluir todos os links, os dados podem ser substituídos.