Linux
 Computer >> コンピューター >  >> システム >> Linux

「at」ユーティリティを使用してLinuxでコマンドをスケジュールする方法

「at」ユーティリティを使用してLinuxでコマンドをスケジュールする方法

忙しいサーバーを初めて管理したとき、人々がサーバーを使用していないときに、サーバーを再起動するのに適切な時間を待たなければなりませんでした。私はこれが午前3時頃に起こったことに気づきました。それから、「これは不便です。サーバーを再起動するためだけに、不当な時間に目を覚ます必要があります」と思いました。 5秒後、私はそれが愚かな考えだと気づきました。 「これはLinuxです。このような単純なタスクを自動化するのは簡単だと確信しています。」したがって、at 発見されました。

ユーティリティは非常に使いやすいです。日時をコマンドラインパラメータとして渡してから、実行するコマンドを1つ以上入力するだけです。

サーバーでは、無人でアクションを実行することが多いため、このようなプログラムがあると便利です。ただし、デスクトップでもat 非常に便利なツールになります。たとえば、非常に大きなファイルをダウンロードするとします。 PCを深夜にシャットダウンするようにスケジュールすることができます。また、atに伝えることができます あなたがしなければならないことについてあなたに思い出させるために。考えられるほとんどすべてのアクションは、適切なツールとコマンドラインオプションを使用してスケジュールできます。

さまざまなLinuxディストリビューションに「at」をインストールする方法

DebianまたはDebianに基づくディストリビューションでは、次のコマンドを実行します:

 sudo apt install at 

「at」ユーティリティを使用してLinuxでコマンドをスケジュールする方法

Fedoraで、以下を実行します:

 sudo dnf install at 

Arch Linuxに「at」をインストールするには:

 sudo pacman -S at 

そして、openSUSEで:

 sudo zypper install at 

「at」デーモンの自動起動を有効にしてサービスを実行する

一部のディストリビューションでは、起動時に「at」デーモンの起動が自動的に有効になります。他の人はしません。確認先:

 systemctl is-enabled atd.service 

「at」ユーティリティを使用してLinuxでコマンドをスケジュールする方法

「無効」と表示されている場合は、次のコマンドで有効にします。

 sudo systemctl enable atd.service 

そしてデーモンを起動します:

 sudo systemctl start atd.service 

「at」コマンドをスケジュールする日時を指定する方法

次のいずれかのフォームを使用できます。

1.指定した分数、時間、日、または週の後にコマンドを実行します。

今+10分今+10時間今+10日今+10週間

「at」ユーティリティを使用してLinuxでコマンドをスケジュールする方法

2.正確な時間に実行します:

 23:10 

すでに12:00で、実行している場合:

 11:00 

その後、コマンドは明日、指定された時間に実行されます。

3.正確な日時に実行します:

12月31日12:00

時刻と日付を指定する他の代替方法は、オンラインの「at」マニュアルにあります。

「at」コマンドの使用方法

お気づきかもしれませんが、スケジュール時刻を指定すると、次の画像のようなプロンプトが表示されます。

「at」ユーティリティを使用してLinuxでコマンドをスケジュールする方法

ここでは、実行するコマンドを入力するだけです。これらは現在のユーザー名で実行されます。指定した時間に実行するコマンドを入力して、Enterキーを押します。後続のコマンドを実行する場合は、同じ手順を繰り返します。完了したら、 Ctrlを押します。 + D <EOT> これらのキーを押すと表示され、その後にコマンドが実行される時刻が表示されます。

ルート権限を必要とするコマンドを実行する場合は、sudoを使用しないでください 。コマンドは無人で実行されるため、sudo 誰もパスワードを入力できないため、機能しません。代わりに、最初にrootユーザーとしてログインします:

 sudo -i 

そして、通常どおり「at」コマンドを使用します。これで、すべてのコマンドが通常のユーザーではなく、rootとして実行されます。

コマンドをスケジュールしたら、次のように入力します。

終了

これにより、rootユーザーアカウントからログアウトします。

「at」ユーティリティを使用してLinuxでコマンドをスケジュールする方法

このスクリーンショットで提供されている例では、シャットダウンは2分でスケジュールされました。これを自分の目的に合わせることができます。

スケジュールされたジョブが実行される前にコンピューターの電源がオフになっている場合、コンピューターは次回の起動時に実行されます(時間が経過した場合)。たとえば、午後3時にジョブをスケジュールし、午後2時にシャットダウンし、午後4時に電源をオンにすると、ジョブは午後4時に実行されます。

スケジュールされたジョブの表示および/または削除

キューに入れられたジョブは次のコマンドで表示できます:

 atq 

または

 at -l <​​/ pre> 

「at」ユーティリティを使用してLinuxでコマンドをスケジュールする方法

ジョブでスケジュールされているコマンドを確認するには、そのジョブのプレフィックス番号を使用します。

 at -c 22 

「at」ユーティリティを使用してLinuxでコマンドをスケジュールする方法

出力の最後の行には、スケジュールしたコマンドが表示されます。

ジョブを削除するには、次のようなプレフィックス番号を使用します。

 atrm 22 

グラフィカルアプリケーションを実行するための「at」をスケジュールする

まず、現在の表示変数の値を確認します:

 echo $ DISPLAY 

通常は:0になります 。

atをスケジュールする 走る。 「at」プロンプトで、DISPLAYを設定します 前の値への変数(export DISPLAY=:0 )、目的のグラフィカルアプリケーションを実行します。

「at」ユーティリティを使用してLinuxでコマンドをスケジュールする方法

前のスクリーンショットで使用されたコマンドは、次のようになります。

「at」ユーティリティを使用してLinuxでコマンドをスケジュールする方法

これで、グラフィカルアプリが「あなたの顔」になり、電話のアラームよりも重要な仕事を思い出させるようになります。

結論

「at」の使用は簡単です。難しいのは、あなたが望む行動を取るための創造的な方法を見つけることです。ただし、ダウンロードの開始、プログラムの終了、コンピューターのスタンバイ状態など、ほとんど何でもできます。


  1. Android-x86 を使用して Linux で Android ゲームを実行する方法

    この記事では、ビンテージ ゲームを楽しみながら Linux で仮想マシンを使用する方法を学びます。 Android フォンをお持ちの場合、有罪の喜びの 1 つは、非常に面白いゲームをプレイすることかもしれません。または、携帯電話でのみ実行されるアプリケーションがある可能性もあります。 そして、デスクトップ PC で同じゲームを実行できるとしたらどうでしょうか? シナリオを単純化するために、アプリケーションが Android で実行されると仮定しましょう。 問題を解決する 1 つの方法は、PC で Android エミュレーターを実行することです。ただし、Android-x86 のように

  2. アプリで先延ばしを避ける方法は?

    私たちはしばしば、いずれかのソーシャル メディア アプリを利用しています。それは私たちの生活の不可欠な部分になっており、必要なすべてのタスクを圧倒しているように見えることもあります.生活からスマートフォンを取り除いたら、人々がどのように見えるか見てみましょう。 物事を遅らせたり延期したりすることは大きな問題であり、この習慣では目標を達成することは不可能に思えます.これは、私たちの日常生活におけるスマートフォンの使用の増加に伴い、より大きな問題と見なされています.驚いたことに、先延ばしに打ち勝つのに役立つアプリがいくつかあるため、解決策は携帯電話にもあります。 私たちは、スマートフォンへの依