Yugien

A page that shows how to keep an AlmaLinux server safe and healthy by updating it regularly and avoiding common problems.

Update

AlmaLinuxのサーバーが安全に動き続けるよう、攻撃や不具合を防ぐためのアップデート手順と考え方をまとめたページ

AlmaLinuxでアップデート:怖がらず、こまめにやるのがサーバー管理の基本

サーバーを運用していると、必ず向き合うことになるのが「アップデート」です。

でも多くの初心者がこう思います。

結論から言うと、アップデートはサーバーの安全と安定のために絶対必要です。

むしろ、アップデートを止めてしまうことの方が危険です。

攻撃者は常に、世界中のサーバーの “弱い部分(脆弱性)” を探しています。

古いソフトや古いカーネルは、既に見つかっている弱点が放置されている状態。

そこを狙われれば、パスワードの漏洩、データ消失、乗っ取り、改ざんなど、最悪の未来が待っています。

つまりアップデートは、

という、サーバー運用の「最優先タスク」のひとつです。

Ubuntu と違って、AlmaLinuxは「dnf」でアップデートする

Linuxと一口に言っても、系統によって操作が違います。

Ubuntu や Debian では apt を使いますが、AlmaLinux は dnf(旧来はyum)を使います。

ここでは、怖くない、安全なアップデート方法だけを扱います。

基本のアップデート(初心者でもそのまま使える)

Git Bash

sudo dnf upgrade -y
sudo
管理者として実行
dnf
AlmaLinuxで使うパッケージ管理ツール
upgrade
パッケージをまとめて最新へ
-y
途中で「OK?」と聞かれても自動で YES を答えてくれる

この1行で、大多数のアップデートが完了します。

もし「内容を確認してから進めたい」という場合は、こちらでも大丈夫です。

Git Bash

sudo dnf check-update
sudo dnf upgrade

-y を付けないので、途中で更新内容をしっかり確認できます。

安全性は変わりません。落ち着いて進めればOKです。

不要になったパッケージを掃除したいとき

長く使っていると、依存関係で入ったパッケージが残り、ディスクを圧迫したり、管理が複雑になったりします。

Git Bash

sudo dnf autoremove -y

「消しても問題ないものだけ」が削除されるため、基本的に壊れる心配はありません。

※ただし、削除候補に不安がある場合は -y を付けず確認しましょう。

再起動が必要なとき

アップデートの中には、サーバーの“心臓部”であるカーネルの更新が含まれる場合があります。

そのときは再起動しないと変更が反映されません。

Git Bash

sudo reboot

再起動すべきかどうかは、以下でも確認できます。

Git Bash

sudo needs-restarting -r

「再起動が必要」と表示されたら reboot を実施しましょう。

なぜアップデートが必要なのか?(ここを理解すると怖くなくなる)

多くの初心者は「アップデートしたら壊れるのでは?」という不安を抱えます。

実際、可能性ゼロではありませんが、アップデートしないほうが圧倒的に危険です。

理由は3つあります。

セキュリティの穴をふさぐ
攻撃者は、古いバージョンの弱点を知っています。
アップデートしていないサーバーは、鍵のかかっていない家のようなものです。
OSが古いと「サポートが終わる」
サポート終了後は修正パッチが来ません。
つまり、弱点が見つかっても放置されたまま。
古い環境ほど、トラブルが自己解決できない
エラーを検索しても情報が古い、環境が特殊、サポートも受けにくい。
結局、アップデートしておいた方が楽です。

逆に、アップデートで壊れることはある?

ごくまれにあります。

ただし、そのほとんどに共通しているのは

というケースです。

つまり、

このあたりを守っていれば、「アップデートが原因で壊れる確率」は限りなく低いです。

何よりも危険なのは、「怖いから放置する」ことです。

アップデートを自動化するという選択肢

実運用では、こまめに手動で実行してもいいですが、一定の規模になったら 自動アップデート という手段もあります。

ただし、自動更新は便利な一方で、

というリスクもあります。

そのため、

という条件なら便利です。

重要サービスの場合は「手動で様子を見ながら」が安心です。

アップデート後にやっておくと安心なチェック

必須ではありませんが、万が一のトラブルを早く見つけるために

Git Bash

systemctl status
sudo dnf list installed
df -h
free -m

などで、動作確認やリソースをチェックしておくと安心です。

とくに「サービスが落ちていないか」「ディスクがいっぱいになっていないか」はよく見られるポイントです。

手動でアップデートする頻度は?

結論から先に言うと、「最低でも月に1回」

そして、できれば 「1〜2週間に1回」 が理想です。

理由は3つあります。

セキュリティ更新は予告なく来るから
攻撃者は、脆弱性が見つかったソフトを優先して狙います。
古い状態で放置すると、知らないうちに危険な扉が開いたままになることがあります。
アップデート量が少ないほど安全・簡単
3ヶ月放置したアップデートと、1週間分のアップデートではリスクが全く違います。
小出しで更新していくほど、トラブルが起きにくく、作業もすぐ終わります。
エラーが出ても原因が特定しやすい
例えば1年分のアップデートを一気に適用すると、「どの更新が悪かったのか?」が分かりません。
短いスパンなら、原因の切り分けが圧倒的に楽です。

つまり、初心者におすすめの運用はこうなります。

忙しい人
月に1回チェック&更新
少し余裕がある人
1〜2週間に1回
セキュリティを強めたい人
毎週チェック

実際、サーバー会社・企業でも「定期的に更新する運用」が一般的です。

アップデート前にバックアップは必要?

結論:
100%安全を求めるなら、バックアップは取るべきです。

ただし、多くの初心者はこう思います。

現実的な運用としては、次の考え方が安心で現実的です。

【最低限】この場合はバックアップ必須

もしサービスが止まったら困る場合、何としてもバックアップを取るべきです。

【安心ライン】一般的な運用

このレベルなら、バックアップしてから更新することをおすすめします。

アップデートで壊れる確率は低いですが、「万が一」のときに心のダメージが全く違います。

【たまにある誤解】

「アップデートしたら壊れたから、だからバックアップした方がいい」

…ではありません。

正しくは、

壊れたときに元に戻せるから、安心してアップデートできる

です。

アップデートは敵ではありません。

バックアップがあれば怖くない味方になります。

そもそも何をバックアップすればいい?

初心者はここが分からずつまずくので、明確にします。

最低限必要なのは、

これだけでも「元の状態に戻せる」確率がかなり上がります。

余裕が出てきたら

という手段もあります。

「バックアップなしでアップデート」って危険?

実は、一般的なアプリや軽い更新だけならアップデートが原因でサーバーが壊れることはほとんどありません。

しかし、

こんな時は壊れやすいです。

だからこそ

更新するほうが安全なんです。

バックアップを取る方法

アップデート前に「元に戻せる状態」を作っておけば、怖いことはありません。

ここでは、初心者でも安全にできる方法を優先して紹介します。

(基本)設定ファイルのバックアップ

設定ファイルは、壊れた時に最も復旧が大変な部分です。

そこで、変更前に必ずコピーを残します。

例:ssh設定ファイルのバックアップ

Git Bash

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

例:nginx の設定をバックアップ

Git Bash

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

ポイント

Git Bash

sudo cp /etc/nginx/nginx.conf.bak /etc/nginx/nginx.conf

(安全)Webサイトやアプリのバックアップ

Git Bash

sudo cp -r /var/www /var/www_backup

Git Bash

sudo tar czvf backup_$(date +%F).tar.gz /var/www

(※ backup_2025-11-05.tar.gz のように日付で保存されます)

(重要)データベースのバックアップ

Webサイトやアプリの心臓部がデータベースです。

MySQL / MariaDB のバックアップ例:

Git Bash

mysqldump -u root -p --all-databases > db_backup_$(date +%F).sql

特定のDBだけなら:

Git Bash

mysqldump -u root -p database_name > dbname_$(date +%F).sql

復元はこうです:

Git Bash

mysql -u root -p < db_backup_2025-11-05.sql

(最強)VPS全体のスナップショット

運営会社が提供している「スナップショット機能」がある場合、丸ごと元に戻せる 最強のバックアップです。

可能なら最優先で使う価値があります。

アップデートに失敗したときの復旧方法

「アップデートでサーバーが壊れたらどうするの?」

初心者が一番怖いのはここですが、対処方法はちゃんとあります。

(よくあるケース)設定が壊れた

例: nginx 更新後に起動しない

Git Bash

sudo systemctl status nginx

設定にエラーがある場合は

Git Bash

sudo nginx -t

と表示され、原因のファイルを教えてくれます。

エラー内容を直すか、バックアップに戻します。

Git Bash

sudo cp /etc/nginx/nginx.conf.bak /etc/nginx/nginx.conf
sudo systemctl restart nginx

(依存関係の問題)パッケージが壊れた

アップデート中にエラーが出た場合:

Git Bash

sudo dnf --refresh upgrade

または

Git Bash

sudo dnf distro-sync

これで依存関係が整うことがあります。

(最強)スナップショットから戻す

もし起動すらできないレベルで壊れた場合
→ VPS管理画面からスナップショット復元

これが最も安全で、確実です。

「アップデートは怖くない」と言い切れる理由がここです。

自動更新の設定方法

「忙しくて毎回手動でやるのは無理」

という場合に役立ちます。

ただし注意点:

そのため、小規模サイトや個人利用で特に有効です。

自動更新をインストール

Git Bash

sudo dnf install dnf-automatic -y

設定ファイルを開く:

Git Bash

sudo nano /etc/dnf/automatic.conf

以下の設定がおすすめ:

Git Bash

apply_updates = yes
emit_via = commandline

サービスを有効化:

Git Bash

sudo systemctl enable --now dnf-automatic.timer

これで定期的に自動アップデートが実行されます。

自動再起動まで行いたい場合

自動再起動はリスクもあるため、

方法例(cronなどで再起動を仕込む):

Git Bash

sudo crontab -e

深夜4時に再起動する場合:

Git Bash

0 4 * * * /usr/sbin/reboot

※慎重に検討してください。

重要なサービス運用中なら手動がおすすめ。

よくあるエラーと対処方法

アップデートで起きがちなエラーを事前に知っておけば、焦りません。

「Locked」エラー(別のdnfが動いている)

メッセージ例:

Git Bash

Existing lock /var/run/dnf.pid

原因:別のアップデートが裏で走っている

対処:

Git Bash

sudo killall dnf
sudo dnf clean all
sudo dnf upgrade

依存関係のエラー

Git Bash

sudo dnf distro-sync

環境を正しいバージョンに揃えます。

Cannot find repos / レポジトリエラー

ネットワークやDNSの問題が多いです。

Git Bash

ping 8.8.8.8
ping google.com

IPが通るが名前が通らない → DNSエラー

対処:

Git Bash

sudo nano /etc/resolv.conf

中に

Git Bash

nameserver 8.8.8.8

を追記して保存

カーネル更新後、古いカーネルに戻したい

起動時のGRUBメニューで古いカーネルを選択できます。

どうしても起動しない場合は、スナップショットやバックアップから復元が確実です。

まとめ:アップデートは怖くない、むしろ守りの要

アップデートを怖がる必要はありません。

備えておけば、サーバー運用で最大の安心を得られます。