ソフトウェアアップデートの重要性
この記事では、サーバーやWebアプリケーションにおけるソフトウェアアップデートの重要性について説明しています。 ソフトウェアのアップデートが必要なことは誰もが知っていますが、アップデートのためにサーバーの前に座ることを避けるために、ソフトウェアのアップデートを省略しています。 すべてのアプリケーションには、私たちの手を煩わせることなく自動的にアップデートを行うオプションがあります。 ローカルシステムやモバイル、ウェブアプリケーションなどで、OSからソフトウェアのアップデートを求めるメッセージが表示されることがあります。 ほとんどの場合、私たちはそれをスキップして、アップデートを延期します。
セキュリティの脆弱性
悪意のある行為やハッキングは、脆弱性のあるシステムが原因で起こります。
ソフトウェアが開発者によって適切に管理されていれば、検出された脆弱性に対してパッチをリリースするはずです。 ですから、ソフトウェアを利用可能な最新バージョンにアップデートするようにしてください。
機能向上
場合によっては、ソフトウェアにいくつかの機能を追加したり、機能性を向上させるためにいくつかの最適化を行ったりする必要があります。
バグの修正
すべてのソフトウェアが完全に証明されているわけではなく、ソフトウェアにはいくつかのバグがあるはずです。 その中には重要なものとそうでないものがあります。
サーバーのソフトウェアの更新
他のアプリケーションと同様に、サーバーにインストールされているソフトウェア パッケージの更新は重要です。 フットプリント(ソフトウェアのバージョン、オープンポート、既知の脆弱性など、システムの利用可能な詳細情報を収集すること)に利用できるツールはたくさんあります。
Linux カーネルの更新
ソフトウェアの更新は、サーバーのカーネルも更新します。 新しいカーネルをアップデートするためには、サーバーの再起動が必要です。
サーバーがミッション クリティカルで、頻繁に再起動する余裕がない場合は、いくつかのソフトウェアを使用して実行時にカーネル アップデートを更新し、再起動を回避することができます。 私の意見では、月に一度はサーバーを再起動するのが良いと思います。 再起動時にカーネルパッケージの更新やファイルシステムのチェックを行うことができます。 システム管理者としては、稼働時間が1000日以上のシステムを再起動するのは怖いですね。 ほとんどの場合、ファイルシステムのチェックが行われ、オンラインに戻るまでに時間がかかることがあります。
サーバー内のソフトウェア リストの更新
リポジトリからのパッケージを再同期します。
Ubuntuの場合、以下のコマンドを実行してアップデートします。
centosの場合は、yumのキャッシュをクリアしてリポジトリのxmlファイルを消去します。
centosの場合、yumキャッシュをクリアして、リポジトリのxmlファイルをクリアします。
上記のコマンドは、「/var/cache/yum/」ディレクトリから yum コマンドを実行している間にキャッシュされたファイルをすべて消去します。 時々、スペースを空けるためにこのコマンドを実行する必要があります。
利用可能な更新プログラムですべてのパッケージを更新する
以下は、centosとubuntuのバリアントサーバーでパッケージの利用可能な更新プログラムを更新するためのそれぞれのコマンドです。
yum update # Centosの場合
全体として、以下のコマンドを一緒に実行することで、linuxシステムやサーバーにインストールされているすべてのパッケージをアップデートすることができます。
Ubuntuの場合
sudo apt-get upgrade # 現在のパッケージを厳密にアップグレードする
sudo apt-get dist-upgrade # アップデート(新規)をインストールする
dist-upgradeを使用する際には、依存関係を満たすためにパッケージを削除してしまう可能性があるので注意が必要です。
Centosの場合
yum update
アップデートが完了したら、以下のコマンドでさらにアップデートがあるかどうかを確認できます。
Centosの場合
Ubuntuの場合
Or
上記のアップデートコマンドを使ってスクリプトを作成し、オフピークの時間帯を基準にスケジュールを組んで定期的にソフトウェアをアップデートし、システムを最新の状態に保つことができます。