Measuring directory sizes

I wanted to take out a very simple report on the largest sub folders in terms of size, for a profile area on a client site. We have tools to do this, but scripting it was in this case a very quick and dirty way to get the job done.

This script is reusable on all folders. It will enumerate the size of the content of all sub folders on the folder on which you run it, measured in megabytes.

 

SQL non-system database backup using Powershell

Traditionally most People have been automating database backups in Microsoft SQL server using TransactSQL, and then using osql to execute the code through Windows Task Scheduler. With the advent of MSSQL 2012, using Powershell to automate SQL related taks has suddenly become a lot easier.

This script selects only user databases though, ignoring system databases and leaves you with only what should be important to you.

As a part of a migration at a client, I was given the task of creating an efficient backup strategy with minimal effort. Using TransactSQL would definitely solve the task, but for future reference, I always try to use Powershell when applicable.

So how does the script work? Well, first we collect paths and dates necessary to perform the backup and name the file for the backup set. The backup file is tagged with the week number and the script is meant to create a backup set every week.

Next we create two Functions. The first creates a full backup, the second will add incremental backups to the backup set file created by the first function. I.e., the second will be pointless if the first has not run.

Last, we choose which of the previously created functions to run. This is also where you choose when to create the full backup set. Simply change the weekday in the script. Mind your spelling though, it needs to be accurate.

So this is all nice and dandy. It’ll keep churning out backup sets every week, filling up your storage SAN, local hard drive, cloud storage or what ever storage you choose to add the backup set to. So what can we do to clean it up?

Well, keep in mind that all backup sets are tagged with the week number in the file name. This makes it easy to choose which backup set to restore, but it also makes it easy to choose which to delete. Simply {$CurrentWeek – 2}. Here a script that does exactly that:

Please feel free to leave your comments if you have and questions regarding this solution, and I’d love to hear from anyone who uses this fully or partially 🙂

Premier Field Engineer

This is not a technical post. This post is rather to let you know that I’ve started a new position wth Microsoft. I’ll be working as Premier Field Engineer, based out of Microsofts Office in Oslo, Norway.

Hopefully this means that I’ll be able to report more on upcoming events, product updates and insider tips, in addition to my regular techtips and script. I hope that I’ll be able to blog more in the future, and that I give you all some input on the inside life in the Microsoft organization.

Kind regards,
Reidar J. Boldevin
Premier Field Engineer
Microsoft