Its been almost a year since my first post on this subject. Over the past year I have moved from hosting all of my websites with Server 2003 to Server 2008, and in the course of that I had to re-setup my log zipping application.
In the course of that, I found that the previous script did not work with IIS7 logfiles. The difference being the default naming convention of the files. In IIS 6 the name was exYYMMDD.log, in IIS7 the name is u_exYYYYMMDD.log. that extra u_ was throwing off the script as it tried to parse the date out to create the zip file. So I got back in touch with my buddy who originally wrote the script and requested some features.
What we came up with is a script that determines the offset of the date in the filename and can parse the date regardless of the convention. This will allow you to run it against IIS6 or IIS7 logs without modification. (In theory you could use this against any type of log file that includes a date, but I have not tested it)
We also threw in a variable that allows the user to set how many days of logfiles to keep on the drive unzipped. In this fashion you can keep the most recent X days of logs uncompressed for troubleshooting.
I also included a batch file that will allow you to run, and/or schedule a task to run the script as needed. The files are located here. Give it a shot and let me know if it helps!
We have a variety of servers that run many different applications which log to a file. This includes IIS, SMTP, FTP, etc. The list goes on and on. It is easy to lose track of them all, and even easier to let the log files fill up your drive while your not watching!
We have had to go through and zip up or delete logs to clear up disk space many times. The full drives have on occasion caused service outages due to not being able to write to the log files. We have struggled to find an easy/inexpensive way to do this. It would be easy to write a batch script to delete all the files, but we are under PCI requirements to keep a certain amount of log files on disk for compliance reasons. Thus the need to zip up the files and delete the originals.
One of our excellent coders at my office came up with this great VB script that will do just this for us. It will curse through a directory *and all its sub directories* looking for files with the extension ‘.log’ (or whatever extension you want) and mash them all into a single date-stamped zip file.
One thing I need to mention is that this script is looking specifically for log files that have a date stamped file name (this is how it created a date stamped zip), so it will only really work on IIS logs and the like.
Take it for a spin and let me know what you think!
[UPDATE: 8/19/2011] I have a new version of this file described in the following post.