Фильтр --exclude работает следующим образом:
Если шаблон не начинается с косой черты, он совпадает в конце пути в любом месте дерева. --exclude myfile.txt соответствует любому файлу с именем myfile.txt в любом каталоге. --exclude logs/myfile.txt соответствует myfile.txt внутри любого каталога с именем logs. Если шаблон начинается с косой черты, он привязывается к корню переданных файлов. Чтобы определить, какой корень переданных файлов, удалите все после последней косой черты в исходном пути. Например, в следующей команде rsync путь к исходному файлу - /srv/files/something, поэтому корень передачи - /srv/files/.rsync -a /srv/files/something host:/backup/files/
Итак, чтобы исключить исходный файл /srv/files/logs/myfile.txt, вы должны использовать --exclude /logs/myfile.txt, где этот слэш в начале шаблона exclude относится к корню передачи, который коренится в /srv/files/ (на источнике).