ある時間に音声通知
ある時間にネット会議が始まる、という場合に、他のことで集中していると忘れてしまうため、たとえばスマホでアラームを設定することがある。そのような場合に、コマンドラインから特定の時間に音声で通知するように設定する方法をまとめる。
特定の時間に音声通知
Mac で何かをしゃべらせるためのコマンドはsay
である。Windows で同等のことをするにはスクリプトを作成する方法がある。この記事では Mac のsay
コマンドを使う前提で書く。
特定の時刻にコマンドを実行するにはat
コマンドを使う。たとえば、16:00 に会議が始まることから、その5分前に「会議が始まるよ」としゃべらせるには、
say 会議が始まるよ | at 15:55
とする。明日の15:55にしゃべらせるには
say 会議が始まるよ | at 15:55 tomorrow
3日後の15:55にしゃべらせるには、現在時刻が15:55よりも前の場合は
say 会議が始まるよ | at 15:55 +3 days
として、現在時刻が15:55よりも後の場合には、
say 会議が始まるよ | at 15:55 +2 days
とする。つまり、at 15:55
では「次の15:55」になるため、+n days とすることにより、「次の15:55からn日後の15:55」が指定される。特定の日付を指定するには、たとえば8月10日の15:55であれば
say 会議が始まるよ | at 15:55 August 10
とする。
at
コマンドでスケジュールされたジョブを確認するには
atq
とすると、ジョブ番号と実行予定時刻が一覧される。その中から特定のジョブをキャンセルするには、
atrm <ジョブ番号>
とする。
毎週決まった時間に音声通知
1回きりの場合は at コマンドが便利であるが、毎週同じ時刻に繰り返すような場合にはcrontab
を使うのが良い。crontab の書式は
分 時 日 月 曜日 コマンド
であり、それぞれのフィールドには次のような値を指定する。
- 分 (0 - 59)
- 時 (0 - 23)
- 日 (1 - 31)
- 月 (1 - 12)
- 曜日 (0 - 7) (0または7は日曜日、あるいは sun, mon など)
ワイルドカードの*
を使って任意の値を指定することができる。また、特定の間隔で実行したい場合には*/<間隔>
という形式も使える。たとえば、毎週火曜日の11:45に「授業だよ」としゃべらせるには
45 11 * * tue say 授業だよ
とする。crontab を編集するためには
crontab -e
とする。デフォルトのエディタ(vi など)で編集できる。crontab というテキストファイルを作成して、それを読み込ませるには
crontab crontab
とする。crontab を表示するには
crontab -l
とする。crontab を削除するには
crontab -r
とする。