Cronジョブのマスターと基本的なサーバータスクの自動化

書かれた記事:
  • 特集記事
  • 更新:9月06、2017

Webホスティングは、外出先で毎日の1時間ごとに専念できないプロフェッショナル向けに、簡単でわかりやすく、完璧に設計されています。 ホスティングサーバーの管理 関連するタスク。

そのために、UnixまたはLinuxに基づくほぼすべてのサーバーは、cronジョブ"または" Crontab "

このソフトウェアユーティリティは、Microsoft Windowsのタスクスケジューラによく似ています。特定の時間に特定のことを実行するように指示され、ユーザーがこれらのタスクを手動で実行することを防ぎます。 これは、多くの日常的なサーバー保守、バックアップ、および通信の手順が完了するまで数時間から数時間かかることがあると考えている場合に特に重要です。 ほとんどの人は、夜間にファイルをバックアップして連絡先を管理するのではなく、オフィスで1日後帰宅してリラックスしたいと思っています。

これらの人々は幸運です。すべてのタスクは毎日、毎週、または毎月、または場合によってはさらに離れてスケジュールでき、Crontabユーティリティ内のサーバーにタスクの実行方法に関する特定の指示を与えることができるためです。 、完了したときの確認方法、および実行中のタスクが実際に終了したときの対処方法。

ユーザーは、サーバーが何時間も重労働をしている間にリラックスできます。 または、自分のオフィスで仕事をしている間に、単に仕事が完了するようにスケジュールすることもできます。 自動化されているため、Cronジョブは1日のほぼすべての時間に実行できます。

Cron Jobの形式を使用して時間を伝えることを学ぶ

Cronの仕事を習得するのは簡単なことではありません。 実際、標準で利用可能な最も高度な構成の1つとして広く考えられています リナックス or Unixの ウェブサーバー。 これは、部分的には、これらのジョブをプログラミングするために使用される言語が古くて、場合によっては完全に後方にあるためです。 問題のCronの仕事やCronのタブに一定の時間を伝えることになると、事は確かに後方に、逆さになり、少し混乱します。

Cronジョブを介して時刻を伝えるフォーマットは次のとおりです。

MINUTE HOUR MONTHTH DAY-OF-WEEK COMMAND

それはすべて1行であり、偶数の縮小と縮小で偶数とコマンドが並んでいます。 ほとんどの開発者とサーバーオペレーターを無理やりさせるだけで十分です。実際、彼らの多くは、効率的なCronジョブを開発するためにハングアップするまでそうします。

Cronジョブの時間のすべての側面は数値であることに注意することが重要です。 月名、日名、またはタスクを実行する時間の開発中に使用される他の単語はありません。

したがって、7月10thの30:7 amにCronジョブを設定して、Cronジョブの時間が厳密に数値になったときにどのように見えるかを把握してみましょう。

30 10 07 07 *

上記の例では、ジョブは7番目の月の7日目の10時間の30番目の分に完了する必要があります。 月または日が1桁のみの場合でも、すべての数字は2桁です。 これは覚えておくことが重要です。1桁でCronジョブが無効になり、実行されないことが多いためです。 con構造の最後にあるアスタリスクは、曜日を問わずジョブを実行する必要があることを示しています。 これは重要です。水曜日に03に設定すると、その日が火曜日だった場合、タスクは7月の7thにのみ実行されることになるためです。 これは、7年または8年に1回発生する可能性があり、ほとんどの開発者が考慮することは少し吸収されます。

Cronジョブを設定するときに考慮すべきもう1つの重要な考慮事項は、時間形式が24時の民間時間ではなく、12時の軍用時間であることです。 Cronジョブの時刻を10 pmに変更するには、現在の22の代わりに時が10に変更されます。

Cronのジョブの例

最後に、ユーザーが毎日、毎月、または年単位でタスクを完了したいだけであれば、特定の時間を完全に設定するプロセスをスキップできます。 代わりに、Cronのジョブプロセスは、ジョブがこれらの頻繁な間隔でいつ行われるかを決定する変数を単純に使用することを提供します。 これらには、

  • @daily
  • @monthly
  • @年齢

時間を厳密に制御し、時間と分を使用して決定することはできないため、これらのジョブは、要求された間隔で、サーバーの内部時間に従って正確に真夜中に発生します。 つまり、@ monthly間隔は、毎月1日の真夜中に発生します。 @yearly間隔は、毎年最初の日の真夜中に発生します。 また、@ daily間隔は、年の1日ごとに真夜中に発生します。

特定の日付、時間、曜日を設定するよりはるかに簡単ですが、特定の顧客には、月または年の初日に深夜に実行される特定のタスクにはいくつかの欠点があります。 正確な深夜に発生するタスクをスケジュールするときは、管理者とサイト訪問者の両方のニーズに常に注意してください。

"COMMAND"変数とその処理方法の把握

上記の例に見られるように、実際のCronジョブの構築は比較的簡単です。 日付を最初に定義してから、Cronジョブの機能をすぐに定義する必要があります。 この関数は、PHPスクリプトの実行や、サーバーのファイルとデータをリモートファイルまたはローカルファイルに保存するカスタマイズされたバックアップスクリプトの実行など、文字通り何でもかまいません。 明確にするために、前に使用した例に基づいて、7月の7thの午前中に10:30でPHPスクリプトを実行するようにCronジョブに指示します。 このPHPスクリプトは「backup.php」と呼ばれます。PHPファイルは、サーバーから指示があった場合に月の7日にサイトファイルを収集、圧縮、保存する完全なバックアップスクリプトであると想定します。 これは次のようなものです。

30 10 07 07 * http://your-domain-name.com/backup-scripts/backup.php

このCronジョブがサーバーのCronタブのリストに入力されると、毎年7月10thごとに30:7 amに自動的に実行されます。 「backup-scripts」ディレクトリにあるPHPバックアップスクリプトを実行します。これがCronジョブセットアップの真の天才です。

サイトバックアップやキャッシュフラッシュなどのユーザーの高度なコマンドを実行する必要はなく、指定された間隔で、または特定の日付に特定の時刻に既存のスクリプトを実行することができます。 これは、ユーザが既に知っていることを超えて高度なプログラミング知識が必要ないことを意味します。 PHPは完全にバックアップサイトファイルを扱うことができます。より洗練されたユーザがLinuxサーバ用に開発するより高度なファイルやプログラミング言語もあります。

この簡単な設定は、あらかじめ作成されたスクリプトがユーザーの入力に関係なくそれらのアクションの実行を提供する限り、事実上何でも行うことができます。 これは、Cronタブ内でCronジョブによって実行されるスクリプトは完全に自動化され、単独で実行できることを意味します。 たとえば、WordPressのインデックスやテーマファイルを毎日同時に実行するようにCronジョブに指示することは不可能(かつ単純に非論理的)です。 単にアクションや自動プロセスが定義されておらず、Cronジョブは確実にファイルを実行しますが、ユーザー入力が別の方法で提供されるまでは何もせず静的になります。

このため、バックアップスクリプトなどをCronジョブで使用するようにコーディングまたはダウンロードする場合は、機能を正常に実行するために、ユーザー入力がまったく必要ないことを必ず確認してください。 自動化されたタスクスケジューラは、実行するファイル内の自動化されたプロセスとペアにする必要があります。 このルールには例外はありません。

一般的なサーバーでCronタブファイル全体をマスタリングする

実行のために指定されたすべての特定のCronジョブは、Cronタブと呼ばれるより大きなファイルの中にあります。 一部のサーバーには、複数の種類のアプリケーションと自動入力用の複数のCronタブがありますが、これはまれであり、ほとんどの先進的なサーバー運営者と所有者にとってはあまりありません。 Cronタブファイルを1つだけ持っている人は、以下のコマンドを使用してファイル全体を編集、削除、または表示することができます。

crontab -r

このコマンドは、Cronタブファイル全体を削除(つまり「r」)または削除します。 これにより、すべてのコマンドと自動スクリプトが効果的に削除され、再構築可能な空のファイルに復元されます。 これは、ファイルを破損したり、何らかの方法でタスクと時間を不適切に使用したりしたユーザーに適したオプションです。 場合によっては、最初からやり直すほうが簡単な場合もあります。

crontab -e

この場合、「e」は「編集」を意味します。ファイルを完全に削除するのではなく、Cronタブで説明されている機能を編集したいユーザーは、このコマンドをコマンドラインエディタに使用することができます。新しいタスクを追加したり、古いタスクを削除したり、Cronタブ文書内にリストされている各Cronジョブの適用可能なスケジュール時間を変更することができます。

crontab -l

この場合、「L」を「look」に関連付けることで簡単に思い出せます。 このコマンドを使用すると、サーバー管理者は、サーバーから完全に削除したり、コンテンツを編集したりすることなく、Cronタブファイルの完全なコンテンツを表示できます。 Cronタブのコンテンツのこの読み取り専用表示は、どのタスクがどの時間にスケジュールされているかを記憶し、ファイル自体の整合性を検証するのに最適です。

CronジョブとCronタブ自動化ファイルをマスターすることが重要である理由

一般に、サーバーについて自動化されたのは、ハードディスクの回転とハードウェア機能のパフォーマンスだけです。 ただし、サーバーは、ソフトウェアコントロールパネルを表示するだけでなく、ユーザーがハードディスクに置いたPHPまたはPerlのインストールをアップグレードするだけでなく、日常的かつ驚異的な作業を行うように訓練され、指導されなければなりません。

サーバーが定期的に実行できる最も重要な機能の1つは、データと設定のサイトバックアップの作成であることを覚えておくことが重要です。 Cronジョブなしでこのプロセスを自動化する方法は事実上ありません。インターネットの性質と毎日サイトを通過するすべての悪意のある訪問者のために、このプロセスを毎日または毎週自動化しないと重大な結果を招く可能性がありますそして壊滅的なデータ損失。

ただし、それ以外にも、Cronジョブプロセスを使用して自動化する必要のあるタスクがいくつかあります。 これらのタスクには、サイトの訪問者に古いイメージまたは印刷されたコンテンツを表示する可能性のあるサイトキャッシュのパージが含まれます。 また、古いファイルの削除、古いディレクトリとイメージのクリーンアップ、サーバーのハードディスクドライブに保存されているすべてのものが最新で破損していないことの確認も含まれます。

健全なパーソナルコンピュータが自動的にディスクのメンテナンス、ウイルス対策およびマルウェアスキャン、ソフトウェア更新、およびファイルの削除をスケジュールするのと同様に、健全なサーバーは、自身を管理し、良好な状態を保つように構成する必要があります。 そうしないと、クラッシュ、ハッキングの試み、利益の損失、広告、コンテンツの作成、さらには検索エンジンランキングのステータスにつながるデータの損失に脆弱になります。

容易に学びやすく、導入が容易

標準のCronタブ内でCronジョブを作成することは、サーバー管理者が実行するのが最も簡単な作業の1つです。

このプロセスは標準のコマンドラインの中にあり、時間の各セグメントを2桁のコードに分解します。

タスクを自動化するために新しいプログラミング言語についての追加知識は必要ないので、サービスは本質的に、管理者が既に所有している既存のプログラミングおよびサーバー操作の知識に基づいています。 この場合、必須のサーバー機能を自動化したり、サイトのデータと操作の整合性を確保したりすることができない理由はありません。

ジェリーローについて

WebHostingSecretRevealed.net(WHSR)の創設者 - 100,000のユーザによって信頼され、使用されているホスティングレビュー。 15年以上のWebホスティング、アフィリエイトマーケティング、およびSEOの経験。 ProBlogger.net、Business.com、SocialMediaToday.comなどへの貢献者。