システム管理

HOMELinuxtips > システム管理

システム管理:記事リスト

システム管理のカテゴリーには以下の記事がリストされています。

SWAP領域を拡張する(システム再起動・サービス停止なし)

SWAP領域をシステム再起動やサービス停止をせずに拡張する方法を紹介ます。
下記の様に、メモリ不足によりエラーになった場合などに有効です。
実行環境は、CentOS7.6。

5月 14 10:02:02 MAIL-SV-001 clamd[4758]: daemonize() failed: Cannot allocate memory
5月 14 10:02:03 MAIL-SV-001 systemd[1]: Failed to start clamd scanner (amavisd) daemon.


【この記事でわかること】
・SWAP領域はサービス停止・再起動なしで拡張できる
dd でSWAPファイルを作成し、mkswapswapon で有効化する
free -m でSWAP容量の変化を確認できる

続きを読む "SWAP領域を拡張する(システム再起動・サービス停止なし)"

CentOS8 カーネルバージョン(kernel version)を確認する

CentOS8のカーネルバージョン(kernel version)を確認する方法は、いくつかあります。
今回は、それらの確認方法を紹介します。

CentOS8.0をインストールした直後の
カーネルバージョン(kernel version)は、4.18
になります。

【この記事でわかること】
uname -r でカーネルバージョンのみ表示できる
uname -a ですべてのシステム情報を表示できる
rpm -q kernel でインストール済みカーネルを確認できる

続きを読む "CentOS8 カーネルバージョン(kernel version)を確認する"

LinuxのsystemdによるOS起動プロセスを確認する方法|journalctl -bとsystemctl list-unitsで起動状態を把握

「サーバーが起動しない」「どのサービスが起動に失敗しているのかわからない」
Linuxサーバーを管理していると、こうした起動トラブルに遭遇することがあります。

CentOS 7以降のRHEL系では、起動の仕組みがSysVinitからsystemdに変わりました。
systemdを正しく理解することで、起動プロセスの確認やトラブル時の原因特定が格段にスムーズになります。

この記事では、systemdによるOS起動プロセスの流れから、
journalctl -bによる起動ログの確認、systemctl list-unitsによるサービス状態の把握まで、
実務で使える手順を実際のコマンド出力例と合わせて解説します。
【この記事でわかること】
・systemdはCentOS 7 / RHEL 7以降の標準initシステムで起動順序をユニットで管理する
journalctl -b でこの起動セッションのログを確認できる
systemctl list-units --state=failed で失敗したサービスを一覧表示できる
systemctl list-units --type=service で全サービスの起動状態を確認できる

続きを読む "LinuxのsystemdによるOS起動プロセスを確認する方法|journalctl -bとsystemctl list-unitsで起動状態を把握"

localectlコマンドでCentOS7のロケールを確認・変更する方法|日本語・英語の切り替えも

「CentOS 7で日本語・英語のロケールを切り替えたい」
「localectlコマンドの使い方がわからない」

この記事では、CentOS 7 / RHEL 7以降のsystemd環境でlocaleを確認・変更する方法を解説します。
localectlコマンドの基本から、使用可能なロケール一覧の確認、日本語化・英語化の手順まで実践的に解説します。
【この記事でわかること】
localectl status で現在のロケール設定を確認できる
localectl set-locale LANG= で言語ロケールを変更できる(再起動不要、再ログインで反映)
・CentOS 7以降ではlocalectlが推奨。/etc/locale.confも自動更新される

続きを読む "localectlコマンドでCentOS7のロケールを確認・変更する方法|日本語・英語の切り替えも"

CentOS7でrootのSSHログインを無効化する

「SSHでrootログインを禁止したいけど、設定方法がわからない」
「rootでのSSH接続を許可したままサーバーを公開しているのが不安」

インターネットに公開するLinuxサーバーでは、rootアカウントへのSSH直接ログインを無効にするのはセキュリティの基本です。
rootパスワードが漏洩した場合や、ブルートフォース攻撃に対して脆弱になります。

この記事では、CentOS7 / RHEL7でrootのSSHログインを無効化する手順を解説します。
【この記事でわかること】
PermitRootLogin no/etc/ssh/sshd_config に設定するだけで無効化できる
・設定後は systemctl restart sshd で反映が必要
・無効化前に必ず一般ユーザー+sudo環境を整えてからロックアウトを防ぐ

続きを読む "CentOS7でrootのSSHログインを無効化する"

CentOS7でfirewalldの確認と停止(ファイアウォール)

「firewalldを停止したいけど、コマンドが分からない」「iptablesとfirewalldの違いは?」
そんな疑問を持つ方は多いです。

CentOS7からファイアウォールの推奨ツールがiptablesからfirewalldに変わりました。
開発環境や内部ネットワーク専用サーバーでは、ファイアウォールを一時的に停止したい場面もあります。

この記事では、CentOS7のfirewalldの状態確認と停止方法を解説します。
【この記事でわかること】
firewall-cmd --list-services で許可されているサービスを確認できる
systemctl stop firewalld で即時停止、systemctl disable firewalld で恒久停止
・本番サーバーでは停止せず、必要なポートだけ開放するのが正しい対処

続きを読む "CentOS7でfirewalldの確認と停止(ファイアウォール)"

CentOS 7のバージョンアップ手順|yum updateの実行方法と注意点

「CentOSを最新バージョンにアップデートしたいけど、手順と注意点を確認したい」
「yum updateを実行しても大丈夫? サーバーが起動しなくなったりしない?」
OSのバージョンアップは、セキュリティパッチの適用やバグ修正のために定期的に行う必要があります。しかし、手順を誤るとシステムが起動しなくなるリスクもあります。

この記事では、CentOS 7のバージョンアップ手順と注意点を解説します。
yum updateの実行方法、カーネルをアップデート対象から除外する方法、事前のバックアップとテスト環境での確認手順まで、安全にバージョンアップするために必要な知識をまとめました。

CentOS 7は2024年6月30日にEOL(サポート終了)となりました。新規構築ではAlmaLinuxやRocky Linuxへの移行を推奨します。本記事はCentOS 7環境の保守・運用を行っている方向けの手順です。RHEL 9系(AlmaLinux 9/Rocky Linux 9)では dnf update コマンドを使用してください。
【この記事でわかること】
yum update でCentOS 7のパッケージを一括アップデートできる
・本番環境の実行前はテスト環境で事前確認とバックアップが必須
・カーネルは除外してアップデートするのが安全
・CentOS 7はEOL済み。新規構築はAlmaLinux/Rocky Linuxを推奨

続きを読む "CentOS 7のバージョンアップ手順|yum updateの実行方法と注意点"

unameコマンドでLinuxのカーネルバージョンを確認する方法|OS情報の確認コマンドも

「Linuxサーバーのカーネルバージョンを確認するコマンドを知りたい」
「unameコマンドでカーネルバージョン以外の情報も確認できるのか」

この記事では、Linuxのカーネルバージョンを確認する方法を解説します。
unameコマンドの各オプションから/proc/versionファイルでの確認方法、RHEL/CentOSのバージョン確認コマンドまで実践的な方法を網羅します。
【この記事でわかること】
uname -r でLinuxのカーネルバージョンのみを素早く確認できる
uname -a ですべてのシステム情報をまとめて表示できる
/proc/versioncat /etc/os-release でOS・ディストリビューション情報も確認できる

続きを読む "unameコマンドでLinuxのカーネルバージョンを確認する方法|OS情報の確認コマンドも"

CentOS7でログ容量制限を設定する方法|journaldのSystemMaxUse設定と容量確認

「ログが増えすぎてディスクがいっぱいになった」「journaldの容量制限ってどう設定するの?」
そんな悩みを持つエンジニアは多いです。

CentOS7から採用されたjournaldは、デフォルトでファイルシステムの10%をログ領域として確保します。
放置すると気づかないうちにディスクを圧迫し、サービス停止につながることがあります。

この記事では、journaldのログ容量制限の設定方法と、現在のログ使用量の確認コマンドを解説します。
【この記事でわかること】
・journaldとは?CentOS7のログ管理の仕組み
・journaldのログ容量制限を設定する方法
・その他の容量制限パラメータ
・古いログを手動で削除する方法

続きを読む "CentOS7でログ容量制限を設定する方法|journaldのSystemMaxUse設定と容量確認"

CentOS7でログ保存設定をする

「CentOS7でサーバーを再起動したらjournalのログが消えてしまった。永続化する方法はないのか」
CentOS7のjournaldは、デフォルトでは /run/log/journal(tmpfs)に保存するため、再起動するとログが消えてしまいます。

この記事では、journaldのログを再起動後も保持する永続保存の設定方法を解説します。

【この記事でわかること】

・デフォルトのjournaldログは /run/log/journal(tmpfs)に保存されOSの再起動で消える
Storage=persistent 設定で /var/log/journal/ に永続保存される
・設定後は systemctl restart systemd-journald.service でサービスを再起動する
・machine-id名のサブディレクトリ配下にログが保存される

続きを読む "CentOS7でログ保存設定をする"

journalctlコマンドでCentOS7のsystemdログを確認する方法|フィルタリング・リアルタイム監視の実践ガイド

「CentOS 7以降でログの確認方法が変わったと聞いたけど、journalctlの使い方がわからない」
「journaldとrsyslogの違いや関係性を理解したい」

この記事では、CentOS 7以降のsystemd環境で使用するjournalctlコマンドの基本的な使い方から、実務でよく使うフィルタリングの方法まで解説します。
【この記事でわかること】
・journalctlはsystemdのログ管理システム(journald)のログを表示するコマンド
・-b でブートログ、-u でサービス別ログ、--since/--until で日時フィルタリングができる
・-f でtailと同様のリアルタイム監視、-e で末尾からジャンプして最新ログを確認できる

続きを読む "journalctlコマンドでCentOS7のsystemdログを確認する方法|フィルタリング・リアルタイム監視の実践ガイド"

CentOS7・RHEL7系のネットワーク設定方法|nmcli・NetworkManagerの実践ガイド

「CentOS7でIPアドレスを固定したいけど、昔のifcfgファイル直編集でいいのか不安」
「nmcliの使い方が多すぎて、どれを覚えればいいか分からない」
CentOS7/RHEL7以降のLinuxでは、ネットワーク管理の仕組みがNetworkManager中心に切り替わりました。

この記事では、CentOS7/RHEL7系でのネットワーク設定方法について、NetworkManagerとnmcliコマンドを中心に、固定IPアドレス設定・DNS設定・デフォルトゲートウェイ・接続状態の確認・トラブル対処までを解説します。現場でそのまま使える実践コマンドを中心にまとめています。
【この記事でわかること】
・CentOS7/RHEL7以降はNetworkManagerが標準。設定はnmcliコマンドで行うのが現場流
・接続プロファイル単位で管理され、connectiondeviceの2階層を理解すれば全体像が掴める
・固定IP・DNS・ゲートウェイ・DHCP切り替えまで、nmcliだけで完結できる

続きを読む "CentOS7・RHEL7系のネットワーク設定方法|nmcli・NetworkManagerの実践ガイド"

CentOSでCtrl-Alt-Deleteを無効にする|systemctlとinittabの両対応

「Ctrl+Alt+Deleteを押してしまったらシステムが再起動してしまった」
「サーバーでCtrl+Alt+Deleteを無効にしたい」

物理サーバーや仮想マシンで複数ユーザーが作業する環境では、誤ってCtrl+Alt+Deleteを押してシステムが再起動してしまうリスクがあります。特に共有サーバーや本番環境では、この操作を無効化しておく必要があります。

この記事では、CentOS/RHEL系LinuxでCtrl+Alt+Deleteを無効にする方法を、CentOS 7以降のsystemdによる方法から旧来のCentOS 6/5での設定方法まで解説します。

【この記事でわかること】
・CentOS 7以降(systemd)は systemctl mask ctrl-alt-del.target で無効化できる
・CentOS 6は /etc/init/control-alt-delete.conf の該当行をコメントアウトする
・CentOS 5は /etc/inittab の ctrlaltdel 行をコメントアウトする
・無効化後はシステムの再起動や再設定なしに即時反映できる(systemd環境)
・再度有効化する場合は systemctl unmask ctrl-alt-del.target を使う

続きを読む "CentOSでCtrl-Alt-Deleteを無効にする|systemctlとinittabの両対応"

mkpasswdコマンドでランダムなパスワードを生成する方法|文字数や文字種の指定も

「セキュリティポリシーに沿ったランダムなパスワードを生成したい」
「パスワードを考えるのが面倒。自動で強力なパスワードを作れないか」
定期的なパスワード変更や新規ユーザー作成の際、安全なパスワードを手動で考えるのは手間がかかります。

この記事では、mkpasswd コマンドでランダムなパスワードを生成する方法を解説します。インストール方法、文字数や文字種の指定、opensslやurandomを使った代替手段まで、パスワード生成に必要な知識をまとめました。

【この記事でわかること】
mkpasswd コマンドでランダムなパスワードを即座に生成できる
-l で文字数、-d で数字数、-C で大文字数、-s で特殊文字数を指定できる
mkpasswdexpect パッケージに含まれる(要インストール)
openssl rand -base64 16 でもランダム文字列を生成できる
/dev/urandom を使った生成方法は追加インストール不要

続きを読む "mkpasswdコマンドでランダムなパスワードを生成する方法|文字数や文字種の指定も"

Linuxで一時的に管理者(root)にスイッチする

「複数のメンバーがいる環境でrootパスワードを共有したくない。sudoで安全に管理者操作できないか?」

su コマンドでは管理者パスワードが必要ですが、sudo コマンドを使えば一般ユーザーのパスワードで一時的に管理者権限を行使できます。rootパスワードを共有せずに安全な権限管理が実現します。

この記事では、sudo の設定方法(visudo)と実際の使い方、セキュリティ上の注意点を解説します。

【この記事でわかること】

・sudo はrootパスワードを共有せずに管理者権限のコマンドを実行できる仕組み
・/etc/sudoers の編集には必ず visudo を使う(vi の直接編集は危険)
・パスワードキャッシュはデフォルト5分間有効
・NOPASSWD 設定は利便性が上がる反面、セキュリティリスクも高まるため慎重に

続きを読む "Linuxで一時的に管理者(root)にスイッチする"

使用量の高いディレクトリを表示する

「サーバーのどのディレクトリが容量を食っているか、素早く確認したい」

du・sort・head コマンドをパイプでつなぐと、ディスク使用量の多いディレクトリを上位から順番に表示できます。ディスク容量が逼迫した場合のトラブルシュートに必須の手法です。

この記事では、du + sort + head の組み合わせで使用量の多いディレクトリを素早く特定する方法を解説します。
【この記事でわかること】
・du -s でディレクトリ合計使用量を取得し、sort -rn で降順ソートできる
・head -10 で上位10件に絞り込むことで素早く大容量ディレクトリを特定できる
・-h オプション(人間が読みやすい単位)と sort -rh の組み合わせが現代の定番
・アクセス権限のないディレクトリは「Permission denied」エラーになるため 2>/dev/null で抑制する

続きを読む "使用量の高いディレクトリを表示する"

RPMパッケージの更新情報を表示する

「インストール済みのRPMパッケージが最新バージョンに更新されているか確認したい」

rpm -q --changelog コマンドを使うと、インストール済みRPMパッケージの変更履歴(更新情報)を確認できます。また、yum check-update でシステム全体で更新可能なパッケージ一覧を素早く把握できます。

この記事では、RPMパッケージの更新情報を確認する方法を解説します。

【この記事でわかること】

・rpm -q --changelog でパッケージの変更履歴(更新日時・内容)を確認できる
・yum check-update で更新可能なパッケージ一覧を表示できる
・rpm -q --last でインストール日時順にパッケージを表示できる
・RHEL 9 / Rocky Linux 9 では yum の代わりに dnf コマンドを使用する

続きを読む "RPMパッケージの更新情報を表示する"

RPMパッケージの状態を表示する

「インストールしたRPMパッケージのファイルが正常な状態かどうか確認したい」

rpm -qs コマンドを使うと、インストールされている RPM パッケージの各ファイルが「通常(normal)」の状態にあるかを確認できます。ファイルが改ざんされたり誤って削除された場合に「置き換えられている(replaced)」や「不足(missing)」と表示されます。

この記事では、rpm -qs コマンドによる RPM パッケージのファイル状態確認方法を解説します。

【この記事でわかること】

・rpm -qs でパッケージ内の各ファイルの状態を確認できる
・「通常」はファイルが正常な状態、「置き換えられている」「不足」は問題あり
・出力量が多いため less/more とのパイプ併用が基本
・セキュリティ監査でファイル改ざん検出にも活用できる

続きを読む "RPMパッケージの状態を表示する"

ユーザーのプライマリグループを変更する

「Linuxユーザーのプライマリグループを別のグループに変更したい」

プライマリグループの変更は usermod -g コマンドで実施します。グループ名または GID を指定して変更できます。

この記事では、usermod -g コマンドを使ったプライマリグループの変更方法を解説します。
【この記事でわかること】
・usermod -g でユーザーのプライマリグループを変更できる
・変更先のグループはシステムに既に存在している必要がある
・-g(プライマリ)と -G(サブグループ)の違いを理解できる
・変更後に /etc/passwd の GID が更新されたか確認できる

続きを読む "ユーザーのプライマリグループを変更する"

groupaddコマンドでグループIDを指定してグループを追加する方法|GID管理の実務も

「グループを追加するときにGIDを自分で指定したい」
「複数サーバーでGIDを統一して管理したいけど、どうすればいいの?」
Linuxでグループを追加すると、システムが自動的にGID(グループID)を割り当てます。しかし、複数サーバー間でGIDを統一したい場合や、運用ルールでGIDの範囲を決めている場合は、手動でGIDを指定する必要があります。

この記事では、groupadd コマンドでGIDを指定してグループを追加する方法を解説します。
基本的な使い方、-gオプションでのGID指定、/etc/groupでの確認、groupmod・groupdelによるグループ管理まで、実務で使える知識をまとめました。

※ groupaddコマンドの実行にはroot権限が必要です。
【この記事でわかること】
・groupaddコマンドとは?
・GIDを指定してグループを追加する
・グループの確認方法
・グループの変更と削除

続きを読む "groupaddコマンドでグループIDを指定してグループを追加する方法|GID管理の実務も"

グループを削除する

「不要になったLinuxグループを削除したい。ただし削除できない場合もあると聞いた」

groupdel コマンドでグループを削除できます。ただし、削除しようとするグループがいずれかのユーザーのプライマリグループに設定されている場合は削除できません。

この記事では、groupdel コマンドの使い方と、削除できない場合の対処法を解説します。
【この記事でわかること】
・groupdel コマンドでグループを削除する方法
・プライマリグループが設定されていると削除できない理由
・削除前に /etc/group と /etc/passwd で状態を確認する方法
・削除できない場合にユーザーのプライマリグループを変更して対処する手順

続きを読む "グループを削除する"

ディレクトリの使用量を表示する

「サーバーの空き容量が減っている。どのディレクトリが容量を使っているか調べたい」

du コマンドを使うと、指定したディレクトリ以下の各ディレクトリが使用しているディスク容量を確認できます。-h オプションで人間が読みやすい単位(KB/MB/GB)で表示できます。

この記事では、du コマンドの基本的な使い方から、特定ディレクトリの容量確認まで解説します。
【この記事でわかること】
・du コマンドでディレクトリごとのディスク使用量を表示できる
・-h オプションで MB/GB 等の読みやすい単位に変換できる
・-a でファイル単位、-s でディレクトリ合計のみ表示できる
・sort -rn と head との組み合わせで使用量上位を素早く特定できる

続きを読む "ディレクトリの使用量を表示する"

Linuxユーザーのパスワードロックを解除する

「パスワードロックをかけたユーザーを再度ログインできるように戻したい」

パスワードロックの解除は、usermod -U または passwd -u コマンドで実施します。ロック時と対になるコマンドで、すぐにアカウントを有効化できます。

この記事では、Linuxユーザーのパスワードロックを解除してログインを再び許可する方法を解説します。
【この記事でわかること】
・usermod -U でパスワードロックを解除する
・passwd -u でパスワードロックを解除する
・解除後のロック状態確認

続きを読む "Linuxユーザーのパスワードロックを解除する"

Linuxユーザーのパスワードをロックする

「しばらく使わないLinuxアカウントを無効化したい。ユーザー削除はせずにログインだけ止めたい」

ユーザーを削除せずにログインを一時的に禁止するには、パスワードロックが有効です。usermod -L または passwd -l コマンドで実装できます。

この記事では、Linuxユーザーのパスワードをロックして一時的にログインを禁止する方法を解説します。
【この記事でわかること】
・パスワードロックの仕組み
・usermod -L でパスワードをロックする
・passwd -l でパスワードをロックする
・ロック状態の確認方法

続きを読む "Linuxユーザーのパスワードをロックする"

特定のローダブルモジュールを表示する

「特定のキーワードに一致するローダブルモジュールだけを素早く確認したい」

modprobe -l コマンドに引数を指定すると、ワイルドカードで特定のモジュールだけを絞り込んで表示できます。grep とのパイプでも同じ結果を得られます。

この記事では、特定のローダブルモジュールを絞り込んで表示する方法を解説します。

【この記事でわかること】

・modprobe -l に引数を指定するとワイルドカードでモジュールを絞り込める
・grep とのパイプでも同等の結果が得られる(どちらを使っても可)
・ワイルドカードは必ずクォート(引用符)で囲む必要がある
・モジュール名の一部から関連モジュールを一覧する場合に便利

続きを読む "特定のローダブルモジュールを表示する"

ローダブルモジュールを表示する

「現在ロードされていないが、ロード可能なモジュールの一覧を確認したい」

ローダブルモジュールとは、カーネルに組み込まれてはいないが、必要に応じてロードできるモジュールのことです。modprobe -l コマンドで一覧を確認できます。

この記事では、modprobe -l コマンドによるローダブルモジュール一覧の表示方法を解説します。

【この記事でわかること】

・modprobe -l でシステムにインストール済みのローダブルモジュール一覧を表示できる
・出力量が多いため more/less コマンドとのパイプ併用が実務での基本
・grep との組み合わせで特定のモジュールを素早く絞り込める
・表示されるモジュールは /lib/modules/カーネルバージョン/ 配下の .ko ファイル

続きを読む "ローダブルモジュールを表示する"

カーネルモジュールの詳細情報を表示する

「lsmod で表示されたモジュールの詳細情報(バージョンや依存関係)を確認したい」

modinfo コマンドを使うと、指定したカーネルモジュールのファイルパス・ライセンス・依存モジュール・パラメータなど、詳細な情報を確認できます。

この記事では、modinfo コマンドの使い方と出力内容の読み方を解説します。

【この記事でわかること】

・modinfo コマンドで指定モジュールの詳細情報(パス・ライセンス・依存関係等)を表示できる
・-d オプションで概要説明のみを簡潔に表示できる
・-F オプションで特定フィールドのみを取り出すことが可能
・トラブル時のモジュールバージョン確認や依存関係の調査に活用できる

続きを読む "カーネルモジュールの詳細情報を表示する"

ロードされているカーネルモジュールを表示する

「Linuxで現在ロードされているカーネルモジュールを確認したい」

Linuxカーネルは、必要最低限の機能だけを本体に組み込み、デバイスドライバなど追加機能は「モジュール」として動的にロード・アンロードできる設計になっています。
現在どのモジュールが動いているかを確認するのが lsmod コマンドです。

この記事では、lsmod コマンドの使い方と出力内容の読み方を解説します。

【この記事でわかること】

・lsmod コマンドでシステムにロード済みのカーネルモジュール一覧を表示できる
・出力は Module(モジュール名)・Size(サイズ)・Used by(依存関係)の3列構成
・Used by の数字が 0 のモジュールは rmmod でアンロード可能
・実行には root 権限が必要

続きを読む "ロードされているカーネルモジュールを表示する"

dstatコマンドでシステムリソースをモニタリングする(リアルタイム)

dstatコマンドを使用すれば、
vmstat, iostat, ifstatなどのstat系コマンドを
これ1つで表示することができます。

例えば、
CPUやメモリ情報、ディスクI/OやネットワークI/Oを
リアルタイムでモニタリングできます。
表示を停止する場合は、「Ctrl+c」を実行します。

dstatコマンドがインストールされていない場合は、
下記コマンドでインストールしてください。

【この記事でわかること】

・dstatはvmstat・iostat・ifstatを1コマンドで代替できるシステムモニタリングツール
・CPU使用率・メモリ・ディスクI/O・ネットワークI/Oをリアルタイムで確認できる
・-Tclmでタイムスタンプ付きCPU+ロードアベレージ+メモリ表示が最頻出パターン
・CentOS/RHEL系はyum install dstatでインストール可能

続きを読む "dstatコマンドでシステムリソースをモニタリングする(リアルタイム)"

uptimeコマンドでLinuxのシステム稼働時間とロードアベレージを確認する方法

「サーバーが重いな」と感じたとき、まず確認するのがシステムの稼働時間とロードアベレージです。Linuxでは uptime コマンド一つで、現在のシステム状況の概要を素早く把握できます。

【この記事でわかること】

・uptimeコマンドでシステム稼働時間・ログインユーザー数・ロードアベレージを一度に確認できる
・ロードアベレージの3つの数値は直前1分・5分・15分の平均プロセス数を表す
・wコマンドのヘッダー行でもuptimeと同じ情報が確認できる
・ロードアベレージはCPUコア数と比較して高負荷かどうかを判断する

続きを読む "uptimeコマンドでLinuxのシステム稼働時間とロードアベレージを確認する方法"

NFSでLinuxサーバー間のディレクトリを共有する方法|/etc/exportsの設定とマウント手順

「サーバー間でファイルを共有したいが、SCPで都度コピーするのは手間がかかる」
「NFSを使えばリモートディレクトリを自分のサーバーにマウントできると聞いたが、設定方法がわからない」

NFS(Network File System)は、Linuxサーバーのディレクトリをネットワーク経由で別のLinuxサーバーにマウントする仕組みです。
一度設定すれば、ローカルのディレクトリと同じように読み書きできるため、
ログの集中管理や共有ストレージとして広く使われています。

この記事では、NFSサーバー側の/etc/exportsの設定から、クライアント側のmountコマンドによるマウント、
/etc/fstabへの自動マウント設定、トラブルシュートまで、実際のコマンド出力例を交えて解説します。

【この記事でわかること】

・NFSサーバー側は/etc/exportsにエクスポート設定を書き、exportfsコマンドで反映する
・クライアント側はmount -t nfsでマウント、/etc/fstabで自動マウントを設定できる
・showmountコマンドでサーバーのエクスポート一覧を確認できる
・NFSv4はポートが2049固定でファイアウォール設定が簡単、実務ではNFSv4を推奨

続きを読む "NFSでLinuxサーバー間のディレクトリを共有する方法|/etc/exportsの設定とマウント手順"

LinuxでPerlモジュールを一覧表示する方法|バージョン確認やインストールも

「Linuxサーバーにインストールされているperlモジュールを一覧で確認したい」
「スクリプトで必要なモジュールが入っているかどうか、手早く調べたい」
Perlベースのアプリケーションやスクリプトを動かす際、必要なモジュールがインストールされているか確認する場面は少なくありません。

この記事では、LinuxにインストールされているPerlモジュールを一覧表示する方法を解説します。
findコマンドでの検索方法、perldoccpan -l を使った確認方法、特定モジュールのバージョン確認まで、現場で使える知識をまとめました。
【この記事でわかること】
・Perlモジュールの保存場所を確認する
・Perlモジュールを一覧表示する方法
・yum/dnfでインストールしたPerlモジュールを確認する
・Perlモジュールのインストール方法

続きを読む "LinuxでPerlモジュールを一覧表示する方法|バージョン確認やインストールも"

Linuxのシステムクロック、ハードウェアクロック

「サーバーの時刻がずれていて、ログの時系列が合わない……」
Linuxを運用していると、そんな問題に直面することがあります。

Linuxには システムクロックハードウェアクロック の2種類があり、それぞれを正しく同期させる必要があります。

この記事では、2つのクロックの違いから、ntpdate による時刻同期、hwclock でのハードウェアクロック書き込みまで、現場で使える手順を解説します。
【この記事でわかること】
・システムクロックとハードウェアクロックの違い
・ntpdate でシステムクロックを同期する
・hwclock でハードウェアクロックを同期する
・cron で定期的に時刻同期する

続きを読む "Linuxのシステムクロック、ハードウェアクロック"

システムを指定時間後に終了する(shutdown -h +N)

「○分後にシャットダウンするようスケジュールしたいが、正確な時刻がわからない」「作業終了の30分後に自動でシステムを停止させたい」という場面でよく使われるのがshutdown -h +Nだ。

現在時刻からN分後にシャットダウンをスケジュールするコマンドで、接続中のユーザーへの事前通知も自動的に行われる。shutdown -h HH:MMの時刻指定と合わせて、状況に応じて使い分けることが重要だ。

本記事ではshutdown -h +Nの使い方から、メッセージのカスタマイズ、キャンセル方法まで解説する。

【この記事でわかること】
・shutdown -h +N の基本構文と使い方
・時刻指定(HH:MM)との使い分け
・カスタムメッセージを追加する方法
・スケジュールをキャンセルする方法

続きを読む "システムを指定時間後に終了する(shutdown -h +N)"

システムを指定時間に終了する(shutdown -h HH:MM)

「深夜のメンテナンス時間帯に自動でシャットダウンするようスケジュールしたい」「特定の時刻にシステムを停止する方法を知りたい」という場面はサーバー管理では珍しくない。

shutdown -h HH:MMを使うと24時間形式で時刻を指定してシャットダウンをスケジュールできる。指定時刻になると自動的にシャットダウン処理が開始され、接続中のユーザーには事前に警告が送られる。

本記事ではshutdown -h HH:MMの使い方から、カスタムメッセージの追加、キャンセル方法まで解説する。

【この記事でわかること】
・shutdown -h HH:MM の基本構文と動作
・時刻指定と分数指定の違い
・接続ユーザーへのメッセージ送信方法
・予約したシャットダウンのキャンセル方法

続きを読む "システムを指定時間に終了する(shutdown -h HH:MM)"

システムをすぐに終了する(shutdown -h now)

「Linuxサーバーを今すぐ安全にシャットダウンしたい」という場面は管理者であれば日常的にある。

システムを即座に終了する方法はいくつかあるが、shutdown -h nowが最もよく使われる標準的な方法だ。このコマンドはシャットダウン処理を正しく実行してからシステムを停止するため、データの破損リスクが低い。

本記事ではshutdown -h nowを中心に、haltpoweroffとの違い、実務での使い分けを解説する。

【この記事でわかること】
・shutdown -h now の基本構文と動作の流れ
・halt・poweroff との使い分け
・root 権限が必要な理由
・システム停止系コマンドの一覧と比較

続きを読む "システムをすぐに終了する(shutdown -h now)"

システムを停止する(halt)

「Linuxサーバーを停止させる方法がいくつかあるらしいが、haltコマンドとshutdownコマンドは何が違うのか?」と疑問を持つ方は多い。

haltコマンドはシステムを停止させるコマンドの一つで、実行するとすべての接続ユーザーにシステム停止メッセージが送られ、ランレベル0へ移行してシャットダウン処理が始まる。

本記事ではhaltコマンドの基本的な動作と、shutdownpoweroffとの違い、実行権限の違いを解説する。

【この記事でわかること】
・halt コマンドの基本的な動作と手順
・shutdown・poweroff との違い
・root と一般ユーザーの実行権限の違い
・ディストリビューションによる動作の違い

続きを読む "システムを停止する(halt)"

指定時間後にシステムを再起動する(shutdown -r +N)

「サーバーのメンテナンスで、ユーザーへの影響を最小限に抑えながら計画的に再起動したい」「N分後に再起動をスケジュールしたい」という場面はLinux管理者には日常的にある。

shutdownコマンドの-rオプションと時間指定を組み合わせると、指定した分数後に自動的に再起動するスケジュールを設定できる。接続中のユーザーに警告メッセージを送りながら安全にシャットダウン処理を進められる点が特徴だ。

本記事ではshutdown -r +Nの使い方から、メッセージ送信、キャンセル方法まで解説する。

【この記事でわかること】
・shutdown -r +N の基本構文と動作
・接続ユーザーへの警告メッセージの送り方
・予約した再起動をキャンセルする方法
・shutdown コマンドの主要オプション一覧

続きを読む "指定時間後にシステムを再起動する(shutdown -r +N)"

システム起動時に特定のサービスを起動する(chkconfig --add)

「サーバーを再起動するたびにサービスを手動で起動するのが面倒だ」「特定のサービスをシステム起動時に自動起動するよう設定したい」という方は多い。

chkconfigコマンドを使うと、特定のサービスをシステム起動時に自動起動するよう設定できる。SysVinitベースのCentOS/RHELで使われる方法で、--addオプションでサービスを登録し、onで自動起動を有効にする。

本記事ではchkconfigを使ったサービス自動起動の設定手順と、ランレベルを指定した細かい制御方法を解説する。

【この記事でわかること】
・chkconfig でサービスを自動起動に設定する手順
・--add オプションと on/off の使い分け
・ランレベルを指定した起動設定の方法
・systemd 環境での代替コマンド

続きを読む "システム起動時に特定のサービスを起動する(chkconfig --add)"

ランレベルごとのサービス起動と停止状況を表示する(chkconfig)

「Linuxサーバーを起動したとき、どのサービスが自動起動されているのかを確認したい」「ランレベルごとの起動状況を一覧で把握したい」という方は多い。

chkconfigコマンドを使うと、システム起動時に各サービスがどのランレベルで起動・停止するかを一覧表示できる。古いSysVinitベースのCentOS/RHELでよく使われるコマンドで、起動サービスの管理に欠かせない。

本記事ではchkconfig --listの使い方と、出力の読み方、実務での活用法を解説する。

【この記事でわかること】
・chkconfig --list の基本的な使い方と出力の読み方
・ランレベルの意味と各番号の説明
・特定サービスの起動状況を確認する方法
・systemd 環境との違いと代替コマンド

続きを読む "ランレベルごとのサービス起動と停止状況を表示する(chkconfig)"

killallコマンドで使用できるkillシグナルを表示する(killall -l)

「killallコマンドでシグナルを指定したいが、シグナル名はkillコマンドと同じなのだろうか?」と疑問を持つ方は少なくない。

実はkillallコマンドのシグナル名はディストリビューションによって異なる場合があり、killコマンドとは仕様が異なることもある。そのためkillall -lで使用可能なシグナル一覧を事前に確認してから使うのが安全だ。

本記事ではkillall -lの使い方と、killコマンドとの違い、注意点を解説する。

【この記事でわかること】
・killall -l でシグナル一覧を確認する方法
・killall と kill のシグナル名の違い
・killall でシグナルを指定して実行する方法
・ディストリビューションによる違いへの対処法

続きを読む "killallコマンドで使用できるkillシグナルを表示する(killall -l)"

killコマンドで使用できるkillシグナルを表示する(kill -l)

「killコマンドのシグナル番号って何種類あるの?」「SIGTERMとSIGKILLの他にどんなシグナルがあるか確認したい」という方は多い。

killコマンドには多数のシグナルが用意されており、シグナル番号・シグナル名・略称のいずれでも指定できる。kill -lを実行すると、そのシステムで使用可能なシグナルの一覧を確認できる。

本記事ではkill -lの使い方と、主要なシグナルの意味・使い分けを解説する。

【この記事でわかること】
・kill -l コマンドの基本的な使い方
・シグナル番号・シグナル名の確認方法
・主要なシグナルの意味と用途
・シグナル番号・名前・略称の使い分け

続きを読む "killコマンドで使用できるkillシグナルを表示する(kill -l)"

Linuxでプロセスをバックグラウンドで実行する方法(nohup・bg・disown)

「SSHでサーバーに接続して長時間かかるコマンドを実行していたが、接続が切れたら処理が止まってしまった」という経験はないだろうか。

この問題の根本はLinuxのプロセスとターミナルセッションの関係にある。SSH接続が切れるとHUPシグナルが送られ、セッションに紐付いたプロセスがすべて終了してしまう。

これを防ぐために使うのがnohupbgdisownだ。それぞれ仕組みが異なり、状況に応じた使い分けが重要になる。本記事で3つのコマンドの違いと使い方を体系的に整理しよう。

【この記事でわかること】
・nohup・bg・disown それぞれの仕組みと使い分け
・SSH切断後もプロセスを継続させる方法
・バックグラウンド実行とジョブ管理の基本
・出力のリダイレクト先の管理方法

続きを読む "Linuxでプロセスをバックグラウンドで実行する方法(nohup・bg・disown)"

特定コマンドのプロセスをすべて終了する(killall)

「同じコマンドを複数起動してしまい、PIDを一つひとつ調べてkillするのが面倒だ」という状況はLinuxを使っていれば必ず経験する。

そのような場面で便利なのがkillallコマンドだ。PIDではなくコマンド名を指定することで、そのコマンドが起動しているすべてのプロセスを一度に終了させることができる。

本記事ではkillallの基本的な使い方から、killコマンドとの違い、実務での活用シーンまでを解説する。

【この記事でわかること】
・killall の基本構文とコマンド名指定の仕組み
・kill コマンドとの使い分け
・シグナルを指定した強制終了の方法
・killall 使用時の注意点

続きを読む "特定コマンドのプロセスをすべて終了する(killall)"

実行中のプロセスを終了する(kill PID)

「実行中のプロセスを終了したいが、どのコマンドを使えばいいのかわからない」「PIDを調べてからkillするまでの手順が曖昧だ」という方は多い。

Linuxでプロセスを終了する基本コマンドはkillだ。引数としてPID(プロセスID)を指定するだけで、対象プロセスにSIGTERM(終了シグナル)を送り、正常終了を促すことができる。

本記事ではkill PIDの基本的な使い方から、PIDの調べ方、注意点まで体系的に解説する。

【この記事でわかること】
・kill コマンドの基本構文と動作の仕組み
・ps コマンドで PID を調べる手順
・SIGTERM と SIGKILL の違い
・root 権限と一般ユーザーの違い

続きを読む "実行中のプロセスを終了する(kill PID)"

実行中のプロセスを強調表示してグラフィカルに表示する(pstree -h)

「pstreeコマンドでプロセスのツリーを見ているが、どれが今実際に動いているプロセスなのか一目でわからない」と感じたことはないだろうか。

psコマンドは起動中・停止中を問わずすべてのプロセスを一覧するため、実行中のものだけを素早く特定するには不向きな場面がある。そこで役立つのがpstree -hだ。このオプションを使うと、現在実行中のプロセスがツリー表示の中で強調(ハイライト)され、視覚的に一目でわかるようになる。

本記事ではpstree -hの基本的な使い方から、-Gオプションとの組み合わせ、実務での活用シーンまでをわかりやすく解説する。

【この記事でわかること】
・pstree -h の基本的な動作と表示の見方
・-G オプションと組み合わせたグラフィカル表示の方法
・実行中プロセスを素早く特定するための実務的な活用法
・pstree コマンドの主要オプション一覧

続きを読む "実行中のプロセスを強調表示してグラフィカルに表示する(pstree -h)"

プロセスをツリー状に表示する

このページでは pstreeコマンドでプロセスの全体像をツリー表示できますか? の操作方法について解説します。

【この記事でわかること】
・pstree コマンドでプロセスの親子関係をツリー形式で視覚的に表示できる
・pstree -p でPIDも合わせて表示できる
・pstree -u でユーザー名も合わせて表示できる
・pstree ユーザー名 で特定ユーザーのプロセスツリーのみを表示できる

続きを読む "プロセスをツリー状に表示する"

特定のプロセスの状態のみを表示する

このページでは 特定のプロセス名やPIDで素早く絞り込んで確認できますか? の操作方法について解説します。

【この記事でわかること】
・ps -p PID で特定のプロセスIDのプロセス情報のみを表示できる
・ps -C プロセス名 でプロセス名で絞り込んでプロセス情報を表示できる
・複数のPIDを指定する場合は ps -p 1234,5678 のようにカンマ区切りで指定できる
・pgrep コマンドでプロセス名からPIDを取得してから ps -p と組み合わせる使い方もある

続きを読む "特定のプロセスの状態のみを表示する"

実行中のプロセスのみ表示する

このページでは Runningのプロセスだけを素早く絞り込んで表示できますか? の操作方法について解説します。

【この記事でわかること】
・ps r で実行中(R状態:Running または Runnable)のプロセスのみを表示できる
・プロセスの状態には R(実行中)・S(スリープ)・D(割り込み不可スリープ)・Z(ゾンビ)などがある
・ps r はCPUを占有しているプロセスをすばやく特定したいときに使える
・top コマンドの STAT 列でも各プロセスの状態をリアルタイムに確認できる

続きを読む "実行中のプロセスのみ表示する"

プロセスの親子関係を含めて表示する

このページでは プロセスの親子関係を一目で把握するコマンドを使えますか? の操作方法について解説します。

【この記事でわかること】
・ps --forest オプションでプロセスの親子関係をASCIIアート風のツリー表示できる
・pstree コマンドでも同様のツリー表示ができ、より見やすい形式で確認できる
・PPID を辿ることでプロセスの起動経路を手動で追跡することもできる
・fork して生成された子プロセスが親プロセスから派生している様子を視覚的に確認できる

続きを読む "プロセスの親子関係を含めて表示する"

デーモンプロセスも含めて表示する

このページでは ps -efでデーモンプロセスを識別して稼働状況を確認できますか? の操作方法について解説します。

【この記事でわかること】
・ps -ef でデーモンプロセスを含む全プロセスの詳細情報を一覧表示できる
・TTY が ? になっているプロセスがデーモン(端末に紐づかないプロセス)
・PPID=1 のプロセスはinit/systemdの直下で起動したデーモンプロセス
・ps -ef | grep デーモン名 で特定のデーモンの稼働状況を確認できる

続きを読む "デーモンプロセスも含めて表示する"

プロセスの状態を詳細に表示する

このページでは ps -f の出力でPPIDやSTIMEの意味をすぐに説明できますか? の操作方法について解説します。

【この記事でわかること】
・ps -f オプションでUID・PID・PPID・C・STIME・TTY・TIME・CMDを詳細表示できる
・PPID(親プロセスID)を確認することで、プロセスの起動元を追跡できる
・STIME(起動時刻)でいつプロセスが起動したかを確認できる
・ps -ef と組み合わせると全プロセスを詳細表示できる

続きを読む "プロセスの状態を詳細に表示する"

プロセスの状態を表示する

このページでは psコマンドの出力項目(PID・TTY・TIME・CMD)の意味を説明できますか? の操作方法について解説します。

【この記事でわかること】
・ps コマンドで現在の端末に紐づく実行中プロセスを一覧表示できる
・PID・TTY・TIME・CMD の4列が基本的な出力項目
・ps はスナップショット表示のため、リアルタイム更新が必要な場合は top コマンドを使う
・プロセスIDは kill コマンドでプロセスを停止する際に必要になる

続きを読む "プロセスの状態を表示する"

一定時間ごとにメモリ使用状況を更新して表示する

このページでは watchコマンドでメモリやCPUの変化をリアルタイム監視できますか? の操作方法について解説します。

【この記事でわかること】
・watch -n 秒数 コマンド でコマンドを一定間隔で繰り返し実行できる
・watch -n 2 free -m のように指定すると2秒ごとにメモリ使用状況が更新表示される
・デフォルトの更新間隔は2秒(-n を省略した場合)
・Ctrl+C で watch の定期実行を停止できる

続きを読む "一定時間ごとにメモリ使用状況を更新して表示する"

メモリの情報を表示する

このページでは メモリ使用状況を正確に把握するコマンドを使いこなせていますか? の操作方法について解説します。

【この記事でわかること】
・free コマンドでメモリの合計・使用中・空き・バッファ/キャッシュ量を確認できる
・free -h オプションで MB/GB 単位の見やすい表示に切り替えられる
・cat /proc/meminfo でメモリの詳細情報(MemFree・Cached・SwapFree など)を確認できる
・free -m で MB 単位表示、free -g で GB 単位表示にできる

続きを読む "メモリの情報を表示する"

CPUの情報を表示する

このページでは サーバーのCPU情報をコマンド1行で確認できますか? の操作方法について解説します。

【この記事でわかること】
・lscpu コマンドでCPUのアーキテクチャ・コア数・スレッド数などをまとめて確認できる
・cat /proc/cpuinfo でCPUの詳細情報(型番・キャッシュサイズ・フラグなど)を確認できる
・grep -c processor /proc/cpuinfo で論理CPUの総数を素早く確認できる
・nproc コマンドでも利用可能な論理プロセッサ数を1行で確認できる

続きを読む "CPUの情報を表示する"

Linuxで一時的にスワップ領域を増やす方法|mkswap・swapon・swapoffの手順

「本番サーバーでメモリ使用率が跳ね上がって、swap領域まで食い尽くされてしまった...」
「今すぐスワップ領域を増やしたいけど、パーティションの切り直しはダウンタイムが発生するから避けたい...」

サーバー運用の現場でメモリ不足に遭遇したとき、OSを停止せずに一時的にスワップ領域を追加できると障害対応の選択肢が大きく広がります。

この記事では、スワップファイルを使って一時的にスワップ領域を増やす方法を、ddコマンドでの空ファイル作成からmkswap・swapon・swapoffまでの一連の手順で解説します。CentOS 6時代から現代のRHEL 9 / AlmaLinux 9 / Rocky Linux 9 / Ubuntu 24.04 LTSまで、基本的な考え方はそのまま通用する「現場で使える知識」としてまとめました。

【この記事でわかること】

・dd コマンドで空ファイルを作り mkswap でスワップ化する
・swapon で有効化し free や swapon -s で確認できる
・swapoff で解放でき、再起動すると自動的に消える
・スワップファイルのパーミッションは 600 必須

スワップ領域とは?なぜファイルで追加できるのか

スワップ領域(swap:仮想メモリ領域)とは、物理メモリ(RAM)が不足した際に、ディスクの一部を一時的にメモリの代わりとして使用するための領域です。

Linuxをインストールする際、通常は以下の2つのパーティションを最低限作成します。

ルートパーティション(/):OSやアプリケーションが格納される領域
スワップ領域(swap):物理メモリ不足時の退避領域

従来、スワップ領域のサイズは「物理メモリの1~2倍」が目安とされてきました。たとえば物理メモリを1GB搭載している場合、1GB~2GBのスワップ領域を確保するのが一般的でした。ただし近年は物理メモリの大容量化が進んでいるため、メモリを十分に積んでいるサーバーではスワップをほとんど使わない構成も珍しくありません。

問題は、運用開始後にスワップ領域が足りなくなったときです。パーティションの切り直しはダウンタイムが発生するうえ、LVMでない環境では作業難易度も高くなります。そこで活躍するのが「スワップファイル方式」です。

Linuxでは、スワップ領域はパーティションだけでなく通常のファイルとしても作成できるという柔軟な仕組みを備えています。ddコマンドで空ファイルを作り、mkswapでスワップ用にフォーマットし、swaponで有効化するだけで、OSを再起動することなくその場でスワップ容量を増やせます。緊急対応には最適な方法です。

スワップファイルで一時的にスワップ領域を増やす手順

ここからは実際の作業手順を解説します。今回はCentOS 6系サーバー「Tiger」での実行例を掲載していますが、コマンド自体は現代のRHEL系・Ubuntu系でも同様に動作します。

1. ddコマンドで空のスワップファイルを作成する

まずは dd(disk dump)コマンドで、スワップ領域として使うための空ファイルを作成します。今回は64MB(65536ブロック × 1024バイト)のファイルを /tmp/swapfile として作成します。

[root@Tiger ~]# dd if=/dev/zero of=/tmp/swapfile bs=1024 count=65536 65536+0 records in 65536+0 records out 67108864 bytes (67 MB) copied, 4.03076 seconds, 16.6 MB/s

オプションの意味は以下の通りです。

if=/dev/zero:入力元をゼロ埋めデバイスに指定(中身がすべて0の空ファイルを作るため)
of=/tmp/swapfile:出力先のファイルパスを指定
bs=1024:ブロックサイズを1024バイト(1KB)に指定
count=65536:ブロック数を指定(1024 × 65536 = 約64MB)

※実際のサーバーでスワップを増やす場合は、count の値を調整して必要なサイズにしてください。1GB分作成したい場合は bs=1M count=1024 のように指定するとわかりやすくなります。

2. スワップファイルに適切な権限を付与する

作成したスワップファイルには、パーミッション600(所有者のみ読み書き可能)を必ず設定します。

[root@Tiger ~]# chmod 600 /tmp/swapfile

スワップ領域にはメモリ上のデータ(パスワードや暗号鍵などの機密情報が含まれる可能性がある)が退避されます。他のユーザーから読み取れる状態にしておくと情報漏洩のリスクがあるため、600以外のパーミッションでは絶対に運用してはいけません

※近年のmkswapやswaponは、パーミッションが緩い(644等)の場合に警告を出したり、実行を拒否したりする仕様になっています。必ずchmod 600を先に実行しておきましょう。

3. mkswapコマンドでスワップ領域としてフォーマットする

次に、作成した空ファイルをスワップ領域として使用できるようにフォーマットします。使用するのは mkswap(make swap)コマンドです。

[root@Tiger ~]# mkswap /tmp/swapfile 65536

第2引数の 65536 はスワップ領域のサイズ(ブロック数)を明示的に指定しています。現代のmkswapでは自動検出されるため省略可能ですが、古い環境との互換性を考えて明示しておくと安心です。

4. swaponコマンドでスワップ領域を有効化する

フォーマットが完了したら、swapon コマンドでシステムにスワップ領域として認識させます。

Setting up swapspace version 1, size = 67104 kB [root@Tiger ~]# swapon /tmp/swapfile

Setting up swapspace version 1, size = 67104 kB という出力は、前段の mkswap 実行時に表示されているメッセージです。その直後に swapon を続けて実行すると、システム全体のスワップ領域に追加されます。

5. swapon -s で追加されたことを確認する

最後に、追加したスワップファイルが正しくシステムに認識されているかを swapon -s コマンドで確認します。

[root@Tiger ~]# swapon -s Filename Type Size Used Priority /dev/mapper/VolGroup00-LogVol01 partition 524280 0 -1 /tmp/swapfile file 65528 0 -2

Type 列を見ると、元々あった /dev/mapper/VolGroup00-LogVol01partition 型、追加した /tmp/swapfilefile 型として認識されていることがわかります。Priority 列は優先度を示しており、数値が大きいほど優先的に使用されます。追加したスワップファイルは-2 となり、既存のパーティション型スワップ(-1)より後で使われる設定になっています。

free -h コマンドでも物理メモリとスワップの合計容量を確認できます。Swap: 行の total が64MB分増えていれば成功です。

不要になったスワップ領域を解放する手順

一時的に追加したスワップファイルは、メモリ不足が解消したら速やかに解放しましょう。ディスクI/Oの負荷を避けるためにも、不要なスワップ領域は残さないのが鉄則です。

1. swapoffでスワップ領域から切り離す

swapoff コマンドで、指定したスワップファイルをシステムから切り離します。

[root@Tiger ~]# swapoff /tmp/swapfile

swapoff 実行時にスワップファイル内にデータが残っている場合、物理メモリへ書き戻す処理が発生します。メモリに余裕がない状態で実行すると失敗する、あるいはシステム負荷が急上昇する可能性があるため、メモリ使用率が落ち着いたタイミングで実行してください。

2. swapon -s でスワップ領域から消えたことを確認する

解放したスワップファイルが、一覧から消えていることを確認します。

[root@Tiger ~]# swapon -s Filename Type Size Used Priority /dev/mapper/VolGroup00-LogVol01 partition 524280 0 -1

/tmp/swapfile の行が消え、元のパーティション型スワップのみが残っていれば解放完了です。その後、不要になったファイル本体は rm /tmp/swapfile で削除して構いません。

応用・実務Tips:スワップファイル運用の注意点

一時的な追加なので再起動すると消える

本手順で追加したスワップファイルは、サーバーを再起動すると自動的に無効化されます/etc/fstab に記載していないため、システム起動時には読み込まれないからです。

あくまで「今この瞬間のメモリ不足を凌ぐ」ための手段であり、恒久的にスワップを増やしたい場合は、物理メモリの増設やパーティションの再設計を検討してください。どうしてもファイル方式で永続化したい場合は、以下のようなエントリを /etc/fstab に追記します。

# /etc/fstab に以下を追記する /tmp/swapfile swap swap defaults 0 0

ただし/tmp ディレクトリは再起動時にクリアされる設定(tmpfsマウント)の場合があるため、恒久運用するなら /var/swapfile など別の場所に作成することを推奨します。

スワップの過剰設定はシステムを遅くする

「念のためスワップを大量に用意しておけば安心」と考える方もいますが、実務ではスワップが頻繁に使われる状態(スワッピング)はシステム全体のパフォーマンスを大幅に低下させます。ディスクI/OはメモリI/Oに比べて数百~数千倍遅いためです。

スワップは「メモリ不足で突然OSがクラッシュするのを防ぐセーフティネット」と考え、常用前提の運用は避けましょう。スワップ使用率が慢性的に高いサーバーは、物理メモリの増設やアプリケーションのチューニングを優先すべきサインです。

swappinessで「スワップの使われやすさ」を調整する

Linuxには vm.swappiness というカーネルパラメーターがあり、スワップをどの程度積極的に使うかを0~100で調整できます。デフォルト値は60で、数値が大きいほどスワップを積極的に使う設定です。

# 現在のswappiness値を確認する # cat /proc/sys/vm/swappiness # 一時的に10に変更する(再起動で戻る) # sysctl vm.swappiness=10

データベースサーバーのようにメモリを積極的に使いたい環境では、vm.swappiness=10 程度に下げてスワップ使用を抑制するチューニングがよく行われます。

「swapon: /tmp/swapfile: Permission denied」が出た時の対処法

mkswapやswapon実行時に Permission denied エラーが出た場合、原因の大半は以下の3つです。

パーミッションが600になっていない:前述の通り、chmod 600 /tmp/swapfile を実行してから再度試してください
root権限で実行していない:スワップ関連の操作はroot権限が必須です。sudo を付けて実行するか、su - でrootになってから実行してください
ファイルシステムがswapfileをサポートしていない:Btrfsなど一部のファイルシステムでは追加の設定が必要です。ext4やxfsであれば問題なく動作します

「swapon: /tmp/swapfile: swapon failed: Invalid argument」が出る場合

このエラーは、mkswapでフォーマットする前にswaponを実行した場合に発生します。手順の「3. mkswap」→「4. swapon」の順番を必ず守ってください。また、既にスワップ領域として登録されているファイルに対して再度swaponを実行した場合にも同じエラーが出ます。

本記事のまとめ

やりたいこと コマンド
64MBの空ファイルを作成する dd if=/dev/zero of=/tmp/swapfile bs=1024 count=65536
スワップファイルのパーミッションを設定する chmod 600 /tmp/swapfile
スワップ領域としてフォーマットする mkswap /tmp/swapfile
スワップ領域を有効化する swapon /tmp/swapfile
現在のスワップ領域一覧を確認する swapon -s
スワップ領域を解放する swapoff /tmp/swapfile
物理メモリとスワップの使用状況を確認する free -h
swappinessの値を確認する cat /proc/sys/vm/swappiness
swappinessを一時的に変更する sysctl vm.swappiness=10

本番サーバーで障害が起きたとき、あなたは冷静に対処できますか?

スワップファイルでの緊急対応は、Linuxサーバー管理のごく一部にすぎません。メモリ・ディスク・ネットワーク・プロセス管理まで、現場で直面するトラブルに対処するには体系的な知識と手順の引き出しが欠かせません。
古いネットの情報をツギハギでコピペする危うい運用から卒業し、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

システムをすぐに再起動する

「Linuxサーバーをすぐに再起動したい」
「rebootとshutdown -r nowの違いは何か?」

この記事では、Linuxシステムを即時再起動するコマンドを実行例付きで解説します。
reboot・shutdown -r now・systemctl reboot の違いと使い分けも説明します。

【この記事でわかること】
・rebootコマンドでLinuxシステムを即時再起動する方法
・shutdown -r now で再起動する方法とrebootコマンドとの違い
・systemctl reboot を使ったsystemd環境での再起動方法
・haltコマンドとの違いと、シャットダウン・再起動の使い分け

続きを読む "システムをすぐに再起動する"

Linux無料マニュアル(図解60P) 名前とメールで30秒登録