!アラーム 打合せまでの間仕事しようというときにスマホのタイマーを使っていたけど, セットが面倒になったので,Pythonで. #!/usr/bin/env python3 import time import os from datetime import datetime from optparse import OptionParser def timer_func(y, m, d, hh, mm, num, audio, mesg="", volume=65000): now = datetime.now() req = datetime(y, m, d, hh, mm) print("Now:", now) print("Request:", req) diff = req - now wait_sec = diff.total_seconds() if wait_sec > 0: time.sleep(wait_sec) print("Now:", datetime.now(), mesg) command = "timeout 3 paplay --volume={} {}".format(volume, audio) os.system(command) for i in range(num-1): time.sleep(1) os.system(command) if __name__ == "__main__": now = datetime.now() usage = "usage: %prog [options] hh:mm" parser = OptionParser(usage=usage) parser.add_option("-y", "--year", dest="year", type="int", help="year", default=now.year) parser.add_option("-m", "--month", dest="month", type="int", help="month", default=now.month) parser.add_option("-d", "--day", dest="day", type="int", help="day", default=now.day) parser.add_option("-n", "--num", dest="num", type="int", help="the numbers of repetition", default=3) parser.add_option("-s", "--message", dest="mesg", help="message", default="") parser.add_option("-v", "--volume", dest="volume", type="int", help="volume", default=65000) parser.add_option("-a", "--audio", dest="audio", help="audio file", default="/usr/share/sounds/freedesktop/stereo/phone-incoming-call.oga") (options, args) = parser.parse_args() if len(args) < 1: parser.print_help() exit(0) (req_hour, req_min) = [int(v) for v in args[0].split(':')] timer_func(options.year, options.month, options.day, req_hour, req_min, options.num, options.audio, options.mesg, options.volume) ちょうどスクリプト実行中に日付をまたぐくらいのタイミングで実行すると, 一日前の時間をセットしてしまうことになるけど,その時はすぐにアラートなるから, 運用上は問題ないかな,と.