戻る

指定時間に一度だけコマンドを実行する

 

指定時間に一度だけコマンドを実行することができます。 指定時間になる度にコマンドを実行するcronとは違います。 定期的にコマンドを実行するか一度だけかの違いです。

コマンドの指定方法

指定時間に勝手にコマンドを実行してくれるわけですが、 まずはコマンドの指定方法を説明しましょう。 時間の指定方法はその後で。

とりあえず、今から1分後にrm file を実行する場合を例に説明しましょう

標準入力から読み込む

$ at now+ 1 minutes とタイプすると、

warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh
at>
の様に表示されます。 ここに実行したいコマンドを普通に記述します。 改行してコマンドを複数記述することもできます。 その場合は、記述した順番にコマンドが実行されます。 で、気の済むまでコマンドを記述しまくった後は「Ctrl」+「D」 を同時にタイプします。すると時間になると時動的にコマンドが実行されます。

ファイルから読み込む

いちいちタイプして指定するのが面倒だとか、 長すぎて途中で間違えそうだとか何だとかって 思うことがあるかもしれません。 その場合は、実行したいコマンドを一度ファイルに書き込んでしまいます。 書き方は普通にコマンドを実行するのと同じように書きます。 改行で複数のコマンドを記述することができます。


# 例
touch file
chmod 777 file
rm file
rm command

これを実行するには、 at now+ 1 minutes -f filename の様に"-f"の後にコマンドを記述したファイル名を指定します。 あとは指定時間を待つだけです。

注意

lsコマンドのような、何かの出力を期待するコマンドは、 期待通りに動いてくれません。 コマンドは実行されますが、 結果は画面に表示されません

時間の指定方法

at 時間 [-f filename] の様に指定します。[-f filename]は省略化です。 時間はこれから説明するように指定します。

何時何分と言う絶対時間で指定

HH:MM
指定した時間に電源を切るHHは時(数字二つ)、MMは分(数字二つ)。
midnight
真夜中(0:00)
noon
正午(12:00)
teatime
お茶の時間(16:00)
4pm
午後4時。もちろん4の代わりに他の数字を指定することができます。
4am
午前4時。もちろん4の代わりに他の数字を指定することができます。
teatime april 1
このように指定すると4月1日のteatimeを指定したことになります。日付は時間の後に指定します。1の代わりに他の数字を指定できます。aprilの代わりに他の月も指定できます。{january, february, march, april, may, june, july, august, september, october, november, december}。これは、年は今年を指定したものと見なされます。したがって、既にその日時をすぎていた場合はすぐに実行されます。
teatime march 1 2006
2006年3月1日のお茶の時間を指定できます。
teatime 03/03/06
これは06年3月3日のお茶の時間に実行してくれます。中止する点としては、月/日/年の順番で指定すると言うことです。月、日ともに数字二つで指定します。年は2桁でも4桁の数字でも指定できます。

何分後という相対指定もできます

now+ 1minutes
今から1分後の指定です。"now"と"+"の間にスペースは空けません。ただし、スペースを空けないのは"now"の場合だけです。数字は1以外にも指定できます。また、minutesの代わりにhoursで時間後、daysで日後, weeksで週後、monthsで月後の様な指定ができます。
teatime today
todayを指定すると今日実行されます。ただし、既に時間がすぎていればすぐに実行されます。todayの代わりにtomorrowを指定すると明日実行されます。
teatime + 7 days
と指定すると7日後のお茶の時間に実行されます。

at now+ 5 minuntes
今から5分後に実行されます。
at teatime today
今日のお茶の時間
at teatime april 1 -f command
今年の4月1日のお茶の時間にcommandファイルに記述したコマンドが実行されます。
at 12:36 + 1weeks
1週間後の12時36分
at 3pm -f oyatsu
今日の午後3時にoyatsuファイルに記述されたコマンドが実行されます。

戻る
フリージアネット