GNU/Linux >> Linux の 問題 >  >> Linux

at、atq、atrm、batch コマンドを 9 つの例を使用して理解する

at、batch、cron の 3 つのコマンドのいずれかを使用して、UNIX / Linux でバッチ ジョブを実行できます。

この記事では、at コマンドを使用してジョブをスケジュールする方法、ジョブを表示する方法、およびジョブを削除する方法を確認しましょう。 .

次の 2 つの方法で at ジョブをスケジュールできます。

  • 特定の時間に実行されるようにジョブをスケジュールします。たとえば、7 月 3 日午前 10 時
  • 今からの相対時間でジョブを実行するようにスケジュールします。たとえば、今から 5 時間後。

1.特定の日時を使用して at ジョブをスケジュールする

構文:

$ at time date

たとえば、5 月 20 日の午前 11 時にジョブをスケジュールするには、次の at コマンドを使用します。

$ at 11 am may 20

2.相対時間を使用して at ジョブをスケジュールする

今からの相対時間を使用して実行するジョブをスケジュールできます。

構文:

$ at now + COUNT UNIT

たとえば、次のジョブは今から 1 分後に実行されます。

$ at now + 1 min

上記の例では、stdin からコマンドを読み取り、1 分後にジョブを実行します。時刻の形式に何か間違ったものを指定すると、「時刻が正しくありません」というエラーが表示されます

次の at コマンドを使用して、今から 1 時間後 (または) 1 日後にバックグラウンド ジョブをスケジュールできます。

$ at now + 1 hour

$ at now + 1 day

at コマンドと同様に、crontab を使用してスケジュールされた時間にジョブを実行することもできます。以前の 15 の cron コマンド例の記事を参照してください。

3. atq を使用してスケジュールされた at ジョブをすべて表示

atq コマンド (または at -l) を使用して、スケジュール済みまたは現在実行中のすべての at コマンド ジョブを表示できます。

次の atq コマンドは、保留中のすべての at を一覧表示します 仕事。表示される最初の数字はジョブ番号で、その後にプロセスが実行される時間とユーザー名が続きます。

$ atq
4	2010-04-20 11:00 a sathiya

4. atrm を使用してスケジュールされた at ジョブを削除/削除します

特定のジョブを削除するには、atrm コマンド (または at -d) を使用できます。たとえば、ジョブ番号 4 を削除するには、次の atrm コマンドを使用します。

$ atrm 4

5.バッチ コマンドを使用してシステム負荷平均が 1.5 未満の場合にのみジョブを実行する

システム負荷平均が 1.5 未満のときに実行されるコマンド入力を要求するバッチ コマンドを使用して、ジョブをスケジュールできます。

$ batch

入力が正常に完了すると、ジョブ番号が取得されます。バッチ ジョブの一覧表示と削除には、上記で説明した at コマンドを使用できます。

6. -f オプションを使用してファイルからジョブをスケジュール

最初に、at コマンドを使用してバックグラウンドで実行するすべてのコマンドまたはシェル スクリプトを含むテキスト ファイルを作成します。

$ cat myjobs.txt
/home/sathiya/calculate-space.sh
/path/to/a/shell-script
/path/to/any/command/or/script

-f オプションを使用すると、stdin の代わりにファイルから入力を取得する at コマンドを作成できます。

at コマンドに従うと、myjobs.txt のすべてのジョブが今から 1 時間後に実行されます。

$ at -f myjobs.txt now + 1 hour

7.特定のユーザーによる at ジョブの使用の許可と拒否

システム管理者は、誰が at ジョブをスケジュールできるか、誰が at.allow および at.deny ファイルを使用できないかを制御できます。

最初に、システムは at.allow ファイルをチェックします。 at.allow が存在する場合、at.allow ファイルで指定されたユーザー名のみが at コマンドの使用を許可されます。

次に、(at.allow が存在しない場合)、システムは at.deny ファイルをチェックします。 at.deny が存在する場合、at.deny ファイルで指定されたユーザー名は at コマンドを使用できません。

デフォルトでは、ほとんどのシステムは at.deny ファイルを使用して、www-data、guest、backup、man user などの特定のユーザーによる at コマンドの使用を停止します。

8. nohup などのコマンドで実行

前に説明した nohup コマンドと同様に、at コマンドを使用してリモート サーバーでコマンド (またはシェル スクリプト) を実行し、サーバーからログアウトすることができます。

$ at -f myjob now + 1 min

$ exit

注:サーバーを終了した後でも、myjob は引き続き実行されます。

9.コマンド時の追加フォーマット

次の at コマンドの日時形式のいずれかを使用できます:

$ at 10 am tomorrow

$ at 11:00 next month

$ at 22:00 today

$ at now + 1 week

$ at noon

Linux
  1. scpコマンドを使用する10の実際的な例

  2. 10 の例を含む最も単純な Linux コマンド

  3. 15 の便利な Bash シェル組み込みコマンド (例付き)

  1. 5 実用的な Linux fuser コマンドの例

  2. ネットワークのトラブルシューティングに tcpdump コマンドを使用する例

  3. Linux での dmsetup コマンドの使用例

  1. Linuxコマンド-概要と例

  2. Unixでシェルコマンドを編集するためにViキーを使用しますか?

  3. cron ジョブはどのタイムゾーンを使用していますか?