Você pode fazer muito bem com o Bacula / Amanda. Atendendo às suas necessidades:
Revisions (SVN-style): a file has to be backed up each time it gets modified (and multiples versions of the same file can exist on the server, in fact they must)
Bacula e Amanda pegam um arquivo toda vez que ele muda.
Scalability: if I attach an USB drive to the computer, I want it's data to be backed up as well (well... That on linux might be quite easy, simply backup all /media/ except cds and dvds, but for windows?)
Nada mal no Unix (apenas faça backup de tudo em / e ele pegará a mídia), mas provavelmente não é possível no Windows - Acredito que você precise especificar as unidades que deseja capturar porque o sistema de arquivos não é uma hierarquia de árvore sob uma raiz específica (há uma raiz para cada unidade).
Dito isto, provavelmente NÃO é uma boa ideia (e se você anexar uma unidade completa de 1 TB a uma máquina que está sendo submetida a backup? Seus backups aumentaram).
Near real-time (~ 5 minutes at max) file backup: I lost a latex report and was hard to reconstruct it from scratch
Não está acontecendo - Você CAN especifica uma janela de backup de 5 minutos, mas seus logs serão preenchidos com tarefas sendo eliminadas porque já existe uma execução duplicada.
Você pode agendar backups noturnos, ou mesmo a cada 12 horas sem muita dificuldade.
(Mesmo o Time Machine da Apple só faz backups de hora em hora ... pense no maior arquivo que pode mudar e tem que ser empurrado pelo fio ...)
No-Duplication: for instance if I backup the USB's disk content from 2 different computers, I do not want the data to be backed up twice (symlink instead of hard copy in worst case)
Bacula não tem desduplicação neste momento. Não tenho certeza sobre Amanda.
Manual restore / automatic restore: it's the same for me (simply not like described here below)
Restaurações são (e devem ser) um processo manual. Não tenho ideia de como seria uma "restauração automática" (o servidor de backup decide sozinho restaurar um arquivo?):
Maybe ability to remove / exclude large files from backups
Você pode incluir ou excluir partes específicas do sistema de arquivos (até a granularidade no nível do arquivo) em Bacula.
Good logs
Listas de jobs e resultados suportados por banco de dados, com a capacidade de gravar arquivos de log, e-mail, etc. em caso de erros.
O BackupPC também pode ser capaz de atingir esses requisitos (não está certo - não o usou) - outras soluções de backup comerciais também podem ser bem-sucedidas. Você também pode querer considerar tarsnap , embora eu não tenha certeza de como o suporte do Windows é.