###導入###
| この記事では、cron と anacron について説明し、Linux で anacron を設定する方法を示します。これら 2 つのツールも比較します。
|
Linux の cron 設定
cron - システム バックアップ、アップデートなどのスケジュールされたタスクを実行するために使用されるデーモン プロセスです。これは、サーバーなど、24 時間 365 日稼働するマシン上で実行されるスケジュールされたタスクに適しています。
コマンド/スクリプトは cron タスク スクリプトで記述され、crontab ファイルでスケジュールされます。システムのデフォルトの cromtab ファイルは /etc/crontab ですが、各ユーザーは独自の cromtab ファイルを作成して、特定の時間にユーザー定義のコマンドを実行することもできます。
個人用 crontab ファイルを作成するには、次のように入力します:
リーリー
Linux で anacron をセットアップする方法
anacron は、日単位の頻度でコマンドを実行するために使用されます。 マシンが常にオンになっていないことを前提としているという点で、cron とは動作が少し異なります。
Cron は、ラップトップやデスクトップ コンピューターなど、24 時間 365 日稼働しないマシン上で毎日、毎週、毎月スケジュールされたタスクを実行するのにも適しています (LCTT 翻訳: 時間や分単位でタスクを実行するのには適していません)。
毎日、cron を使用して、夜中 (おそらく寝ている間) に実行したいスケジュールされたタスク (バックアップ スクリプトなど) があり、それまでにデスクトップやラップトップがシャットダウンされているとします。バックアップ スクリプトは実行されません。
ただし、anacron を使用すると、次回デスクトップ/ラップトップの電源を入れたときにバックアップ スクリプトが確実に実行されます。
anacron が Linux 上で動作する仕組み
anacron タスクは /etc/anacrontab にリストされており、次の形式を使用してタスクをスケジュールできます (anacron ファイル内のコメントは # で始まる必要があります)。
リーリー
上記の形式から:
- 期間 - これはタスクの頻度であり、日数、または @daily、@weekly、@monthly で指定されます。日次、週次、月次の略です。数値を使用することもできます: 1 - 毎日、7 - 毎週、30 - 毎月、または N - 日。
- 遅延 - これは、タスクを実行するまでに待機する分数です。
- job-id - これは、ログ ファイルに書き込まれるジョブの一意の名前です。
- command - これは、実行されるコマンドまたはシェル スクリプトです。
サンプル ファイルを参照するには、次のように入力します:
リーリー
これが実際に起こったことです:
- anacron 会检查任务是否已经在 period 字段指定的时间被被执行了。如果没有,则在等待 delay 字段中指定的分钟数后,执行 command字段中指定的命令。
- 一旦任务被执行了,它会使用 job-id (时间戳文件名)字段中指定的名称将日期记录在 /var/spool/anacron 目录中的时间戳文件中。
现在让我们看一个例子。这个会每天运行 /home/aaronkilik/bin/backup.sh 脚本:
@daily 10 example.daily /bin/bash /home/aaronkilik/bin/backup.sh
当机器在 backup.sh 期望被运行时是关机的,anacron 会在机器开机十分钟之后运行它,而不用再等待 7 天。
这里有两个你应该理解的 anacrontab 文件的重要变量:
-
START_HOURS_RANGE - 这个设置任务开始运行的时间范围(也就是任务只在这几个小时内运行)。
-
RANDOM_DELAY - 这定义添加到用户定义的任务延迟的最大随机延迟(默认为 45)。
这是你的 anacrontab 文件可能看上去的样子。
Anacron – /etc/anacrontab :
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/root
LOGNAME=root
# These replace cron's entries
1 5 cron.daily run-parts --report /etc/cron.daily
7 10 cron.weekly run-parts --report /etc/cron.weekly
@monthly 15 cron.monthly run-parts --report /etc/cron.monthly
@daily 10 example.daily /bin/bash /home/aaronkilik/bin/backup.sh
下面是 cron 以及 anacron 的比较,帮助你理解何时用他们其中一个。
cron |
anacron |
它是守护进程 |
它不是守护进程 |
适合服务器 |
适合桌面/笔记本电脑 |
可以让你以分钟级运行计划任务 |
只能让你以天为基础来运行计划任务 |
关机时不会执行计划任务 |
如果计划任务到期,机器是关机的,那么它会在机器下次开机后执行计划任务 |
普通用户和 root 用户都可以使用 |
只有 root 用户可以使用(使用特定的配置启动普通任务) |
cron と anacron の主な違いは、cron は継続的に実行されているマシン上で効果的に実行できるのに対し、anacron は 1 日または 1 週間以内にシャットダウンするマシンを対象としている点です。
他の方法をご存知の場合は、コメント ボックスで共有してください。
元のアドレス: https://www.tecmint.com/cron-vs-anacron-schedule-jobs-using-anacron-on-linux/
この記事のアドレス: https://www.linuxprobe.com/cron-anacron-work.html 編集者: Zhang Xiong、査読者: Pang Zengbao
この記事の元のアドレス: https://www.linuxprobe.com/cron-anacron-work.html編集者: 問題終了者、監査者: なし
この記事に関連する記事をいくつか紹介します:
- SUSE Linux 向け Zypper Package Manager の使用例
- Swift Notes 変数の説明
- 《Angular Development Practice」PDF 電子ブックの無料ダウンロード
- RSS 構文概要
- 「Spark Rapid Big Data Analysis 第 2 版」PDF 電子ブックの無料ダウンロード
- Ubuntu に Memcached をインストールする
- awk コマンドの複数の使用方法
- Go ジェネリックの基本的な使用方法
- Python または Bash を使用して Jekyll 構成ファイルを動的に生成する方法
- Linux で正確な時刻を維持できるようにする