Linux Tips | |
一定の時間後にプログラムを実行するには 北浦訓行 |
一定の時間後にプログラムを実行するには、sleepコマンドやatコマンドを使用する。
sleepは、指定した時間だけシェルの実行を停止するコマンドだ。従って、
$ sleep 10;import -window root capture.tif |
のように指定すると、10秒後にimportコマンドが実行される。sleepでは、引数として停止する時間を指定する。デフォルトの単位は秒だが、数字の後にm(分)、h(時間)、d(日)を追加して、単位を変更することができる。例えば、以下のようにすると、10分後にlsコマンドが実行されることになる。
$ sleep 10m;ls |
sleepコマンドを実行している間は、当然のことながらそのシェルでの作業ができない。別にシェルを起動すればこの問題はクリアできるが、atコマンドを使えば、もっとスマートだ。
atは、指定した時間にジョブを実行するためのコマンドだ。atコマンドは、atdというデーモンが起動していなければ使えない。多くのディストリビューションでは自動実行されているはずだが、一応以下のコマンドで確認する。
$ ps ax | grep atd |
さて、atコマンドで実行するジョブを指定するには、標準入力から指定する方法と、ファイルに記述したコマンドを実行させる方法がある。
標準入力から指定するには、以下のように行う。
$ at now + 1 hour |
ファイルに記述したコマンドを実行させるには、
ls |
などと記述したファイル(ここでは「at-test」という名前)をテキストエディタで作成しておき、-fオプションでそのファイルを指定する。
$ at noon -f at-test |
指定したコマンドの実行結果が表示される場合は、メールでその内容が実行を指定したユーザーあてに送られる。例えば、上記の例のように、lsとdateコマンドを指定した場合は、ディレクトリの一覧とdateコマンドの結果が送られることになる。
atコマンドで予約したジョブを見るには、atqコマンドを使用する。また、予約したジョブをキャンセルするには、キャンセルしたいジョブ番号を引数として指定して、atrmコマンドを実行する。
$ atq |
時間の指定では、MM/DD/YYやhh:mmといった形式のほかにも、now、am、pm、noon、midnight、teatime、sun、mon、todayなどの時間を表す言葉が使用できる。これらは、timespecというファイルに記述してある。timespecの場所は、ディストリビューションによって異なるので、locateまたはfindコマンドで検索するとよい。ちなみに、VineLinux 2.1は/usr/doc/at-3.1.7/に、Turbolinux Workstation 6.0は/usr/share/doc/packages/at-3.1.8/にある。
Linux Tips Index |
Linux Squareフォーラム Linux Tipsカテゴリ別インデックス |
|
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|