システム管理
システム管理:記事リスト
システム管理のカテゴリーには以下の記事がリストされています。
systemd timerでcronジョブを置き換える方法|.timerユニットの作り方と実践例
「crontab -e で設定したのに、なぜかジョブが動いていない。ログの見方もよくわからない」
こういった悩みを持つエンジニアは多いはずです。cronは歴史ある定番ツールですが、環境変数の引き継ぎや実行ログの管理が独特で、トラブルのたびに原因究明に手間がかかります。
この記事では、systemd timer を使ってcronジョブをモダンな方法で置き換える手順を解説します。.serviceファイルと.timerファイルの書き方から、EnvironmentFileを使ったシークレット管理、systemctlによる管理・ログ確認まで、実際のサーバー環境で使える実践例を交えて丁寧に説明します。
この記事のポイント
・systemd timerは.serviceと.timerの2ファイルで定義する
・journalctlでジョブの実行ログをcronより簡単に追跡できる
・OnCalendar=で柔軟な時刻指定が可能(週次・月次も簡単)
・EnvironmentFile=でAPIキー等のシークレットを.serviceファイルから安全に分離できる
Linuxサーバー監視の基礎|サーバー状態を見る11項目とコマンド対応表
現場に出たての頃は、こういう状況で何から確認すればいいかわからず、ただログをじっと眺めていた経験がある人も多いはずです。
Linuxサーバーの監視には、押さえておくべき11の確認項目があります。この11項目を順番に確認できれば、たいていのパフォーマンス問題は根本原因にたどり着けます。
この記事では、Linuxサーバー監視の基礎として押さえるべき11項目と、それぞれに対応するコマンドを体系的に解説します。RHEL 9.4 / AlmaLinux 9 / Ubuntu 24.04 LTSを想定しています。
この記事のポイント
・Linuxサーバーの状態は11項目で体系的に把握できる
・top/free/df/ss/journalctlなど標準コマンドで即日対応可能
・アラート設計はメール通知よりsystemdとcronの組み合わせが現実的
・Prometheus連携で長期トレンド監視に発展させられる
top・htop・atop・glancesでLinuxのプロセス監視を自動化する方法|ツール比較と設定例
「監視ツールをちゃんと導入したいけど、top/htop/atop/glancesの違いが整理できない」
そういう声は、セミナーやメルマガの読者からもよく届きます。
この記事では、Linux標準のtopコマンドから始まり、インタラクティブなhtop、過去ログが残るatop、総合ダッシュボードのglancesまで、実際の現場で使える視点でまとめて解説します。RHEL 9.4 / Ubuntu 24.04 LTS / AlmaLinux 9を想定しています。
この記事のポイント
・topは標準搭載で今すぐ使える。bキーで強調表示してCPUプロセスを素早く発見できる
・htopはマウス操作対応でプロセスをツリー表示。キル操作も対話式で安全に行える
・atopは過去分まで記録するので「昨夜の負荷スパイク」を事後調査できる唯一の選択肢
・glancesはWebブラウザやREST APIでリモート監視できる。小規模サーバーに最適
続きを読む "top・htop・atop・glancesでLinuxのプロセス監視を自動化する方法|ツール比較と設定例"
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ファイルを作成し、mkswap・swapon で有効化する・
free -m でSWAP容量の変化を確認できるCentOS8 カーネルバージョン(kernel version)を確認する
今回は、それらの確認方法を紹介します。
CentOS8.0をインストールした直後の
カーネルバージョン(kernel version)は、4.18になります。
・
uname -r でカーネルバージョンのみ表示できる・
uname -a ですべてのシステム情報を表示できる・
rpm -q kernel でインストール済みカーネルを確認できる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のロケールを確認・変更する方法|日本語・英語の切り替えも
「localectlコマンドの使い方がわからない」
この記事では、CentOS 7 / RHEL 7以降のsystemd環境でlocaleを確認・変更する方法を解説します。
localectlコマンドの基本から、使用可能なロケール一覧の確認、日本語化・英語化の手順まで実践的に解説します。
・
localectl status で現在のロケール設定を確認できる・
localectl set-locale LANG= で言語ロケールを変更できる(再起動不要、再ログインで反映)・CentOS 7以降では
localectlが推奨。/etc/locale.confも自動更新されるCentOS7でrootのSSHログインを無効化する
「rootでのSSH接続を許可したままサーバーを公開しているのが不安」
インターネットに公開するLinuxサーバーでは、rootアカウントへのSSH直接ログインを無効にするのはセキュリティの基本です。
rootパスワードが漏洩した場合や、ブルートフォース攻撃に対して脆弱になります。
この記事では、CentOS7 / RHEL7でrootのSSHログインを無効化する手順を解説します。
・
PermitRootLogin no を /etc/ssh/sshd_config に設定するだけで無効化できる・設定後は
systemctl restart sshd で反映が必要・無効化前に必ず一般ユーザー+sudo環境を整えてからロックアウトを防ぐ
CentOS7でfirewalldの確認と停止(ファイアウォール)
そんな疑問を持つ方は多いです。
CentOS7からファイアウォールの推奨ツールがiptablesからfirewalldに変わりました。
開発環境や内部ネットワーク専用サーバーでは、ファイアウォールを一時的に停止したい場面もあります。
この記事では、CentOS7のfirewalldの状態確認と停止方法を解説します。
・
firewall-cmd --list-services で許可されているサービスを確認できる・
systemctl stop firewalld で即時停止、systemctl disable firewalld で恒久停止・本番サーバーでは停止せず、必要なポートだけ開放するのが正しい対処
CentOS 7のバージョンアップ手順|yum updateの実行方法と注意点
「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を推奨
unameコマンドでLinuxのカーネルバージョンを確認する方法|OS情報の確認コマンドも
「unameコマンドでカーネルバージョン以外の情報も確認できるのか」
この記事では、Linuxのカーネルバージョンを確認する方法を解説します。
unameコマンドの各オプションから/proc/versionファイルでの確認方法、RHEL/CentOSのバージョン確認コマンドまで実践的な方法を網羅します。
・
uname -r でLinuxのカーネルバージョンのみを素早く確認できる・
uname -a ですべてのシステム情報をまとめて表示できる・
/proc/version や cat /etc/os-release でOS・ディストリビューション情報も確認できるCentOS7でログ容量制限を設定する方法|journaldのSystemMaxUse設定と容量確認
そんな悩みを持つエンジニアは多いです。
CentOS7から採用されたjournaldは、デフォルトでファイルシステムの10%をログ領域として確保します。
放置すると気づかないうちにディスクを圧迫し、サービス停止につながることがあります。
この記事では、journaldのログ容量制限の設定方法と、現在のログ使用量の確認コマンドを解説します。
・journaldとは?CentOS7のログ管理の仕組み
・journaldのログ容量制限を設定する方法
・その他の容量制限パラメータ
・古いログを手動で削除する方法
CentOS7でログ保存設定をする
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名のサブディレクトリ配下にログが保存される
journalctlコマンドでCentOS7のsystemdログを確認する方法|フィルタリング・リアルタイム監視の実践ガイド
「journaldとrsyslogの違いや関係性を理解したい」
この記事では、CentOS 7以降のsystemd環境で使用するjournalctlコマンドの基本的な使い方から、実務でよく使うフィルタリングの方法まで解説します。
・journalctlはsystemdのログ管理システム(journald)のログを表示するコマンド
・-b でブートログ、-u でサービス別ログ、--since/--until で日時フィルタリングができる
・-f でtailと同様のリアルタイム監視、-e で末尾からジャンプして最新ログを確認できる
続きを読む "journalctlコマンドでCentOS7のsystemdログを確認する方法|フィルタリング・リアルタイム監視の実践ガイド"
CentOS7・RHEL7系のネットワーク設定方法|nmcli・NetworkManagerの実践ガイド
「nmcliの使い方が多すぎて、どれを覚えればいいか分からない」
CentOS7/RHEL7以降のLinuxでは、ネットワーク管理の仕組みがNetworkManager中心に切り替わりました。
この記事では、CentOS7/RHEL7系でのネットワーク設定方法について、NetworkManagerと
nmcliコマンドを中心に、固定IPアドレス設定・DNS設定・デフォルトゲートウェイ・接続状態の確認・トラブル対処までを解説します。現場でそのまま使える実践コマンドを中心にまとめています。・CentOS7/RHEL7以降はNetworkManagerが標準。設定は
nmcliコマンドで行うのが現場流・接続プロファイル単位で管理され、
connectionとdeviceの2階層を理解すれば全体像が掴める・固定IP・DNS・ゲートウェイ・DHCP切り替えまで、
nmcliだけで完結できる続きを読む "CentOS7・RHEL7系のネットワーク設定方法|nmcli・NetworkManagerの実践ガイド"
CentOSでCtrl-Alt-Deleteを無効にする|systemctlとinittabの両対応
「サーバーで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 を使うmkpasswdコマンドでランダムなパスワードを生成する方法|文字数や文字種の指定も
「パスワードを考えるのが面倒。自動で強力なパスワードを作れないか」
定期的なパスワード変更や新規ユーザー作成の際、安全なパスワードを手動で考えるのは手間がかかります。
この記事では、
mkpasswd コマンドでランダムなパスワードを生成する方法を解説します。インストール方法、文字数や文字種の指定、opensslやurandomを使った代替手段まで、パスワード生成に必要な知識をまとめました。・
mkpasswd コマンドでランダムなパスワードを即座に生成できる・
-l で文字数、-d で数字数、-C で大文字数、-s で特殊文字数を指定できる・
mkpasswd は expect パッケージに含まれる(要インストール)・
openssl rand -base64 16 でもランダム文字列を生成できる・
/dev/urandom を使った生成方法は追加インストール不要Linuxで一時的に管理者(root)にスイッチする
su コマンドでは管理者パスワードが必要ですが、sudo コマンドを使えば一般ユーザーのパスワードで一時的に管理者権限を行使できます。rootパスワードを共有せずに安全な権限管理が実現します。
この記事では、sudo の設定方法(visudo)と実際の使い方、セキュリティ上の注意点を解説します。
【この記事でわかること】
・sudo はrootパスワードを共有せずに管理者権限のコマンドを実行できる仕組み
・/etc/sudoers の編集には必ず visudo を使う(vi の直接編集は危険)
・パスワードキャッシュはデフォルト5分間有効
・NOPASSWD 設定は利便性が上がる反面、セキュリティリスクも高まるため慎重に
使用量の高いディレクトリを表示する
du・sort・head コマンドをパイプでつなぐと、ディスク使用量の多いディレクトリを上位から順番に表示できます。ディスク容量が逼迫した場合のトラブルシュートに必須の手法です。
この記事では、du + sort + head の組み合わせで使用量の多いディレクトリを素早く特定する方法を解説します。
・du -s でディレクトリ合計使用量を取得し、sort -rn で降順ソートできる
・head -10 で上位10件に絞り込むことで素早く大容量ディレクトリを特定できる
・-h オプション(人間が読みやすい単位)と sort -rh の組み合わせが現代の定番
・アクセス権限のないディレクトリは「Permission denied」エラーになるため 2>/dev/null で抑制する
RPMデータベースを再構築する|rpm --rebuilddb で「rpmdb open failed」を復旧する完全手順
この記事のポイント
・rpm --rebuilddb でRPMデータベースを安全に再構築できる
・実行前に /var/lib/rpm を必ずバックアップする
・rpm -qa の応答停止や「db5 error」「rpmdb open failed」が再構築の合図
・RHEL 9 / Rocky Linux 9 / AlmaLinux 9でも同じ手順で通用する
RPM系ディストロを長年運用していると、いずれ一度はRPMデータベース破損に遭遇します。yum / dnfの裏で動いているRPM DBが壊れると、インストール・更新・削除のすべてが止まります。
この記事では、RPMデータベースを再構築する方法を、rpm --rebuilddbコマンドの基本動作と前後のバックアップ手順、よくあるトラブル対処までまとめて解説します。RHEL 9 / Rocky Linux 9 / AlmaLinux 9 / CentOS Stream 9を想定しています。
続きを読む "RPMデータベースを再構築する|rpm --rebuilddb で「rpmdb open failed」を復旧する完全手順"
RPMパッケージの状態を表示する
rpm -qs コマンドを使うと、インストールされている RPM パッケージの各ファイルが「通常(normal)」の状態にあるかを確認できます。ファイルが改ざんされたり誤って削除された場合に「置き換えられている(replaced)」や「不足(missing)」と表示されます。
この記事では、rpm -qs コマンドによる RPM パッケージのファイル状態確認方法を解説します。
【この記事でわかること】
・rpm -qs でパッケージ内の各ファイルの状態を確認できる
・「通常」はファイルが正常な状態、「置き換えられている」「不足」は問題あり
・出力量が多いため less/more とのパイプ併用が基本
・セキュリティ監査でファイル改ざん検出にも活用できる
所属しているグループ内で一時的にプライマリグループを変更する|newgrp / sg / SGIDで使い分けるグループ切り替え術
この記事のポイント
・newgrpコマンドを使うと、所属しているグループ内で一時的にプライマリグループを変更できる
・プライマリグループの一時的な切り替えはサブシェルとして動作し、exitで元のグループに戻れる
・newgrpはログインし直しと同じ扱いなので、環境変数や作業ディレクトリの挙動に注意が必要
・現代のLinux(RHEL9系・Ubuntu 24.04系)でも newgrp は標準コマンドとしてそのまま動く
続きを読む "所属しているグループ内で一時的にプライマリグループを変更する|newgrp / sg / SGIDで使い分けるグループ切り替え術"
ユーザーのプライマリグループを変更する
プライマリグループの変更は usermod -g コマンドで実施します。グループ名または GID を指定して変更できます。
この記事では、usermod -g コマンドを使ったプライマリグループの変更方法を解説します。
・usermod -g でユーザーのプライマリグループを変更できる
・変更先のグループはシステムに既に存在している必要がある
・-g(プライマリ)と -G(サブグループ)の違いを理解できる
・変更後に /etc/passwd の GID が更新されたか確認できる
グループパスワードを削除する|gpasswd -r / -R の使い分けと現代運用の判断軸
「gpasswd -r と gpasswd -R の違いがわからない」
「グループパスワード自体、本当に必要なのか?」
この記事では、Linuxでグループパスワードを削除する手順を、現役のサーバー管理者の立場で実務的に解説します。
gpasswd -r / gpasswd -R の使い方と違い、削除後の動作確認、グループ管理者の権限の仕組み、そして「現代の運用ではグループパスワードを使うべきか」という設計判断までを一気通貫で扱います。
動作確認環境:RHEL 9.4 / Ubuntu 24.04 LTS / shadow-utils 4.x。
この記事のポイント
・グループパスワードの削除は gpasswd -r でパスワード自体を削除する
・gpasswd -R はパスワード入力でのアクセスを「制限」する設定(削除とは別概念)
・/etc/gshadow の該当グループ行の第2フィールドが ! になれば削除成功
・現代のLinux運用ではsudoersでの権限管理が主流、グループパスワードは非推奨
groupaddコマンドでグループIDを指定してグループを追加する方法|GID管理の実務も
「複数サーバーでGIDを統一して管理したいけど、どうすればいいの?」
Linuxでグループを追加すると、システムが自動的にGID(グループID)を割り当てます。しかし、複数サーバー間でGIDを統一したい場合や、運用ルールでGIDの範囲を決めている場合は、手動でGIDを指定する必要があります。
この記事では、
groupadd コマンドでGIDを指定してグループを追加する方法を解説します。基本的な使い方、-gオプションでのGID指定、/etc/groupでの確認、groupmod・groupdelによるグループ管理まで、実務で使える知識をまとめました。
※ groupaddコマンドの実行にはroot権限が必要です。
・groupaddコマンドとは?
・GIDを指定してグループを追加する
・グループの確認方法
・グループの変更と削除
グループを削除する
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ユーザーのパスワードをロックする
ユーザーを削除せずにログインを一時的に禁止するには、パスワードロックが有効です。usermod -L または passwd -l コマンドで実装できます。
この記事では、Linuxユーザーのパスワードをロックして一時的にログインを禁止する方法を解説します。
・パスワードロックの仕組み
・usermod -L でパスワードをロックする
・passwd -l でパスワードをロックする
・ロック状態の確認方法
特定のローダブルモジュールを表示する
modprobe -l コマンドに引数を指定すると、ワイルドカードで特定のモジュールだけを絞り込んで表示できます。grep とのパイプでも同じ結果を得られます。
この記事では、特定のローダブルモジュールを絞り込んで表示する方法を解説します。
【この記事でわかること】
・modprobe -l に引数を指定するとワイルドカードでモジュールを絞り込める
・grep とのパイプでも同等の結果が得られる(どちらを使っても可)
・ワイルドカードは必ずクォート(引用符)で囲む必要がある
・モジュール名の一部から関連モジュールを一覧する場合に便利
ローダブルモジュールを表示する
ローダブルモジュールとは、カーネルに組み込まれてはいないが、必要に応じてロードできるモジュールのことです。modprobe -l コマンドで一覧を確認できます。
この記事では、modprobe -l コマンドによるローダブルモジュール一覧の表示方法を解説します。
【この記事でわかること】
・modprobe -l でシステムにインストール済みのローダブルモジュール一覧を表示できる
・出力量が多いため more/less コマンドとのパイプ併用が実務での基本
・grep との組み合わせで特定のモジュールを素早く絞り込める
・表示されるモジュールは /lib/modules/カーネルバージョン/ 配下の .ko ファイル
カーネルモジュールの詳細情報を表示する
modinfo コマンドを使うと、指定したカーネルモジュールのファイルパス・ライセンス・依存モジュール・パラメータなど、詳細な情報を確認できます。
この記事では、modinfo コマンドの使い方と出力内容の読み方を解説します。
【この記事でわかること】
・modinfo コマンドで指定モジュールの詳細情報(パス・ライセンス・依存関係等)を表示できる
・-d オプションで概要説明のみを簡潔に表示できる
・-F オプションで特定フィールドのみを取り出すことが可能
・トラブル時のモジュールバージョン確認や依存関係の調査に活用できる
ロードされているカーネルモジュールを表示する
Linuxカーネルは、必要最低限の機能だけを本体に組み込み、デバイスドライバなど追加機能は「モジュール」として動的にロード・アンロードできる設計になっています。
現在どのモジュールが動いているかを確認するのが lsmod コマンドです。
この記事では、lsmod コマンドの使い方と出力内容の読み方を解説します。
【この記事でわかること】
・lsmod コマンドでシステムにロード済みのカーネルモジュール一覧を表示できる
・出力は Module(モジュール名)・Size(サイズ)・Used by(依存関係)の3列構成
・Used by の数字が 0 のモジュールは rmmod でアンロード可能
・実行には root 権限が必要
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でインストール可能
uptimeコマンドでLinuxのシステム稼働時間とロードアベレージを確認する方法
【この記事でわかること】
・uptimeコマンドでシステム稼働時間・ログインユーザー数・ロードアベレージを一度に確認できる・ロードアベレージの3つの数値は直前1分・5分・15分の平均プロセス数を表す
・wコマンドのヘッダー行でもuptimeと同じ情報が確認できる
・ロードアベレージはCPUコア数と比較して高負荷かどうかを判断する
NFSでLinuxサーバー間のディレクトリを共有する方法|/etc/exportsの設定とマウント手順
「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を推奨
LinuxでPerlモジュールを一覧表示する方法|バージョン確認やインストールも
「スクリプトで必要なモジュールが入っているかどうか、手早く調べたい」
Perlベースのアプリケーションやスクリプトを動かす際、必要なモジュールがインストールされているか確認する場面は少なくありません。
この記事では、LinuxにインストールされているPerlモジュールを一覧表示する方法を解説します。
findコマンドでの検索方法、
perldoc や cpan -l を使った確認方法、特定モジュールのバージョン確認まで、現場で使える知識をまとめました。・Perlモジュールの保存場所を確認する
・Perlモジュールを一覧表示する方法
・yum/dnfでインストールしたPerlモジュールを確認する
・Perlモジュールのインストール方法
Linuxのシステムクロック、ハードウェアクロック
Linuxを運用していると、そんな問題に直面することがあります。
Linuxには システムクロック と ハードウェアクロック の2種類があり、それぞれを正しく同期させる必要があります。
この記事では、2つのクロックの違いから、
ntpdate による時刻同期、hwclock でのハードウェアクロック書き込みまで、現場で使える手順を解説します。・システムクロックとハードウェアクロックの違い
・ntpdate でシステムクロックを同期する
・hwclock でハードウェアクロックを同期する
・cron で定期的に時刻同期する
システム終了時に接続ユーザにメッセージを送る|shutdown / wall でブロードキャスト通知する実務テクニック
この記事のポイント
・shutdown -h +時間 "メッセージ" でログイン中の全ユーザにブロードキャストできる
・任意のタイミングで wall コマンドを使えばシャットダウンと切り離して通知できる
・systemd採用ディストロでも shutdown / wall は標準で利用可能
・本番サーバーの停止通知はメッセージ+時間指定の2点をワンライナーで定型化する
業務サーバーや共用開発機を停止するとき、誰かが裏で作業していてセッションごと切ってしまうのは避けたいところです。
この記事では、システム終了時に接続ユーザにメッセージを送る方法を、shutdownコマンドのブロードキャスト機能とwallコマンドの両面から解説します。RHEL 9 / Rocky Linux 9 / Ubuntu 24.04 LTSを想定しています。
続きを読む "システム終了時に接続ユーザにメッセージを送る|shutdown / wall でブロードキャスト通知する実務テクニック"
システムを指定時間後に終了する(shutdown -h +N)
shutdown -h +Nだ。現在時刻からN分後にシャットダウンをスケジュールするコマンドで、接続中のユーザーへの事前通知も自動的に行われる。
shutdown -h HH:MMの時刻指定と合わせて、状況に応じて使い分けることが重要だ。本記事では
shutdown -h +Nの使い方から、メッセージのカスタマイズ、キャンセル方法まで解説する。・shutdown -h +N の基本構文と使い方
・時刻指定(HH:MM)との使い分け
・カスタムメッセージを追加する方法
・スケジュールをキャンセルする方法
システムを指定時間に終了する(shutdown -h HH:MM)
shutdown -h HH:MMを使うと24時間形式で時刻を指定してシャットダウンをスケジュールできる。指定時刻になると自動的にシャットダウン処理が開始され、接続中のユーザーには事前に警告が送られる。本記事では
shutdown -h HH:MMの使い方から、カスタムメッセージの追加、キャンセル方法まで解説する。・shutdown -h HH:MM の基本構文と動作
・時刻指定と分数指定の違い
・接続ユーザーへのメッセージ送信方法
・予約したシャットダウンのキャンセル方法
システムをすぐに終了する(shutdown -h now)
システムを即座に終了する方法はいくつかあるが、
shutdown -h nowが最もよく使われる標準的な方法だ。このコマンドはシャットダウン処理を正しく実行してからシステムを停止するため、データの破損リスクが低い。本記事では
shutdown -h nowを中心に、halt・poweroffとの違い、実務での使い分けを解説する。・shutdown -h now の基本構文と動作の流れ
・halt・poweroff との使い分け
・root 権限が必要な理由
・システム停止系コマンドの一覧と比較
システムを停止する(halt)
haltコマンドはシステムを停止させるコマンドの一つで、実行するとすべての接続ユーザーにシステム停止メッセージが送られ、ランレベル0へ移行してシャットダウン処理が始まる。本記事では
haltコマンドの基本的な動作と、shutdown・poweroffとの違い、実行権限の違いを解説する。・halt コマンドの基本的な動作と手順
・shutdown・poweroff との違い
・root と一般ユーザーの実行権限の違い
・ディストリビューションによる動作の違い
指定時間後にシステムを再起動する(shutdown -r +N)
shutdownコマンドの-rオプションと時間指定を組み合わせると、指定した分数後に自動的に再起動するスケジュールを設定できる。接続中のユーザーに警告メッセージを送りながら安全にシャットダウン処理を進められる点が特徴だ。本記事では
shutdown -r +Nの使い方から、メッセージ送信、キャンセル方法まで解説する。・shutdown -r +N の基本構文と動作
・接続ユーザーへの警告メッセージの送り方
・予約した再起動をキャンセルする方法
・shutdown コマンドの主要オプション一覧
システム起動時に特定のサービスを起動する(chkconfig --add)
chkconfigコマンドを使うと、特定のサービスをシステム起動時に自動起動するよう設定できる。SysVinitベースのCentOS/RHELで使われる方法で、--addオプションでサービスを登録し、onで自動起動を有効にする。本記事では
chkconfigを使ったサービス自動起動の設定手順と、ランレベルを指定した細かい制御方法を解説する。・chkconfig でサービスを自動起動に設定する手順
・--add オプションと on/off の使い分け
・ランレベルを指定した起動設定の方法
・systemd 環境での代替コマンド
ランレベルごとのサービス起動と停止状況を表示する(chkconfig)
chkconfigコマンドを使うと、システム起動時に各サービスがどのランレベルで起動・停止するかを一覧表示できる。古いSysVinitベースのCentOS/RHELでよく使われるコマンドで、起動サービスの管理に欠かせない。本記事では
chkconfig --listの使い方と、出力の読み方、実務での活用法を解説する。・chkconfig --list の基本的な使い方と出力の読み方
・ランレベルの意味と各番号の説明
・特定サービスの起動状況を確認する方法
・systemd 環境との違いと代替コマンド
killallコマンドで使用できるkillシグナルを表示する(killall -l)
実は
killallコマンドのシグナル名はディストリビューションによって異なる場合があり、killコマンドとは仕様が異なることもある。そのためkillall -lで使用可能なシグナル一覧を事前に確認してから使うのが安全だ。本記事では
killall -lの使い方と、killコマンドとの違い、注意点を解説する。・killall -l でシグナル一覧を確認する方法
・killall と kill のシグナル名の違い
・killall でシグナルを指定して実行する方法
・ディストリビューションによる違いへの対処法
killコマンドで使用できるkillシグナルを表示する(kill -l)
killコマンドには多数のシグナルが用意されており、シグナル番号・シグナル名・略称のいずれでも指定できる。kill -lを実行すると、そのシステムで使用可能なシグナルの一覧を確認できる。本記事では
kill -lの使い方と、主要なシグナルの意味・使い分けを解説する。・kill -l コマンドの基本的な使い方
・シグナル番号・シグナル名の確認方法
・主要なシグナルの意味と用途
・シグナル番号・名前・略称の使い分け
Linuxでプロセスをバックグラウンドで実行する方法(nohup・bg・disown)
この問題の根本はLinuxのプロセスとターミナルセッションの関係にある。SSH接続が切れるとHUPシグナルが送られ、セッションに紐付いたプロセスがすべて終了してしまう。
これを防ぐために使うのが
nohup・bg・disownだ。それぞれ仕組みが異なり、状況に応じた使い分けが重要になる。本記事で3つのコマンドの違いと使い方を体系的に整理しよう。・nohup・bg・disown それぞれの仕組みと使い分け
・SSH切断後もプロセスを継続させる方法
・バックグラウンド実行とジョブ管理の基本
・出力のリダイレクト先の管理方法
特定コマンドのプロセスをすべて終了する(killall)
そのような場面で便利なのが
killallコマンドだ。PIDではなくコマンド名を指定することで、そのコマンドが起動しているすべてのプロセスを一度に終了させることができる。本記事では
killallの基本的な使い方から、killコマンドとの違い、実務での活用シーンまでを解説する。・killall の基本構文とコマンド名指定の仕組み
・kill コマンドとの使い分け
・シグナルを指定した強制終了の方法
・killall 使用時の注意点
実行中のプロセスを終了する(kill PID)
Linuxでプロセスを終了する基本コマンドは
killだ。引数としてPID(プロセスID)を指定するだけで、対象プロセスにSIGTERM(終了シグナル)を送り、正常終了を促すことができる。本記事では
kill PIDの基本的な使い方から、PIDの調べ方、注意点まで体系的に解説する。・kill コマンドの基本構文と動作の仕組み
・ps コマンドで PID を調べる手順
・SIGTERM と SIGKILL の違い
・root 権限と一般ユーザーの違い
実行中のプロセスを強調表示してグラフィカルに表示する(pstree -h)
psコマンドは起動中・停止中を問わずすべてのプロセスを一覧するため、実行中のものだけを素早く特定するには不向きな場面がある。そこで役立つのが
pstree -hだ。このオプションを使うと、現在実行中のプロセスがツリー表示の中で強調(ハイライト)され、視覚的に一目でわかるようになる。本記事では
pstree -hの基本的な使い方から、-Gオプションとの組み合わせ、実務での活用シーンまでをわかりやすく解説する。・pstree -h の基本的な動作と表示の見方
・-G オプションと組み合わせたグラフィカル表示の方法
・実行中プロセスを素早く特定するための実務的な活用法
・pstree コマンドの主要オプション一覧
プロセスをツリー状に表示する
このページでは 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コマンドに
オプション「-f」を付けて実行します。
親子関係にあるプロセスは、階層表示されます。
[root@Tiger ~]# ps -axf
PID TTY STAT TIME COMMAND
1 ? Ss 0:00 init [3]
2 ? S< 0:00 [migration/0]
3 ? SN 0:00 [ksoftirqd/0]
4 ? S< 0:00 [watchdog/0]
5 ? S< 0:00 [events/0]
6 ? S< 0:00 [khelper]
7 ? S< 0:00 [kthread]
10 ? S< 0:00 \_ [kblockd/0]
11 ? S< 0:00 \_ [kacpid]
68 ? S< 0:00 \_ [cqueue/0]
71 ? S< 0:00 \_ [khubd]
73 ? S< 0:00 \_ [kseriod]
136 ? S 0:00 \_ [pdflush]
137 ? S 0:00 \_ [pdflush]
138 ? S< 0:00 \_ [kswapd0]
139 ? S< 0:00 \_ [aio/0]
297 ? S< 0:00 \_ [kpsmoused]
321 ? S< 0:00 \_ [ata/0]
322 ? S< 0:00 \_ [ata_aux]
327 ? S< 0:00 \_ [kstriped]
336 ? S< 0:00 \_ [ksnapd]
347 ? S< 0:00 \_ [kjournald]
369 ? S< 0:00 \_ [kauditd]
1001 ? S< 0:00 \_ [kgameportd]
1131 ? S< 0:00 \_ [kmpathd/0]
1132 ? S< 0:00 \_ [kmpath_handlerd]
1154 ? S< 0:00 \_ [kjournald]
1648 ? Ss 0:00 /usr/sbin/sshd
2074 ? Ss 0:00 \_ sshd: pakira [priv]
2076 ? R 0:00 \_ sshd: pakira@pts/0
2077 pts/0 Ss 0:00 \_ -bash
2105 pts/0 S 0:00 \_ su -
2106 pts/0 S 0:00 \_ -bash
2149 pts/0 R+ 0:00 \_ ps -axf
1663 ? Ss 0:00 xinetd -stayalive -pidfile /var/run/xinetd.pid
(省略)
2065 ? S 0:00 \_ /usr/local/apache2/bin/httpd -k start -DSSL
2002 ? S 0:00 /usr/sbin/smartd -q never
2005 tty1 Ss+ 0:00 /sbin/mingetty tty1
2006 tty2 Ss+ 0:00 /sbin/mingetty tty2
2007 tty3 Ss+ 0:00 /sbin/mingetty tty3
2008 tty4 Ss+ 0:00 /sbin/mingetty tty4
2009 tty5 Ss+ 0:00 /sbin/mingetty tty5
2030 tty6 Ss+ 0:00 /sbin/mingetty tty6
※デーモンプロセス(制御端末を持たないプロセス)も表示させるため、
オプション「-x」を付けて実行しています。
デーモンプロセスの表示についてはこちらを確認してください。
■ 表示される情報
PID:プロセスごとに自動的に割り当てられる番号
TTY:プロセスを実行している制御端末
STAT:状態
・第1フィールド
R:実行可能
T:停止中かトレース中
D:休眠中で割り込み不可
S:休眠中
Z:ゾンビ(削除されていないが停止中)
・第2フィールド
W:スワップアウト(常駐ページなし)
・第3フィールド
N:正のナイス値
TIME:CPU消費時間
COMMAND:実行コマンド
psコマンドの詳細はこちら
デーモンプロセスも含めて表示する
このページでは 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行で確認できる
プロンプトの表示を変更するには
<PR>手元に置いて学びを深める1冊
bashプロンプト(PS1変数)の書式や.bashrcへの永続設定など、コマンドラインを体系的に学べる入門書。まず無料メルマガで学ぶのが第一歩、加えて手元に置くなら本書。
Linuxで一時的にスワップ領域を増やす方法|mkswap・swapon・swapoffの手順
「今すぐスワップ領域を増やしたいけど、パーティションの切り直しはダウンタイムが発生するから避けたい...」
サーバー運用の現場でメモリ不足に遭遇したとき、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 必須
システムをすぐに再起動する
「rebootとshutdown -r nowの違いは何か?」
この記事では、Linuxシステムを即時再起動するコマンドを実行例付きで解説します。
reboot・shutdown -r now・systemctl reboot の違いと使い分けも説明します。
・rebootコマンドでLinuxシステムを即時再起動する方法
・shutdown -r now で再起動する方法とrebootコマンドとの違い
・systemctl reboot を使ったsystemd環境での再起動方法
・haltコマンドとの違いと、シャットダウン・再起動の使い分け
