Linux の at, batch コマンド

2011-2-4 22:50
このエントリーをはてなブックマークに追加

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
  • ブックマーク : アクセス: 37,437回
  • カテゴリー : Linux
  • キーワード :

コメントはまだありません

No comments yet.

Sorry, the comment form is closed at this time.

33 queries. HTML convert time: 0.072 sec. Powered by WordPress. Valid XHTML
Copyright © 2003-2017 @ futuremix.org ログイン