Sleep mode, waking up, RTC vs narcoleptic

I'm building an energy monitoring system for energy audits. Using the Arduino Uno with a SM5100b cellular networking shield along with temp, humidity and light sensors.

I would like your help with deep sleeping the arduino to use less power.

I would like the whole system to run on a battery and last for 6+months. The arduino needs to wake up and run code to gather sensor data, store data, and upload data to an online data base every 10 minutes. How would you tackle sleeping the arduino and waking it up?

At first I thought I could use a RTC with an alarm function to send an interrupt signal to wake up the Arduino every 10 minutes, but from what I gathered I found that the RTC's with alarms can only set one or two alarms. Are there any ways around this to set 144 alarms per day?

The narcoleptic library seems promising, too. I'm not concerned about exact timing as I will be using an RTC with this to timestamp data.

Any advice or related experience would be appreciated.

Many RTCs offer a 1 Hz square wave, which can be used to wake the Arduino as well as keep accurate time. The DS3231 is one such.

Cell phone and WiFi modules use a lot of power. Plan on very large batteries if you expect this to run for six months between charges or maintenance.