#!/usr/bin/env python ########################################################## # Written 11/10/2010 and released under the GNU/GPLv2 ## # (c) Jeff Schroeder (jeffschroeder@computer.org) # # ########################################################## # # # # # randsleep - Sleep for a random number of seconds to # # # randomize the time before running an # # # arbitrary command. Useful in crontabs. # # # # # ########################################################## import sys from time import sleep from os.path import basename from random import randrange DEFAULT_SLEEP_SECS = 60 NAME = sys.argv[0] usage_string = """ Usage: %s [OPTIONAL SECONDS TO SLEEP] Sleep a random number of seconds defaulting to a number <= %s. Example: %s %s """ % (basename(NAME), DEFAULT_SLEEP_SECS, NAME, randrange(DEFAULT_SLEEP_SECS + 1) ) if len(sys.argv) == 1: # Add + 1 because randrange picks a random number # less than the number you feed it. SLEEP_SECONDS = randrange(DEFAULT_SLEEP_SECS + 1) elif len(sys.argv) == 2 and str(sys.argv[1]).isdigit(): SLEEP_SECONDS = randrange(int(sys.argv[1]) ) else: sys.stderr.write(usage_string.lstrip() ) sys.exit(1) try: sleep(SLEEP_SECONDS) except KeyboardInterrupt: sys.stderr.write("\nExiting due to CTRL-c\n") sys.exit(15)