The 'sleep' idea is fine if you don't care whether it still runs should the system reboot. If you are using unix/linux, you actually have at least 2 options that I know of - cron and the 'at' queue. The 'at' queue is sometimes preferable if you are running a job a little less frequently (once per day or less), and you always want it to run. With cron, if the system happens to be down when the cron job is scheduled to run, when the system comes back up, it will only run on the next interval. If you use 'at', then any job on the queue who's time is past when the system comes back up is run immediately. It is pretty easy to write a script that, as it's last action, re-queues itself on the 'at' queue for the next interval. It all depends on what you are trying to achieve.