BackupPC running on a Linux server is my suggestion:
BackupPC Features [snipped]
- A clever pooling scheme minimizes disk storage and disk I/O. Identical files across multiple backups of the same or different PCs are stored only once resulting in substantial savings in disk storage and disk I/O.
- Optional compression support further reducing disk storage. Since only new files (not already pooled) need to be compressed, there is only a modest impact on CPU time.
- A powerful web (http/cgi) user interface allows administrators to view log files, configuration, current status and allows users to initiate and cancel backups and browse and restore files from backups.
- Flexible configuration parameters allow multiple backups to be performed in parallel, specification of which shares to backup, which directories to backup or not backup, various schedules for full and incremental backups, schedules for email reminders to users and so on. Configuration parameters can be set system-wide or also on a per-PC basis.
- Tested on Linux, Freenix and Solaris hosts, and Linux, Win95, Win98, Win2000 and WinXP clients.
We used it to backup data from 30 sites (Windows and Linux servers) to a central location via VPN tunnels across the Internet.