ウェブサイト検索

Linux コマンドのスケジュール方法 - およびそのタイミング


事前にLinuxのアクションをスケジュールする必要がありますか?このコマンドが役立ちます。

Linuxには多くのトリックがあり、それが地球上で最も強力で柔軟なオペレーティングシステムの一つとなるのに役立っています。

例えば、コマンドをスケジュールする能力について考えてみましょう。何かを印刷する必要があるとしますが、誰かが朝からプリンターを使っていて、一向にやめる気配がありません。そのファイルを印刷する必要があるのですが、記憶を信頼してはいけません。この時こそ、そのファイルを印刷するスケジュールを設定するのが良い時です。そうすれば、プリンターが確実に使用可能なときに印刷が行われるでしょう。

あなたは何をしますか?で向きます。

at コマンドとは何ですか?

atコマンドは、特定の日時にコマンドまたはスクリプトの単一インスタンスを実行するスケジュールを設定することを可能にします。これは、Linuxディストリビューションにデフォルトでインストールされているはずです。

基本的に、at は次のように実行されます:

at [OPTION(s)] execution_time

ここで、OPTION(オプション)は追加できるさまざまなオプションであり、execution_timeはコマンドの実行時間/日付です。

at を使用すると、特定の時間にコマンドの実行をスケジュールしたり、現在の時間から特定の分数または時間数後、特定の日付/時間に、さらには数日先までスケジュールすることができます -- 本当に柔軟です。

特定の時間に自分のコンピュータのシャットダウンをスケジュールすることもできます。これは、夜にPCをシャットダウンしたいけれど、忘れがちな場合に便利です。

atの使い方

上記の例に従って、特定の時間にファイルを印刷しましょう。まず、コマンドラインでの印刷はlpコマンドで処理されます。もしあなたのマシンに接続されているプリンターが1台だけであれば、lpにどのプリンターを使うかを伝える必要はありません。また、echoコマンドとパイプも使用する必要があります。複雑に聞こえるかもしれませんが、そうではありません。やり方は以下の通りです。

1. ターミナルウィンドウを開く

まず最初に、Linuxディストリビューションでターミナルウィンドウを開く必要があります。それを行ったら、次のコマンドを使用してatがインストールされているか確認してください:

at -V

出力にはこのようなものが表示されるはずです:

at version 3.2.5
Please report bugs to the Debian bug tracking system (http://bugs.debian.org/)
or contact the maintainers (at@packages.debian.org).

コマンドの最初の部分を構築します。

私が「at」コマンドの構文は「at [OPTION(s)] execution_time」と言ったのを覚えていますか?それはコマンド自体の構造であり、「at」で実行したいコマンドは含まれていません。

混乱していますか? もう心配いりません。私たちは、実行するために必要なものを構築するためにechoコマンドを使用しなければなりません。私たちの例を使って、lpコマンドを使用してzdnet.txtファイルを印刷します。 そのために、以下を使用します:

echo "lp zdnet.txt"

3. 最初のコマンドの結果をatにパイプする

次に、パイプを使って最初のコマンドの出力をatコマンドに送ります。これは次のようになります:

echo "lp zdnet.txt" |

私たちの最初のコマンド「lp zdnet.txt」の出力は、ファイルzdnet.txtを印刷するためのコマンドであるという偶然の一致です。

4. 時間を設定する

現在の時間から2時間後にzdnet.txtファイルを印刷しましょう。これは現在 + 2時間です。日付も指定できます。

現在の日付から5日後の午後3時にファイルを印刷したいとしましょう。それは「午後3時 + 5日」で実行できます。

5. すべてをまとめる

私たちの全コマンドは今、このようになっています。

echo "lp zdnet.txt" | at now + 2 hours

そのコマンドを実行すると、コマンドがいつ実行されるかを知らせる出力が表示されます。たとえば、私の出力は次のようでした:

warning: commands will be executed using /bin/sh
job 1 at Mon Oct 21 10:24:00 2024

コマンドを実行した後は、zdnet.txtファイルが現在の時間から2時間後に印刷されることを確認できます。

それがLinuxでのatコマンドの使い方です。特定の時間や日付をコマンドでスケジュールする方法について詳しく知りたい場合は、マニュアルページ(man at)を参照することをお勧めします。

関連記事: