この記事では、Red Hat Enterprise Linux 7でパッケージのインストール、更新、削除方法について見ていきます。また、cronを使用してタスクを自動化する方法も説明し、なぜこれらがすべてのシステム管理者にとって重要なスキルであるかを教えることに焦点を当てたガイドを終了します。

Yumを介したパッケージの管理
すでにインストールされていないすべての依存関係とともにパッケージをインストールするには、次のようにします。
# yum -y install package_name(s)
ここで、package_name(s)は少なくとも1つの実際のパッケージ名を表します。
例えば、httpdとmlocate(この順番で)をインストールするには、次のように入力します。
# yum -y install httpd mlocate
注意: 上記の例でyの文字は、実際のプログラムのダウンロードとインストールを行う前にyumが提示する確認プロンプトをバイパスします。希望しない場合は省略できます。
デフォルトでは、yumはOSアーキテクチャに一致するアーキテクチャのパッケージをインストールしますが、パッケージ名にそのアーキテクチャを追加することでオーバーライドすることができます。
例えば、64ビットシステムでは、yum install packageはx86_64バージョンのパッケージをインストールしますが、利用可能な場合はyum install package.x86は32ビットバージョンをインストールします。
パッケージをインストールしたい場合でも、正確な名前がわからないことがあります。 全体検索または検索オプションを使用して、パッケージ名および/または説明に特定のキーワードを検索できます。
たとえば、
# yum search log
は、名前や概要に「log」という単語が含まれるパッケージをインストール済みのリポジトリで検索します。一方で、
# yum search all log
は、パッケージの説明やurlフィールドにも同じキーワードを探します。
検索結果が表示されたら、インストール前にいくつかのパッケージに関する詳細情報を表示したい場合があります。その際には情報オプションが役立ちます:
# yum info logwatch

次のコマンドを使用して定期的に更新をチェックできます:
# yum check-update
上記のコマンドは、更新が利用可能なインストール済みのパッケージをすべて返します。以下の画像の例では、rhel-7-server-rpmsのみが更新可能です:

そのパッケージを単独で更新できます:
# yum update rhel-7-server-rpms
複数の更新可能なパッケージがある場合は、yum updateで一度にすべて更新できます。
次に、実行可能ファイルの名前がわかっているが、それを提供するパッケージがわからない場合は、yum whatprovides “*/[executable]”
を使用して確認できます:
# yum whatprovides “*/ps2pdf”

パッケージを削除する場合は、yum remove パッケージを使用します。簡単でしょう?これにより、yumが完全で強力なパッケージマネージャーであることが示されます。
# yum remove httpd
読むこと: RHEL 7 パッケージ管理を管理するための 20 個の Yum コマンド
Good Old Plain RPM
RPM(別名RPM パッケージマネージャー、または元々RedHat パッケージマネージャー)は、スタンドアロンの.rpm
パッケージ形式でパッケージをインストールまたは更新するためにも使用できます。
一般的には、パッケージがまだ存在しない場合はインストールし、インストールされている場合は更新を試みることを示す-Uvh
フラグと共に使用され、操作が実行されている間に詳細な出力(-v)
およびハッシュマークの進行状況バー(-h)
を生成します。 たとえば、
# rpm -Uvh package.rpm
rpmのもう1つの典型的な使用法は、現在インストールされているパッケージのリストを生成することです:rpm -qa
(すべてのクエリの略)。
# rpm -qa

読むこと: RHEL 7 でパッケージをインストールするための 20 の RPM コマンド
Cron を使用してタスクをスケジュールする
Linux および他の Unix のようなオペレーティングシステムには、定期的に実行されるタスク(つまり、コマンドやシェルスクリプト)をスケジュールするためのcronというツールが含まれています。 Cron は/var/spool/cronディレクトリを毎分チェックし、/etc/passwdのアカウントに基づいて名前が付けられたファイルをチェックします。
コマンドを実行する際、出力はcrontabの所有者にメールされます(またはMAILTO環境変数で指定されたユーザーに、/etc/crontabに存在する場合)。
Crontabファイル(crontab -eと入力してEnterを押すことで作成されます)は次の形式を持ちます:

したがって、月の2日目の午前2時15分にローカルファイルデータベース(locateが名前やパターンでファイルを検索するために使用される)を更新したい場合、次のcrontabエントリを追加する必要があります:
15 02 2 * * /bin/updatedb
上記のcrontabエントリは、「毎月2日目に/bin/updatedbを実行し、曜日に関係なく午前2時15分に実行する」と読み取れます。おそらくすでに推測しているように、星印はワイルドカード文字として使用されます。
クロンジョブを追加した後、前述のように/var/spool/cron内にrootという名前のファイルが追加されたことがわかります。そのファイルには、crondデーモンが実行すべきすべてのタスクがリストされています:
# ls -l /var/spool/cron

上記の画像では、現在のユーザーのcrontabはcat /var/spool/cron/rootを使用して表示することもできます。また、
# crontab -l
より詳細な基準でタスクを実行する必要がある場合(たとえば、1日に2回または月に3回など)、cronを使用してそれを行うこともできます。
たとえば、/my/scriptを毎月1日と15日に実行し、出力を/dev/nullに送信する場合、次のように2つのcrontabエントリを追加できます:
01 00 1 * * /myscript > /dev/null 2>&1 01 00 15 * * /my/script > /dev/null 2>&1
しかし、作業をより簡単に保守するために、両方のエントリを1つに組み合わせることができます。
01 00 1,15 * * /my/script > /dev/null 2>&1
前の例に続いて、/my/other/scriptを毎3か月の最初の日の1:30 amに実行することができます。
30 01 1 1,4,7,10 * /my/other/script > /dev/null 2>&1
しかし、「x」分、時間、日、または月ごとに特定のタスクを繰り返さなければならない場合は、所望の頻度で右の位置を割ることができます。次のcrontabエントリは、前のものとまったく同じ意味を持っています。
30 01 1 */3 * /my/other/script > /dev/null 2>&1
または、特定のジョブを固定頻度で実行するか、システムの起動後に実行する必要がある場合があります。ジョブを実行したい正確な時刻を示すために、5つのフィールドの代わりに次の文字列の1つを使用できます。
@reboot Run when the system boots. @yearly Run once a year, same as 00 00 1 1 *. @monthly Run once a month, same as 00 00 1 * *. @weekly Run once a week, same as 00 00 * * 0. @daily Run once a day, same as 00 00 * * *. @hourly Run once an hour, same as 00 * * * *.
関連記事: RHEL 7でCronジョブをスケジュールする11のコマンド
ログの検索と確認
システムログは、/var/logディレクトリ内に配置されています(および回転しています)。Linuxファイルシステム階層標準によると、このディレクトリには、対応するデーモンによってシステムの運用中に書き込まれた、または適切なサブディレクトリ(以下の画像のaudit、httpd、またはsambaなど)に書き込まれた、さまざまなログファイルが含まれています。
# ls /var/log

他の興味深いログには、dmesg(カーネルリングバッファからのすべてのメッセージを含む)、セキュア(ユーザー認証が必要な接続試行のログ)、メッセージ(システム全体のメッセージ)、wtmp(すべてのユーザーログインとログアウトの記録)があります。
ログは非常に重要で、システムで何が起こっているか、過去に何が起こったかをいつでも垣間見ることができます。これらはLinuxサーバーのトラブルシューティングとモニタリングにとって非常に貴重なツールであり、よくtail -fコマンド
と一緒に使用され、ログに記録されたイベントをリアルタイムで表示します。
たとえば、カーネル関連のイベントを表示したい場合は、次のコマンドを入力します。
# tail -f /var/log/dmesg
Webサーバーへのアクセスを表示したい場合も同様です。
# tail -f /var/log/httpd/access.log
要約
パッケージを効率的に管理し、タスクをスケジュールし、システムの現在と過去の操作に関する情報をどこで見つけるかを知っていれば、驚きに出くわすことはあまりありません。この記事がこれらの基本的なスキルについて学ぶのをお手伝いできたら幸いです。
ご質問やコメントがある場合は、以下のお問い合わせフォームからお気軽にご連絡ください。
Source:
https://www.tecmint.com/yum-package-management-cron-job-scheduling-monitoring-linux-logs/