七つの大罪リストのガイドとして使用されるLinux用のソフトウェアとツールのリストを作成しています。 以前の記事のように、私たちは怠惰を言い訳として使用します Linuxの自動化ツールについて話します。 anachronのそれらのXNUMXつ。 この記事では、anacrontabの構成がどのようになっているのかを見ていきます。 anacrontabは、anacronに何をいつ実行するかを指示するものです。
anacronでは、タスクの日付は日数で固定され、、タスクの実行時にコンピュータが実行されていない場合は、起動時に起動します。
anacrontabの構成
最初に、anacronはディレクトリで実行するタスクのリストを探します /etc/anacrontab
。 割り当ては、次の形式で記述する必要があります。
período retraso identificador del trabajo comando donde:
- 期間:作業を実行しなければならない頻度。 日(英語での省略形)期間(@ daily、@ weekly、または@monthlyは日、週、または月)または数字(1は日、7は週、30は月、任意の数は月)で表すことができます。任意の日数。
- 遅れ: ジョブを開始する前に待機する時間。 たとえば、午前360時にタスクを実行する6。
- ジョブ識別子:エラーおよび結果レポートで他のジョブと区別するためにジョブに割り当てられた名前
- comando:指定された瞬間にanacronが実行しなければならない命令です。
.
私たちの意図は、システム管理とは関係のないタスクにanacronを使用することなので、 cronが使用するディレクトリをローカルユーザーフォルダに複製します。 私たちはそれをします
mkdir -p ~/.local/etc/anacrontab: ~/.local/etc/cron.daily ~/.local/etc/cron.weekly ~/.local/etc/cron.daily ~/.var/spool/anacron
これを使用して、さまざまな日次、週次、月次のスクリプトを保存するディレクトリと、anacronの最後の実行のレポートが保存される場所を作成します。
最後に、システムフォルダの代わりにローカルユーザーフォルダを使用するようにanacronに指示します。
anacron -fn -t ~/.local/etc/anacrontab -S ~/.var/spool/anacron
次に、構成ファイルを編集します。 ターミナルから次のように実行します。
nano ~/.local/etc/anacrontab:
開いたドキュメントに、次の行を追加します。
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
これらの行は、crontabについてすでに説明したのと同じ機能を果たします。 コマンドインタープリターとしてBashを使用する必要があること、および実行可能ファイルを検索するディレクトリを示します。 ドキュメントを保存します 0月+XNUMX そしてそれを閉じます Shift+X。
作成するcronフォルダーの名前と場所は任意です。。 他の情報源からの追加情報を必要とする読者を混乱させないように、デフォルトのものを維持することを選択しました。 スクリプトへのパスがacrontabに示されている限り、優先フォルダーとストレージパスを使用できます。 同じことがジョブ識別子にも当てはまります。
構成できる他のXNUMXつの変数があります。
- START_HOURS_RANGE
- RANDOM_DELAY
:ジョブが開始される時間範囲を設定します(つまり、次の時間にのみジョブを実行します)。
:これは、ジョブのユーザー定義の遅延に追加される最大ランダム遅延を定義します(デフォルトは45)。
cronとanacronの違いは何ですか?
cronは、システムおよび派生物で知られているものです。 デーモン つまり、ユーザーの介入なしにバックグラウンドで実行されるプログラムです。。 サーバーを対象としていますつまり、誰も注意を払う必要なしにほぼ恒久的に機能するが、頻繁なメンテナンス作業を必要とする機器です。
anacronは通常のプログラムです デスクトップにより適しています それらは継続的にオンではありません。 そのため、最小の時間単位が分であるcronとは異なり、最小頻度はXNUMX日です。
同じ理由で、コンピュータの電源が入っていない場合のcronには代替手段が含まれていません。または、anacronがログイン時に保留中のタスクを実行している間。 設定した時間に開始されていないジョブを検出すると、遅延フィールドで指定された分数待機した後、コマンドフィールドで指定されたコマンドを実行します。 次に、日付をタイムスタンプファイルに記録します。