atコマンドで備忘

よくスケジュール管理ツールで指定時間になるとアラームが鳴る設定がされていることがあるが、UNIXコマンドのatもマニアックだけど使える。cronと違って一回限りの実行。

echo "echo 'Do not forget to submit!' | mail -s 'Time to submit' me@example.com" | at 10:30 Aug 15

といった具合に。

at -lもしくは atq コマンドで予約されているジョブの一覧が得られる。
更に、上記コマンドでジョブ番号が分かれば、at -c <ジョブ番号> で実際に実行されるジョブの内容が、実行時の環境変数も含めて詳細に表示される。

時刻指定は上記例のようなHH:MM形式の他に、midnight、noon、teatime (午後4時のお茶の時間)なんてのも使えるようだ。それから、日にちについてはtodayやtomorrowもOKなほか、今から1時間後、といった指定も at now + 1hour という形式で指定出来る。明日のお茶の時間は、at teatime tomorrow となる。

なお、/etc/at.allow や /etc/at.deny による設定次第では、スーパーユーザでないと使えない可能性がある。

WikiPediaの記事