Linuxでの作業を簡単にする、またはcronを使用してプロセスの起動を自動化する

Nix管理者向けのメガタンバリン

はじめに


夕方、ラップトップに座って、仮想マシンで別のLinuxディストリビューションを勉強しながら選んだとき、私は次のことを自問しました。 興味があるなら、猫の下でお願いします。 この記事は情報提供を目的としており、LinuxファミリのOSを初めて使用する人向けに設計されていますが、経験豊富なLinuxユーザーはおそらく自分で何か新しいことを学ぶことができます。



Atdおよびcronデーモン


少しグーグルで文学を読んで、私は2つの悪魔について学びました: atdcron 。 その限界と彼と一緒に仕事をする不便さを考慮して、私は最初のものを拒否しました。 しかし、2番目についてはさらに詳しく説明したいと思います。

お使いのコンピューターが突然、理由もなく、ディスクの検索、メールの送信などを開始した場合、これはおそらくcronデーモンの動作です...


Michael Kofler「 Linux。 インストール、構成、管理。」-SPb。:Peter、2014



それで、これはまさにまさにcronが行うことです 。 デーモンは1分間隔で起動され、 crontabファイルをチェックして、それらに指定されたプログラムを実行します。 最初は、システムのメンテナンス中に使用されますが、ユーザーはそれを使用して問題を解決できます。



通常のディストリビューションがインストールされている場合、心配する必要はありません。cronは自動的にインストールされます。 最小であれば、動揺していません-ターミナルに行きます。

yum install vixie-cron //(RHEL - Red Hat Enterprise Linux)
      
      





または

 apt-get install cron //(Deabian- )
      
      





デーモンへのユーザーアクセスは、 / var / spool / cron / tabs / userディレクトリで構成されます 。 それらの権限は、 / cron / allowおよび/ denyファイルで設定されます。 ユーザーを/ allowに追加することにより、ユーザーにcronコマンドの実行を許可します。ユーザーを/ denyに追加すると、ユーザーはデーモンの使用を禁止されます。



Cron自体は/ etc / crontabディレクトリで設定されます。 ファイル/ crontabまたは/ etc / cron内のファイル dには、実行するコマンドのリストが含まれます。 構文は次のとおりです。

 in /etc/crontab [][][][][][][]
      
      





たとえば、スーパーバイザーに代わって15分ごとにya.ruにpingを実行する必要がある場合、以下を追加する必要があります。

 */15 **** root ping ya.ru
      
      





記号*が最初の5つのフィールドのいずれかにある場合、このフィールドは無視されます。 前のコマンドでは、月も週も示されていないため、15分ごとに実行されます。 構成を変更するには、ターミナルでviコマンドを使用するか、 / etc / crontabファイルの内容を手動で変更します。



.hourly、.daily、.weekly、.monthlyと連携


デフォルトでは、ほとんどすべてのディストリビューションで、 / etc / crontabファイルには、スクリプトの実行に必要ないくつかのエントリのみが含まれています。

/etc/cron.hourly/*-1時間ごとに実行されるスクリプト

/etc/cron.daily/*-毎日実行されるスクリプト

/etc/cron.weekly/*-毎週実行されるスクリプト

/etc/cron.monthly/*-毎月実行されるスクリプト



デーモンがコマンドを実行するには、コマンドを実行するスクリプトをいずれかのディレクトリに追加します。 必ず実行ビット(chmod a + xファイル)を設定してください。 そうしないと、スクリプトにアクセスできず、実行されません!

スクリプトが実行されるかどうかを確認するには、次のコマンドを実行します

 run-parts --test /etc/cron.daily
      
      





スクリプトが別のディレクトリにある場合は、 毎日毎月などに変更します

また、スクリプト名にドットを含めることはできません。ドット以外の文字は使用できません。 run-partsコマンドはドット付きスクリプトを単に無視しますが、その理由はわかりません。



アナクロン


cronデーモンのほか。 ほとんどのディストリビューションには、Anacronタスクスケジューラがインストールされています。 そのタスクは、スクリプト/etc/cron.nの 1回(オンデマンド)実行です。ここで、nは、 dailyweeklymonthlyの 3つの値を取ることができます。 実行後、終了し、 cronのようにシステムにハングアップしません。 また、Anacronは/etc/cron.hourlyディレクトリからスクリプトを実行しません。これはcronの特権です。 Anacronは/ etc / anacrontabディレクトリでグローバルに構成されますが、通常はデフォルト設定で十分です。



PS


ssh adminの毎日のタスクの作業を簡素化するには、 cronを使用してAnacronを無効にします。これは、タスクを1回実行し、 cronはAnacronが実行するタスクを無視するためです。 その結果、あなたが持っているすべてのタスクは一度だけ実行されます。 ほとんどのディストリビューションでは、デーモンでの作業はほとんど変わりませんが、問題が発生した場合は、Linuxのwikiを使用してください。



All Articles