Linux の at, batch コマンド
Linux の at コマンドの使い方についてのまとめです。
1分後にスクリプトを実行
$ at -f hoge.sh now + 1min
指定時刻にスクリプトを実行
$ at -f hoge.sh 1:00
明日の午前10時に実行
$ at -f hoge.sh 10 am tomorrow
指定日の指定時刻に実行
$ at -f hoge.sh 6:15 feb 11
$ at -f hoge.sh 8 pm 2011-01-23
時刻の指定方法の詳細は、RHEL5 の場合、/usr/share/doc/at-<バージョン>/timespec ファイルに書かれていますが、わかりづらいです。
-v オプションで実行前に時刻を表示
$ at -f hoge.sh -v 1:30
at
と似たコマンドに、負荷が下がった時にツールを実行する batch
コマンドがあります。
$batch -f hoge.sh
atq コマンドでキューに入っているジョブを表示します。
$ atq 3 2011-02-03 1:00 a hoge.sh 4 2011-02-03 b fuga.sh
at コマンドはキューa、batch コマンドによるものはキュー b が指定されます。-q オプションでキューを指定できます。キューは a が優先度が高く、zが最も低くなります。
atq
コマンドでに表示されるキュー番号を用いて未実行のジョブを消すには atrm を使います。
$atq 6 2003-09-11 04:10 a foobar $ atrm 6 $ atq
標準出力・エラー出力の内容はメールで送信されます。
スーパーユーザは常に at コマンドを使用できますが、他のユーザは /etc/at.allow に記述されているユーザのみ使用できます。/etc/at.allow がなければ /etc/at.deny ファイルがチェックされて、そこに書かれていないユーザが at コマンドを使用できます。
/etc/at.allow で許可しているのに(/etc/at.deny で拒否していないのに)at コマンドを実行したときに次のエラーが出ることがあります。
$ at -f ./test.sh now + 5min PAM authentication failure: Authentication failure You do not have permission to use at.
この場合、at コマンドに setuid されていない可能性があります。root で次のコマンドを実行します。
# chmod u+s /usr/bin/at # ls -al /usr/bin/at rwsr-xr-x 1 root root 49392 11月 16 2009 /usr/bin/at
コメントはまだありません
No comments yet.
Sorry, the comment form is closed at this time.