Linuxで "at"コマンドが必要なのはなぜですか?

Linuxで "at"コマンドが必要なのはなぜですか?

私はatこのコマンドを使用してコードを作業しています。周りを見回すと、バッチ操作を実行するために使用されることがわかりました。ジョブのスケジュールに使用されます。コマンドと時間(相対または絶対)が入力として提供されます。

だから私の最初の質問は:なぜatこのコマンドを使用するのですか?いつ使うべきですかat?ソフトウェアを削除しようとするいくつかのbashスクリプトコードと、再起動が必要なバックグラウンドサービスがいくつかあると、この状況が発生しました。

2番目の質問:コマンドをバッチジョブとして実行することと、コマンドを呼び出して(またはサブシェルで)直接実行することの違いは何ですか?

答え1

Bernhardの答えは正しいです。マルチユーザシステムでの夕方の不適切な特定の時間に重いプログラムを実行する機能は、仕事を提出する人や同僚にとって特に便利です。これは「喜び」の一部です。

私は博士号のほとんどを終えました。このように計算するには、スクリプトを次のように比較します。いいねこのコマンドは、他の人がコンピュータを使い続けるたびに、私のタスクの優先順位を下げると同時に、一晩中すべてのシステムリソースを消費する機能を維持します。

同じコマンドを使用してプログラムが実行されていることを確認し、必要に応じて再起動します。

また、覚えておくべきことは存在するずっと前に書いたスクリーン、tmuxなど、これはシステムからログアウトしても死なないスタンドアロンシェルを持つ簡単な方法です。

最後に、長い間使用されてきたcronとは異なることに注意してください。違いは、atが頻繁に発生するのに対して、cronは反復的で実際に一定の間隔で永久に実行する必要があるシステムタスクに適していることです。存在する独自の環境と環境変数の設定(およびオプション)を提供します。予約されたこと最小限の環境変数セットを使用してください(確認してください)。、例えば)。

答え2

私はデータに対して多くの処理タスクを実行する必要があるときatにこのコマンドを使用します。もちろん、去るとすぐにプロセスを開始することもできますが、私が忘れてしまう傾向があります。

このコマンドの結果は、定期的にスクリプトやコマンドを実行することと変わりません。

答え3

このような質問がある場合は、必ずマニュアルページを参照してください。彼らは非常に啓発的です。

何ができるか

マニュアルページから抜粋

NAME
       at, batch, atq, atrm - queue, examine or delete jobs for later execution

DESCRIPTION
       at  and  batch  read  commands  from  standard  input or a specified file
       which are to be executed at a later time, using /bin/sh.

使用法

ツールの使い方:

Usage: at [-V] [-q x] [-f file] [-mldbv] timespec ...
       at [-V] [-q x] [-f file] [-mldbv] -t time
       at -c job ...
       atq [-V] [-q x]
       atrm [-V] job ...
       batch

at4つのコマンド(at、、、atqおよび)atrmbatch含まれています。atとを使用してbatchジョブをスケジュールし、スケジュールされatqた内容を確認し、atrmジョブを実行する前に削除できます。

$ at -f <cmd> timspec

時間指定

atさまざまな方法でジョブの実行時期を指定できます。

マニュアルページから抜粋したフォーム

At は非常に複雑な時間仕様を可能にし、POSIX.2 標準を拡張します。一日の特定の時間にタスクを実行するには、HH:MM形式の時間を許可します。 (その時間が過ぎると次の日と見なされます。)真夜中、正午、ティータイム(午後4時)も指定でき、時間のサフィックスにAMまたはPMを追加して朝を表すこともできます。走るか夜。月名日(年選択可能)形式またはMMDD [CC] YY、MM / DD / [CC] YY日付形式で日付を指定して、ジョブが実行される日付を指定することもできます。リリース日、DD.MM。[CC]YYまたは[CC]YY-MM-DD。日付指定は時間指定に従う必要があります。また、今のような時間+計算時間単位を提供することができます。ここで、時間単位は分、時間、日、または週です。今日の時間に明日の時間を接尾辞として付けることで、今日のタスクを実行し、明日のタスクを実行するようにすることができます。

はい

このシェルスクリプトがあるとしましょう。

$ cat mycrontest.sh

#!/bin/bash
 echo "It is now $(date +%T) on $(date +%A)"

実行例:

$ ./mycrontest.sh
It is now 18:37:42 on Friday

課題提出の例:

$ at -f mycrontest.sh  10pm tomorrow
job 14 at Sun Jul  8 22:00:00 2007

$ at -f mycrontest.sh 2:00 tuesday
job 15 at Tue Jul 10 02:00:00 2007

$ at -f mycrontest.sh 2:00 july 11
job 16 at Wed Jul 11 02:00:00 2007

$ at -f mycrontest.sh 2:00 next week
job 17 at Sat Jul 14 02:00:00 2007

引用する

答え4

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

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

Syntax:

    $ at time date
For example, to schedule a job at 11 am on May 20, use the following at command.

    $ at 11 am may 20

関連情報