GNU/Linux >> Linux の 問題 >  >> Panels >> Webmin

スケジュールされたcronジョブ

スケジュールされたcronジョブ ファイルシステムバックアップなどの他のモジュールによって明示的または暗黙的にスケジュールされているジョブを一覧表示します。一度だけ実行されるスケジュールされたコマンドとは対照的に、スケジュールされたcronジョブは、毎時、毎週、または何でも実行されます。

モジュールのスケジュールされたcronジョブのメイン画面

cronジョブ cronデーモンによって定期的に実行されるコマンドのUnix用語です。各ジョブはUnixユーザーによって所有され、そのユーザーの権限で実行されます。それぞれに、実行される分、時間、日、月、および週のセットがあり、スケジューリングにかなりの柔軟性があります。たとえば、ジョブは10分ごと、毎日午前3時、または1月、2月、3月の月曜日から金曜日の午後5時に実行される場合があります。

cronジョブは、ログファイルのクリーンアップ、システムタイプの同期、ファイルのバックアップなど、通常のシステムタスクを実行するのに非常に役立ちます。ほとんどのLinuxディストリビューションには、オペレーティングシステムのインストールプロセスの一部としてデフォルトでセットアップされたいくつかのCronジョブがあり、不要なカーネルモジュールの削除、locateコマンドで使用されるデータベースの更新、ログファイルのローテーションなどを実行します。

構成

実際のCronジョブ構成ファイルは、Linuxディストリビューションに含まれているパッケージの一部であるか、ユーザーによって作成されているかによって、さまざまな場所に保存されます。 / var / spool / cronディレクトリは、ユーザーが手動で作成したジョブ用であり、Unixユーザーごとに1つのファイルが含まれています。 / etc /crontabファイルおよび/etc/cron.dディレクトリーの下のファイルには、ディストリビューションの一部であるジョブなど、パッケージの一部であるジョブが含まれています。

'anacron'のようなパッケージがサーバーで使用されている場合、さらにいくつかのディレクトリがcronシステムによって使用されますが、ScheduledCronJobsによって認識されない可能性があります。

Cronジョブを編集するためのWebminモジュールは、システムカテゴリの下にあります。入力すると、メインページに以下に示すようにシステム上のすべての既存のジョブの表が表示されます。アクションごとに、所有者、アクティブステータス、およびコマンドが一覧表示されます。ジョブのコマンドが長すぎる場合、ページに表示するために切り捨てられます。

コンテンツ

新しいCronジョブの作成

cronジョブの作成/編集

Webminを使用すると、システム上の任意のUnixユーザーとして実行される新しいCronジョブを簡単に作成できます。これを達成するために従うべき手順は次のとおりです。

  1. モジュールのメインページで、既存のジョブのリストの上または下にある[*新しいスケジュールされたcronジョブを作成する*]リンクをクリックします。これにより、以下に示すジョブ作成フォームが表示されます。
  2. cronジョブの実行 フィールドに、ジョブを実行するUnixユーザーの名前を入力します。ジョブによって実行されるコマンドは、ユーザーの完全な権限でユーザーのホームディレクトリで実行されます。
  3. アクティブ? フィールドはいいえに設定できます この新しいジョブを実際に実行したくない場合。これは、後日有効にするジョブを作成する場合に役立ちます。
  4. コマンド フィールドに、Cronジョブを実行するシェルコマンドを入力します。シェルプロンプトの場合と同様に、複数のコマンドを;で区切って入力でき、&tl、>、&&などの通常のシェル演算子をすべて使用できます。デフォルトでは、コマンドからの出力はすべてCronジョブの所有者に電子メールで送信されます。これを望まない場合は、出力がファイルまたは/ dev/nullにリダイレクトされていることを確認してください。
  5. コマンドへの入力に入力するもの フィールドは、実行時に入力としてコマンドに入力されます。たとえば、コマンドがmail [email protected]の場合、フィールドに入力されたものはすべてその電子メールアドレスに送信されます。
  6. 実行するタイミング セクションで、コマンドを実行する日時を選択します。 ごとに 、時間 および平日 複数の時間または日付を選択するか、すべてを選択するオプション オプション。例:
    • 3:15 amにジョブを実行する 毎週月曜日 および金曜日を変更します 選択済みのオプション 15を選択します 、時間を変更します 選択済みのオプション _3_を選択し、平日を選択します 選択済みのオプション 月曜日を選択します および金曜日 および オプションはすべてのままになります;
    • 1分ごとにジョブを実行する。各を変更します 、時間 および平日 すべてのオプション 。最小は1分ごとです。
  7. 作成をクリックします ボタンをクリックして、新しいCronジョブを追加します。選択にエラーがないと仮定すると、モジュールのメインページに戻り、新しいジョブがその所有者の横に表示されます。

cronジョブの編集

Webminを介して、またはオペレーティングシステムに含まれている、ユーザーによって作成されたものを含む既存のCronジョブは、このモジュールを使用して編集および再スケジュールできます。ただし、ディストリビューションの一部として提供されたジョブを編集する場合は注意が必要です。一部のジョブは、Webサーバー、メール、ログインログファイルの切り捨てなどの重要なタスクを実行して、ディスク領域をすべて使い果たしないようにします。既存のジョブを編集するには、次の手順に従います。

  1. モジュールのメインページで、編集するジョブのコマンドをクリックします。これにより、上の画像に似たモジュール編集フォームが表示されます。
  2. ユーザー、コマンド、アクティブステータス、実行日時など、ジョブの詳細を変更します。
  3. 完了したら、[保存]をクリックします ボタンをクリックすると、モジュールのメインページに戻ります。

上記の手順に従って既存のCronジョブを削除できますが、削除をクリックします。 保存の代わりにボタン 。編集ページの[今すぐ実行]ボタンをクリックして、ジョブをすぐに実行することもできます。これにより、コマンドが実行され、生成された出力が表示されます。

ユーザーのCronへのアクセスの制御

Scheduled Cron Jobsモジュールを使用して、コマンドラインでUnixユーザーによるcrontabコマンドへのアクセスを制御することもできます。これは、信頼できないすべてのユーザーがシステムにログインし、一部のユーザーがコマンドを実行するためにCronジョブを設定して、ログインしていないときにCPU時間を消費しないようにする場合に役立ちます。通常、デフォルトでは、すべてのユーザーがCronジョブを作成する機能がありますが、従う手順を変更するには、次の手順に従います。

  1. モジュールのメインページの下部にある[*cronジョブへのユーザーアクセスの制御*]リンクをクリックします。これにより、Cronを使用できるユーザーまたは使用できないユーザーのユーザー名を入力するためのフォームが表示されます。
  2. すべてのユーザーにアクセスを許可するには、すべてのユーザーを許可するを選択します オプション。一部のユーザーのみにアクセスを許可するには、[*リストされたユーザーのみを許可する*]オプションを選択し、テキストフィールドにユーザー名を入力します。一部のユーザーを除くすべてのユーザーにアクセスを許可するには、リストされているユーザーのみを拒否を選択します オプションを選択し、アクセスを拒否するユーザーのユーザー名をテキストフィールドに入力します。
  3. 完了したら、[保存]をクリックします ボタン。

ユーザーがCronへのアクセスを拒否された場合、そのユーザーに属するジョブを作成、編集、または削除するためにモジュールを使用することはできなくなります。ただし、既存のジョブは引き続き実行される可能性があります。

モジュールアクセス制御オプション

Webminユーザーで説明されているように、Webminユーザーモジュールを使用して、WebminユーザーがCronジョブを編集できるUnixユーザーを制御することができます。これを設定するには、最初にユーザーにモジュールへのアクセスを許可してから、次の手順を実行する必要があります。

  1. Webminユーザーモジュールで、制限するユーザーの名前の横にある[ScheduledCronJobs]をクリックします。
  2. モジュール構成を編集できますか?を変更します いいえへのフィールド 、ユーザーがWebminがジョブを作成および編集するために呼び出すコマンドを編集できないようにします。
  3. のcronジョブを編集できますを切り替えます すべてのユーザーのフィールド 他のオプションの1つに。最も一般的に使用されるのは*範囲内のUIDを持つユーザー*です。これにより、その横のフィールドに最小および最大のUIDを入力できます。ルートやビンなどのシステムユーザーのCronジョブへの信頼できないユーザーアクセスを許可しないでください。これにより、システムへのフルアクセスが明らかになり、他のWebminアクセス制御が無効になります。
  4. cronへのユーザーアクセスを制御できますか? *フィールドから*いいえ 、WebminユーザーがCronを使用して自分の制御外のユーザーを停止できないようにします。
  5. 保存をクリックします ページの下部にあるボタンをクリックして、アクセス制御をアクティブにします。

スケジュールされたcronジョブモジュールの構成

Module Configをクリックして表示できるほとんどのモジュール設定 メインページのリンクは、インストールされているオペレーティングシステムと一致するようにデフォルトで設定されており、変更する必要はほとんどありません。ただし、次の表に示すように、モジュールのユーザーインターフェイスに影響を与えるフィールドが1つあります。

その他のオペレーティングシステム

Cronは、ほとんどすべてのUnixシステムで使用でき、非常によく似た機能を備えています。つまり、このモジュールはすべてのオペレーティングシステムでほぼ同じように見えますが、わずかな違いがいくつかあります。一部には、コマンドへの入力がありません ジョブを作成または編集するときに使用できるフィールド。その他の場合、Cronにアクセスできるユーザーを制御する場合、デフォルトのすべてのユーザーを許可する オプションはroot以外のすべてのユーザーを許可するに置き換えられます またはすべてのユーザーを拒否

内部的には、他のオペレーティングシステムはCronジョブを格納するために異なるディレクトリを使用します-たとえば、Solarisは / var / spool / cron / crontabsを使用します / var / spool / cronの代わりに Linuxの場合。他のほとんどのシステムには/etc / crontabがありません ファイルまたは/etc/cron.d ディレクトリのいずれか。ただし、Webminを使用する場合、他のUnixバリアントで使用されるパスを認識し、保存されているファイルに関係なく、同じインターフェイスを使用してすべてのCronジョブを表示するため、これらの違いを気にする必要はありません。

関連項目

  • スケジュールされたコマンド
  • スケジュールされたcronジョブの開発

Webmin
  1. CWPにcronジョブを追加する

  2. cron はどのようにジョブを内部的にスケジュールしますか?

  3. 毎週の cron ジョブをテストする

  1. cronジョブ/自動タスク

  2. Cron Job:初心者向けの包括的なガイド2022

  3. 自分のマシンでスケジュールされているすべての cron ジョブのリストを取得するにはどうすればよいですか?

  1. Linuxでの使い捨てcronジョブにatを使用する

  2. cronジョブを削除する方法

  3. cronジョブの使用とポリシー