The Serv-U FTP Server lets you store users and related information in a file-based repository or an external database. By default, Serv-U uses the file-based repository, but as long as you have Serv-U Gold or Serv-U Platinum you can switch to database users at any time.
As soon as you start using Serv-U's database-resident users, you can pull user-level and group-level statistics such as number of transfers, total size of transfers, average transfer rate, and number of sign-ons from the user and group records on the database. (See the Serv-U DB Integration Guide for specific schema information.)
The Serv-U team has been busy adding new logging options (features to MSMQ and Windows Event Log are in testing now) but direct database logging won't be ready for a few more months. In the meantime, here's what I would suggest:
1) Create one table in a new DB using the following schema:
"DailyFileStats"
- Date (either date or datetime)
- Path (string)
- Bytes (large integer)
- Count (integer)
- Direction (string)
2) Create a command-line batch file or app (contact me for help with this if you need it) that does this:
- Accepts Date, Path, Bytes, Count and Direction Arguments
- Performs the appropriate INSERT and UPDATE SQL statements to put this information into your DailyFileStats table (the INSERT makes sure the record is there; the UPDATE sets or increments the data)
3) Set up two events in Serv-U:
- File Uploaded: calls your command-line app with Direction = "Upload"
- File Downloaded: calls your command-line app with Direction = "Download"
4) Set up a Windows Scheduled task to run at 00:05 on Sunday (or whenever) to pull the top uploads, downloads, and new files and turn the report into a file.
5) Use automation to mail out the report file.