Linuxtips

HOME > Linuxtips

Linuxtips:記事リスト

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

Linuxメール配送をPostfixで動かす最小構成|ローカル配送からテスト送信までの実践手順

「メールサーバーの設定って難しそう」「Postfixって何から始めればいいの?」
そう感じているLinuxエンジニアは多いです。

Postfixは設定ファイルの構成がシンプルで、最小構成であれば30分かからずに動かせます。ポイントを押さえれば、初めてでも迷わずに進めることができます。

この記事では、Rocky Linux 9(RHEL 9互換)を使ったPostfixの最小構成を解説します。「ローカル配送でメールを受け取る」「mailコマンドでテスト送信する」という2ステップを動かしながら、main.cfの重要パラメーターと動作確認方法を順を追って説明します。

この記事のポイント

・Postfixの最小構成はmain.cfの5パラメーターを設定するだけで動く
・ローカル配送は外部ネットワーク不要。サーバー内でメールを完結できる
・mailコマンド+/var/log/maillogの確認でエラーをすぐ特定できる
・本番化する前にfirewalld(25/tcp)とSELinuxの設定も必ず確認する

続きを読む "Linuxメール配送をPostfixで動かす最小構成|ローカル配送からテスト送信までの実践手順"

Linuxサーバーのシステム情報をまとめて把握する方法|hostnamectl・lscpu・uname -aを一画面で確認

「サーバーのCPU数は何コアだっけ?」「OSバージョンを確認するコマンドどれだったかな?」
インフラ作業の現場でこんな場面は日常茶飯事です。Linuxにはシステム情報を確認するコマンドがいくつもあり、コマンドによって得られる情報の粒度や形式が異なります。

この記事では、Linuxサーバーのシステム情報を素早く把握するための主要コマンド(hostnamectllscpuuname -afreedmidecodeなど)をまとめて解説します。RHEL 9.4 / Rocky Linux 9.4 / Ubuntu 24.04 LTSで動作確認済みです。

この記事のポイント

・hostnamectl でOS種別・カーネル・ホスト名を一度に確認できる
・lscpu でCPUコア数・スレッド数・アーキテクチャを素早く把握できる
・uname -a でカーネルバージョンを確認し、patch適用前後の状態管理に使える
・free -h・dmidecode でメモリ実装状況を物理スロット単位まで把握できる

続きを読む "Linuxサーバーのシステム情報をまとめて把握する方法|hostnamectl・lscpu・uname -aを一画面で確認"

Linuxでファイル一覧を作業証跡として残す方法|tree・lsの出力をテキスト保存する手順

「作業前後のディレクトリ構造をどこかに残しておきたい」「変更した箇所をあとで確認したい」
そんな場面、Linuxの現場ではよくある話です。

ログや設定ファイルは残しても、「どんなファイルがあったか」という証跡は意外と取り忘れます。
再現できない、説明できない、確認できない。あとで困るのは自分です。

この記事では、tree コマンドと ls コマンドを使ってディレクトリ構造・ファイル一覧をテキストファイルとして保存する方法を解説します。
コマンドの出力をリダイレクトでファイルに書き込む基本から、日時付きファイル名での自動保存まで、実務で即使えるパターンを網羅します。

この記事のポイント

・tree コマンドでディレクトリ構造を階層表示しテキスト保存できる
・ls -laR でサブディレクトリも含む全ファイル一覧を出力できる
・リダイレクトとdateコマンドを組み合わせて日時付きログが作れる
・作業前後の証跡をdiffで比較すると変更点を即座に特定できる

続きを読む "Linuxでファイル一覧を作業証跡として残す方法|tree・lsの出力をテキスト保存する手順"

Linuxでファイルパス一覧から各ファイルを別フォルダへ一括移動する方法|while readループの実践

「パス一覧が書かれたファイルがあるんだけど、ここに書かれた全ファイルを別のフォルダにまとめて移動したい。どうすれば一番スッキリ書けるだろう?」
現場でこういう作業は珍しくありません。バックアップ対象のパス一覧、移行対象ファイルのリスト、ログ整理の候補ファイル一覧……テキストファイルに書き出されたフルパスを読み込んで一括処理したい場面は意外と多いものです。

この記事では、while readループを使ってパス一覧から各ファイルを別フォルダへ一括移動する方法を実践的に解説します。
基本形から始まり、移動先フォルダの自動作成・コピー版・エラースキップまで、現場で使える応用例も網羅します。

この記事のポイント

・while read line; do mv "$line" 移動先; done < ファイル一覧が基本形
・IFS= read -r line で行頭・行末スペースとバックスラッシュを安全に扱える
・mkdir -p "$(dirname ...)" でフォルダ自動作成しながら移動できる
・移動失敗時は || echo で続行させてログに残すのが現場の鉄則

続きを読む "Linuxでファイルパス一覧から各ファイルを別フォルダへ一括移動する方法|while readループの実践"

Linuxでcronが実行されない時の調査手順|ログ・環境変数・権限の3点を切り分ける

「手動で実行すると動くのに、crontabに登録すると動かない」

cronのトラブルは、原因が3つのパターンにほぼ絞られます。ログの確認、環境変数の設定、実行権限の確認です。この3点を順番に切り分ければ、大半の問題は30分以内に解決できます。

この記事では、cronが実行されない時の原因切り分け手順を、実際のログ出力例を交えながら解説します。RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済みです。

この記事のポイント

・cronのログを journalctl -u crond で即座に確認する
・「手動でOK・cronでNG」はほぼ PATH 未設定が原因
・実行権限(chmod +x)と行末の改行コードも必ず確認
・/var/log/cron が空なら crond 自体が停止していないか確認する

続きを読む "Linuxでcronが実行されない時の調査手順|ログ・環境変数・権限の3点を切り分ける"

Linuxでディスクが容量不足になった時の対処手順|原因ファイルの特定から安全な削除まで

「df -hコマンドを実行したら Use% が 100% になっていた」「ディスクが満杯でサービスが止まった」——こんな経験、Linuxサーバーを運用していれば必ず一度は遭遇します。
容量不足はパニックになりがちですが、手順を知っていれば冷静に対処できます。

この記事では、Linuxでディスク容量が不足した時の対処フロー(原因ファイルの特定から安全な削除まで)を体系的に解説します。
dfコマンドで状況を確認してから、duコマンドで原因を特定し、安全にディスクを空ける具体的な手順まで、ステップごとに説明します。

この記事のポイント

・dfコマンドで「どのパーティションが満杯か」を最初に把握する
・duコマンドで「容量を食っているディレクトリ」を絞り込む
・ログ・コアダンプ・古いバックアップが原因の大多数を占める
・削除前に必ずファイルの用途を確認してから実施する

続きを読む "Linuxでディスクが容量不足になった時の対処手順|原因ファイルの特定から安全な削除まで"

NTPサーバーをLinuxで構築する方法|chronyでの時刻同期サーバー設定と動作確認の手順

「自社のLinuxサーバーで時刻がズレる」「社内の複数サーバーの時刻を統一したい」
こう思ったとき、真っ先に浮かぶのが「NTPサーバーを自前で立てる」という選択肢です。

時刻がズレたままのサーバーは、ログの前後関係がわからなくなったり、SSLの証明書エラーを引き起こしたり、cronの実行タイミングがずれたりと、地味ですが深刻な問題の温床になります。

この記事では、RHEL 9.4 / Rocky Linux 9 / AlmaLinux 9で動作確認した、chronydを使った自前NTPサーバーの構築手順をゼロから解説します。クライアント設定・ファイアウォール開放・chroncyコマンドでの動作確認まで、一通りカバーしています。

この記事のポイント

・chronyd(chrony)はRHEL9/Rocky/AlmaLinux系の現行NTP標準デーモン
・allowディレクティブでサブネットを許可するとNTPサーバーとして機能する
・firewalld で 123/udp を開放しないとクライアントから到達しない
・chronyc sources -v でクライアント側の同期状況を確認できる

続きを読む "NTPサーバーをLinuxで構築する方法|chronyでの時刻同期サーバー設定と動作確認の手順"

Linuxの/dev/null 2>&1 とリダイレクトの意味|標準出力・標準エラーを捨てる仕組みを徹底解説

「cronで実行したコマンドが何も出力されない」「シェルスクリプトのエラーが画面に出てほしくない」
こんな場面でよく登場するのが /dev/null 2>&1 という記述です。
コピペで使えてはいるけれど、「なぜこう書くのか」「順番を変えたら何が起きるか」を説明できる人は意外と少ない。

この記事では、/dev/null 2>&1 の仕組み を、ファイルディスクリプタ(FD番号)と評価順序から丁寧に解説します。
cron やシェルスクリプトでの実用例、混同しやすい &>2>/dev/null との違いも合わせてカバーします。

なお、リダイレクト全般( > >> < 2> など)の基本については Linux 基本コマンドの解説 も参照してください。

この記事のポイント

・/dev/null は入力を全て捨てる「ブラックホール」デバイスファイル
・2>&1 は「標準エラー(FD2)を標準出力(FD1)の向き先へ合流させる」という意味
・> /dev/null 2>&1 と 2>&1 > /dev/null は評価順が違い結果が異なる
・cron では出力を全捨てするか、エラーだけ残すかを明示的に書くのがベスト

続きを読む "Linuxの/dev/null 2>&1 とリダイレクトの意味|標準出力・標準エラーを捨てる仕組みを徹底解説"

virshコマンドでKVM仮想マシンを管理する方法|起動・停止・スナップショット・移行の実践例

「KVMで仮想マシンを立てたはいいけど、virshコマンドの操作がよくわからない」
「GUIのVirt-Managerは使えるが、SSHしか繋がらないサーバーでの操作方法を知りたい」

Linuxサーバーで仮想化環境を運用するとき、virshコマンドは欠かせないツールです。
GUIなしのサーバーでも、virshさえ使えれば仮想マシンの起動・停止・設定変更・スナップショット取得までひと通りの操作が完結します。

この記事では、virshコマンドの基本操作から、実務でよく使うスナップショット管理・クローン・移行手順までを体系的に解説します。
動作確認環境はRHEL 9.4 / Rocky Linux 9.3です。

この記事のポイント

・virsh list --all でVM一覧を確認し、start/shutdownで起動・停止できる
・virsh snapshot-create-as でスナップショットを取得し、失敗時に即リストアできる
・virsh dumpxml/edit でXML定義を直接編集してCPU・メモリ・ディスクを変更できる
・virt-clone でVMをクローンし、新規VM構築の時間を大幅に短縮できる

続きを読む "virshコマンドでKVM仮想マシンを管理する方法|起動・停止・スナップショット・移行の実践例"

rsyslog.confの設定ガイド|ログ転送・フィルタリング・テンプレートの実践例

「サーバーのログをもっと細かく制御したいのに、rsyslog.confの書き方がよくわからない。」
「ログを別サーバーに転送する設定をしたいが、どこに何を書けばいいのか。」

Linuxのログ管理を担うrsyslogは、設定ファイル rsyslog.conf の書き方を知っているかどうかで、運用効率が大きく変わります。
この記事では、rsyslog.conf の基本構造から、ログ転送・フィルタリング・テンプレートの実践的な設定例まで体系的に解説します。RHEL 9 / AlmaLinux 9 / Ubuntu 24.04 LTSで動作確認済みです。

この記事のポイント

・ rsyslog.conf はファシリティ.プライオリティ+アクションの組み合わせで書く
・ @@サーバーIPでTCP転送、@サーバーIPでUDP転送を切り替えられる
・ filterとtemplateでログの整形・選別・個別ファイル保存が可能
・ トラブル時は rsyslogd -N1 で設定ファイルの構文エラーを検出できる

続きを読む "rsyslog.confの設定ガイド|ログ転送・フィルタリング・テンプレートの実践例"

renameコマンドでファイル名を一括変更する方法|正規表現・連番・拡張子変更の実践例

「大量のファイルの拡張子をまとめて変えたいのに、mvでは1つずつしか変えられない」
こんな場面で手が止まってしまった経験はありませんか。100個のファイル名を1つずつ打ち直すのは現実的ではありません。

この記事では、ファイル名を一括変更できる rename コマンドの実践的な使い方を解説します。基本的な置換から、正規表現を使った複雑なリネーム、連番付与、拡張子の一括変更、そして実行前の安全確認まで、現場でそのまま使えるパターンを網羅します。

この記事のポイント

・rename には Perl版とutil-linux版の2系統があり書式が違う
・rename -n で実行前に変更内容を必ずプレビューできる
・rename 's/旧/新/' *.txt で正規表現による一括置換ができる
・拡張子変更・小文字化・連番付与も1コマンドで完結する

続きを読む "renameコマンドでファイル名を一括変更する方法|正規表現・連番・拡張子変更の実践例"

haproxyコマンドの使い方|Linuxでロードバランサーを構築する方法と設定例

「Webアプリの負荷が一台のサーバーに集中して、アクセスが増えるたびに応答が遅くなる」
「複数台のバックエンドサーバーに均等にリクエストを振り分けたいが、HAProxyの設定が複雑でどこから手をつければいいかわからない」

こういった悩みを持つサーバー管理者は少なくありません。HAProxyはLinuxで最もよく使われるオープンソースのロードバランサー・プロキシサーバーです。設定ファイルのシンタックスが独特なため最初は戸惑いますが、構造を理解すると非常に柔軟な制御が可能になります。

この記事では、HAProxyのインストールから基本設定、HTTPロードバランサー構成、ヘルスチェック、SSL/TLS終端まで、実際のサーバーで動作確認した手順を解説します。RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済みです。

この記事のポイント

・HAProxyは haproxy -c -f で設定ファイルの構文チェックができる
・frontend/backend の分離構成がHAProxy設定の基本パターン
・balance ラウンドロビン/leastconn でバランシングアルゴリズムを切り替える
・stats enable でブラウザから接続状況・死活をリアルタイム確認できる

続きを読む "haproxyコマンドの使い方|Linuxでロードバランサーを構築する方法と設定例"

chronyc・chronyコマンドでLinuxの時刻同期を管理する方法|offset確認・トラブルシュートまで

Linuxサーバーの時刻がズレていることに気づかず、ログの突合わせができなかったり、SSL証明書の検証エラーが出たりと、思わぬトラブルに陥ったことはないでしょうか。
時刻のズレはサーバー運用における「静かな障害」で、放置するとシステム全体の信頼性に影響します。

この記事では、現代Linuxにおける時刻同期デーモン chronyd の設定と、その管理コマンドである chronyc の実践的な使い方を解説します。
インストールから設定ファイルの読み方、オフセット確認、トラブルシュートまで、RHEL 9.4 / AlmaLinux 9.4 / Ubuntu 24.04 LTS で動作確認した手順を紹介します。

この記事のポイント

・chronyc tracking でサーバーの時刻オフセットをリアルタイム確認できる
・/etc/chrony.conf の pool 行で NTP サーバーを指定し、systemctl で反映させる
・chronyc sources -v で各 NTP ソースの状態と選択状況を一覧表示できる
・「Cannot talk to daemon」は chronyd 未起動が原因で systemctl start で解決できる

続きを読む "chronyc・chronyコマンドでLinuxの時刻同期を管理する方法|offset確認・トラブルシュートまで"

bashの配列(Array)の使い方|宣言・追加・ループ・連想配列の実践例

「シェルスクリプトで複数のサーバー名や設定値をまとめて扱いたいのに、毎回変数を個別に定義するのが面倒だ」
そんな悩みを抱えながら、変数1個ずつを地道に書き続けていませんか。

この記事では、bashの配列(Array)の宣言・要素の追加・ループ処理・連想配列(Associative Array)まで、実務で使える形で一通り解説します。
RHEL 9.4 / Ubuntu 24.04 LTS のbash 5系で動作確認済みの手順です。配列をマスターすると、複数ホストへの一括処理やバックアップスクリプトの記述がぐっとシンプルになります。

この記事のポイント

・bash配列は `arr=(a b c)` で宣言し、`${arr[0]}` でインデックス参照できる
・`${arr[@]}` で全要素展開、`${#arr[@]}` で要素数の取得が可能
・連想配列は `declare -A` で宣言し、キーと値のペアで管理できる
・for文との組み合わせでサーバー一括処理・ファイル操作の自動化に直結する

続きを読む "bashの配列(Array)の使い方|宣言・追加・ループ・連想配列の実践例"

sshfsコマンドでリモートサーバーをローカルにマウントする方法|インストールから自動マウントまで

「リモートサーバーのファイルをローカルで直接編集できたら、もっと効率が上がるのに」
SSH接続した先のファイルをScpで毎回コピーしたり、viで直接編集したりするのは手間がかかります。

この記事では、sshfsコマンドを使ってリモートサーバーのファイルシステムをローカルにマウントする方法を解説します。
RHEL 9.4 / Ubuntu 24.04 LTS で動作確認済みの手順で、インストールから日常的な活用例、アンマウント、トラブルシュートまで一気に説明します。

この記事のポイント

・sshfsコマンドでリモートのディレクトリをローカルに透過マウントできる
・インストールはfuse3パッケージ1本で完了、root権限なしで使える
・/etc/fstabやsystemd.mountで起動時自動マウントも設定可能
・アンマウントはfusermount3 -u、Connection reset by peerはSSHキー再確認

続きを読む "sshfsコマンドでリモートサーバーをローカルにマウントする方法|インストールから自動マウントまで"

keepalivedコマンドでLinuxサーバーを冗長化する方法|VRRP設定・仮想IP・フェイルオーバーの実践例

TITLE: keepalivedでLinuxサーバーを冗長化する方法|VRRP設定・仮想IP・フェイルオーバーの実践例 BASENAME: keepalived-vrrp-linux CATEGORY: Linuxサーバー構築(Rocky Linux/RHEL9) TAGS: keepalived,VRRP,冗長化,高可用性,フェイルオーバー,仮想IP,Linux,RHEL9,Rocky Linux 「Webサーバーをもう1台追加したのに、片方が落ちたら結局サービス停止になってしまった」
「keepalivedという言葉は聞いたことがあるけど、設定ファイルの書き方が全然わからない」

こうした悩みを持つサーバー管理者は少なくありません。Linuxサーバーを2台以上並べて冗長構成にするとき、キーになるのが keepalived です。

この記事では、keepalived の仕組みから設定ファイルの書き方、フェイルオーバーの動作確認まで、RHEL 9.4 / Rocky Linux 9.4 で実際に動作させた手順をもとに解説します。

この記事のポイント

・keepalivedはVRRPプロトコルで仮想IPを管理し、Masterが落ちると自動でBackupが引き継ぐ
・設定は /etc/keepalived/keepalived.conf の vrrp_instance ブロックを書くだけで始められる
・フェイルオーバー後も仮想IP宛ての通信はそのまま継続し、クライアント側の設定変更は不要
・track_script でヘルスチェックを加えると Webサービス異常時にも切り替わる

続きを読む "keepalivedコマンドでLinuxサーバーを冗長化する方法|VRRP設定・仮想IP・フェイルオーバーの実践例"

LinuxでNFSサーバーを構築する方法|exports設定・showmount・マウント手順と実践例

「ファイルサーバーをLinuxで立てたいが、NFSの設定ファイルをどう書けばいいか分からない」
「showmountで確認しようとしたらエラーが返ってくる」

Linux環境のファイル共有手段として、NFSは今もサーバー間でよく使われるプロトコルです。SambaほどWindowsとの相互運用性はありませんが、Linux同士であれば設定がシンプルで、性能面でも扱いやすいのが特徴です。

この記事では、RHEL 9 / Rocky Linux 9 / AlmaLinux 9 を対象に、NFSサーバーの構築・設定から、クライアント側のマウント手順、よくあるトラブルの対処まで、一通りの流れを解説します。

この記事のポイント

・NFSサーバーは nfs-utils インストール後、/etc/exports を書いて nfs-server を起動する
・/etc/exports の書式は「ディレクトリ クライアント(オプション)」の形式が基本
・firewalld でポートを開放し、exportfs -r でエクスポートを反映する
・クライアント側は mount -t nfs または /etc/fstab で永続マウントが可能

続きを読む "LinuxでNFSサーバーを構築する方法|exports設定・showmount・マウント手順と実践例"

mysqldumpコマンドでMySQLデータベースをバックアップする方法|フルバックアップから特定テーブル・リストアまで

「MySQLのバックアップって、どうやればいいんだろう」
「mysqldumpを実行したが、本当にリストアできるのか不安だ」

サーバー管理を始めると、必ずぶつかるのがデータベースのバックアップ設計です。ファイルのバックアップと違い、DBはエンジンのファイルをそのままコピーするだけでは壊れるリスクがあります。

この記事では、mysqldump コマンドの実践的な使い方を解説します。
フルバックアップの取り方、特定テーブルだけのダンプ、圧縮・自動化・リストアの手順まで、RHEL 9.4 / Ubuntu 24.04 LTS で動作確認した内容をもとに説明します。

この記事のポイント

・mysqldump は MySQL/MariaDB 標準のダンプツールで追加インストール不要
・フルバックアップには --single-transaction と --events オプションが安全
・リストアは mysql コマンドでリダイレクト入力するだけでできる
・cronと圧縮を組み合わせた自動バックアップが実務の基本形

続きを読む "mysqldumpコマンドでMySQLデータベースをバックアップする方法|フルバックアップから特定テーブル・リストアまで"

ansible-playbookコマンドの使い方|インベントリ・playbook作成からLinuxサーバー自動化の実践例まで

「サーバーに同じ設定を何台も手作業で適用している」「設定漏れがあとから発覚して障害になった」——こういった経験をしたことがある管理者は少なくありません。
台数が増えるほど手作業は限界になり、冪等性のない手順書はいつか破綻します。

この記事では、Linuxサーバーの構成管理・自動化ツールとして実務で広く使われている ansible-playbook コマンド の使い方を解説します。
インベントリの書き方から playbook の基本構文、変数・ハンドラー・ロールの使い方、トラブルシュートまで、実務で使える形でまとめています。

動作確認環境:RHEL 9.4 / AlmaLinux 9.4 / Ubuntu 24.04 LTS(Ansible 2.16)

この記事のポイント

・ansible-playbook はYAML形式のplaybookでサーバーを冪等に自動設定できる
・インベントリにホスト一覧を定義してから playbook で操作対象を指定する
・--check でドライラン、-v/-vvv でデバッグと本番適用前確認が基本手順
・ハンドラーで「変更があった時だけ再起動」を安全に制御できる

続きを読む "ansible-playbookコマンドの使い方|インベントリ・playbook作成からLinuxサーバー自動化の実践例まで"

pkillコマンドとpgrepコマンドでプロセスを名前で操作する方法|kill・psの代替と実践例

「プロセスを止めたいのにPIDがわからない」「ps aux | grep | grep -v grep をいつも使っているが、もっとスマートな方法はないか」——Linuxを使い始めたばかりのころ、こういった悩みは誰しも一度は経験するはずです。

そこで役立つのが pgrep コマンドと pkill コマンドです。プロセス名やユーザー名を指定するだけでPIDを調べたり、シグナルを送ったりできるため、現場でも頻繁に使われます。

この記事では、pgrep・pkillコマンドの基本から、killやpsとの使い分け、実務でよく使うオプションとトラブルシュートまでを体系的に解説します。RHEL 9 / Rocky Linux 9 / Ubuntu 24.04 LTS で動作確認済みです。

この記事のポイント

・pgrep でプロセス名からPIDを素早く取得できる
・pkill でPIDを調べずに名前だけでプロセスを停止できる
・-u オプションでユーザー単位の絞り込みが可能
・誤停止を防ぐため pkill 前に必ず pgrep で対象を確認する

続きを読む "pkillコマンドとpgrepコマンドでプロセスを名前で操作する方法|kill・psの代替と実践例"

podmanコマンドの使い方|DockerからPodmanへの移行方法とRHEL9対応の実践例

「Dockerは使えるが、RHEL9ではDockerが非推奨になった。Podmanに移行したいが、コマンドの違いや設定方法がわからない」
そんな悩みを抱えるサーバー管理者は多い。

RedHat Enterprise Linux 8以降、Dockerはデフォルトリポジトリから削除され、代わりにPodmanが標準のコンテナランタイムとして採用された。
RHEL9・Rocky Linux 9・AlmaLinux 9を使う現場では、Podmanの習得はもはや必須スキルになっている。

この記事では、podmanコマンドの基本的な使い方から、Dockerとの違い、移行手順、rootlessコンテナの設定まで実践的に解説する。
動作確認環境:RHEL 9.4 / Rocky Linux 9.4 / Ubuntu 24.04 LTS

この記事のポイント

・podmanコマンドはDockerと同じ構文で使えるため移行コストが低い
・rootlessモードでデーモンレス動作するためセキュリティリスクが小さい
・docker→podmanのエイリアス設定でスクリプト移行を最小化できる
・podman-composeでdocker-compose.ymlをそのまま流用できる

続きを読む "podmanコマンドの使い方|DockerからPodmanへの移行方法とRHEL9対応の実践例"

bashのヒアドキュメント(here document)の使い方|設定ファイル生成・コマンド入力・インデントの実践例

「設定ファイルをcatで上書きしたいけど、複数行の文字列をどう扱えばいいんだろう」
「スクリプトの中でコマンドに複数行の入力を渡したい」

こうした場面で使うのがbashのヒアドキュメント(here document)です。
echo を何十行も並べる必要はありません。<< 演算子を使えば、複数行のテキストをそのまま扱えます。

この記事では、ヒアドキュメントの基本構文から、設定ファイルの生成・シェルスクリプト内でのコマンド入力・インデント制御まで、現場で即使える実践的な使い方を解説します。RHEL 9.4 / Ubuntu 24.04 LTS で動作確認済みです。

この記事のポイント

<<EOF で複数行テキストをそのままコマンドに渡せる
<<'EOF'(シングルクォート)で変数展開を抑止できる
<<-EOF でインデントのタブを自動除去できる
・設定ファイル生成・mysql入力・ssh越し実行の3パターンが定番

続きを読む "bashのヒアドキュメント(here document)の使い方|設定ファイル生成・コマンド入力・インデントの実践例"

iperf3コマンドでLinuxのネットワーク帯域幅を測定する方法|サーバー間のスループット確認と実践例も

「サーバー間のネットワークが遅い気がするけど、実際にどれくらいの速度が出ているのか分からない」
Linuxの現場で、こういった疑問は思いのほかよく出てきます。特にクラウド環境や複数拠点をまたぐ構成では、「ネットワークが原因なのか、アプリが原因なのか」の切り分けが難しいことが多い。

この記事では、Linuxサーバー間のネットワーク帯域幅を実測できる iperf3 コマンドの使い方を解説します。インストール手順から基本的なサーバー/クライアント構成、UDPテスト・並列ストリーム・双方向テストといった実務で役立つオプションまで、RHEL 9.4 / Ubuntu 24.04 LTS の両環境で動作確認済みの手順でご紹介します。

この記事のポイント

・iperf3 は1コマンドでTCP/UDP帯域幅をサーバー間で実測できる
・サーバー側で iperf3 -s、クライアント側で iperf3 -c を実行する
・-P オプションで並列ストリームを使うと実効スループットに近い値が得られる
・firewalld / UFW のポート開放を忘れると接続できないので注意

続きを読む "iperf3コマンドでLinuxのネットワーク帯域幅を測定する方法|サーバー間のスループット確認と実践例も"

gitコマンドの使い方入門|init・clone・commit・pushの基本とLinuxサーバーでの実践例

「gitって名前は知っているけど、コマンドの使い方がよくわからない」
「git commit や git push の違いが頭の中でごっちゃになっている」

Linuxサーバーを扱う現場では、設定ファイルやスクリプトのバージョン管理にgitを使うケースが当たり前になっています。コンテナ・IaCツール(Ansible、Terraform)との連携でも、gitの操作は避けて通れません。

この記事では、Linuxサーバー上でgitコマンドを初めて使う方に向けて、インストールと初期設定からcommit・push・branchの基本操作、よくあるエラーの対処法まで体系的に解説します。RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済みです。

この記事のポイント

・git init でローカルリポジトリを作成し、git add → git commit の流れで変更を記録する
・git clone でリモートリポジトリをサーバーへ取得し、git push で変更を反映する
・ブランチを使うことで本番環境への影響なく設定変更をテストできる
・.gitconfigの初期設定(user.name・user.email・core.editor)は最初に済ませる

続きを読む "gitコマンドの使い方入門|init・clone・commit・pushの基本とLinuxサーバーでの実践例"

bashのfor文・while文・until文の使い方|ループ処理の基本から実践例まで

「シェルスクリプトでファイルを一括処理したいが、ループの書き方がよくわからない」
「for文とwhile文の使い分けが曖昧なまま、なんとなくコピペして使っている」

こう感じたことがある方は多いはずです。ループ処理はシェルスクリプトの核心部分であり、ここを押さえるだけで自動化できる作業の幅が一気に広がります。

この記事では、bashのfor文・while文・until文の書き方を基礎から解説します。単純な繰り返しから、ファイル一括処理・カウンタループ・break/continueによる制御まで、現場で実際に使えるパターンを中心に紹介します。

この記事のポイント

・for文はリストの各要素を順番に処理する基本ループ
・while文は「条件が真の間」繰り返す。ファイルの行読み込みに最適
・until文は「条件が偽の間」繰り返す。ポーリング処理に便利
・break/continueで途中スキップ・終了ができる

続きを読む "bashのfor文・while文・until文の使い方|ループ処理の基本から実践例まで"

bashのif文とtest条件式の使い方|ファイル・文字列・数値の比較から実践例まで

「シェルスクリプトでif文を書いたら、思ったように動かない」
「test条件式の書き方がいくつかあって、どれを使えばいいのか分からない」

bashのif文はシェルスクリプトの中で最も使用頻度が高い構文のひとつです。ファイルの存在確認、文字列の比較、数値の大小判定など、スクリプトの自動化ロジックはほぼすべてif文で成り立っています。ところが、testコマンドや[ ]、[[ ]]など複数の書き方があり、初めて学ぶ人が混乱しやすいポイントでもあります。

この記事では、bashのif文とtest条件式の基本から、ファイル操作・文字列・数値・コマンドの終了ステータスを使った実践的な比較パターンまで体系的に解説します。RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済みです。

この記事のポイント

・ bashのif文はtest/[ ]/[[ ]]の3種類があり、用途で使い分ける
・ ファイル確認は-eや-fなど単項演算子、文字列比較は= と!=が基本
・ 数値比較は-eq・-lt・-gtなどtestコマンド専用の演算子を使う
・ 実務では終了ステータス($?)の活用とelifによる多岐分岐が重要

続きを読む "bashのif文とtest条件式の使い方|ファイル・文字列・数値の比較から実践例まで"

ncコマンドでLinuxの簡易ファイル転送・チャットを行う方法|listen・connect実例

「ファイルを別のサーバーへ転送したいけど、SCPは設定が面倒だし、FTPはインストールしていない」
「ちょっと動作確認したいだけなのに、わざわざアプリケーションを立ち上げる必要がある?」

こういった場面で役立つのが nc(netcat)コマンドです。
ncコマンドはTCP/UDPソケットを直接操作できるツールで、ファイル転送・ポートスキャン・簡易チャット・ポートフォワーディングなど、ネットワーク診断の「万能ナイフ」とも呼ばれます。

この記事では、nc の基本概念から、サーバー側(listen)とクライアント側(connect)の実例、ファイル転送・チャット・ポートフォワーディングの実践的な使い方を解説します。
ncatとの違い、セキュリティ上の注意点まで、現場で即使える内容をまとめました。

この記事のポイント

・nc -l ポート番号 でサーバー側がリッスン状態になる
・nc ホスト ポート でクライアントが接続しTCP通信を確立できる
・パイプと組み合わせるだけでファイル転送・チャットが実現できる
・本番環境での常用は避け、一時的な診断ツールとして使うのが鉄則

続きを読む "ncコマンドでLinuxの簡易ファイル転送・チャットを行う方法|listen・connect実例"

atコマンドでLinuxのワンショットジョブを実行する方法|crontabとの使い分けと実践例

「バッチ処理を1回だけ深夜に走らせたいのに、crontabに書くのは大げさだし、実行後に消し忘れそうで怖い」
そんな場面に刺さるのが at コマンドです。

at は「指定した時刻に1回だけコマンドを実行する」ためのジョブスケジューラーです。crontab のように繰り返し実行する設定は不要で、実行が終わればジョブは自動的に消えます。

この記事では、at コマンドの基本的な使い方から、ジョブの確認・削除、crontab・systemd timer との使い分けまでを RHEL 9.4 / Ubuntu 24.04 LTS で動作確認した内容をもとに解説します。

この記事のポイント

・at コマンドは「1回だけ・指定時刻に」ジョブを実行するワンショットスケジューラー
・at -l(atq)でキュー確認、atrm でジョブ削除ができる
・crontab は繰り返し実行、at はワンショット、systemd timer は高機能な1回実行に使い分ける
・atd サービスが起動していないと at は動かない——まず systemctl status atd で確認する

続きを読む "atコマンドでLinuxのワンショットジョブを実行する方法|crontabとの使い分けと実践例"

systemd timerでcronジョブを置き換える方法|.timerユニットの作り方と実践例

「毎日深夜にバックアップスクリプトを動かしたいのに、cronの書き方が複雑でミスしてしまう」
「crontab -e で設定したのに、なぜかジョブが動いていない。ログの見方もよくわからない」

こういった悩みを持つエンジニアは多いはずです。cronは歴史ある定番ツールですが、環境変数の引き継ぎや実行ログの管理が独特で、トラブルのたびに原因究明に手間がかかります。

この記事では、systemd timer を使ってcronジョブをモダンな方法で置き換える手順を解説します。.serviceファイルと.timerファイルの書き方から、systemctlによる管理・ログ確認まで、実際のサーバー環境で使える実践例を交えて丁寧に説明します。

この記事のポイント

・systemd timerは.serviceと.timerの2ファイルで定義する
・journalctlでジョブの実行ログをcronより簡単に追跡できる
・OnCalendar=で柔軟な時刻指定が可能(週次・月次も簡単)
・AccuracySec=で実行タイミングの精度をコントロールできる

続きを読む "systemd timerでcronジョブを置き換える方法|.timerユニットの作り方と実践例"

basenameとdirnameコマンドでパスからファイル名・ディレクトリ名を取得する方法|シェルスクリプト実践活用も

「シェルスクリプトでファイルパスからファイル名だけ取り出したい」
「ディレクトリ部分だけを変数に入れて処理したいが、sedやawkでのパス加工は複雑すぎる」
サーバー運用の現場でシェルスクリプトを書いていると、フルパスからファイル名や親ディレクトリを取り出す操作は日常茶飯事です。そのたびに正規表現を書いていては効率が悪く、バグの温床にもなります。

この記事では、basename(ベースネーム)dirname(ダーネーム) コマンドの実践的な使い方を解説します。
基本的なパス分解から、拡張子の除去、for ループや find との組み合わせ、スクリプト内での自己パス取得まで、20年以上Linuxサーバーを運用してきた経験から、現場で実際に使えるパターンをまとめました。

動作確認環境:RHEL 9.4 / Ubuntu 24.04 LTS

この記事のポイント

・basename はパスの最後の要素(ファイル名)を取り出す
・dirname はパスのディレクトリ部分を取り出す
・basename に拡張子を指定すると拡張子なしのファイル名を得られる
・スクリプト内の自己パス取得には dirname "$0" が定番

続きを読む "basenameとdirnameコマンドでパスからファイル名・ディレクトリ名を取得する方法|シェルスクリプト実践活用も"

dockerコマンドの使い方|コンテナ起動・停止・イメージ管理の実践例

「Dockerを使ってみたいけど、どこから手をつけたらいいかわからない」
「コンテナを起動したはいいけど、止め方や削除の方法がよくわからない」

Linuxサーバーを触り始めてしばらく経つと、必ずDockerに出会います。
開発環境の構築、アプリのデプロイ、CI/CDの整備——現場のあらゆる場面でDockerが使われるようになっています。

この記事では、Dockerコマンドの実践的な使い方を、RHEL 9.4 / Ubuntu 24.04 LTSでの動作確認済みの手順で解説します。
インストールから、イメージの取得・コンテナの起動・停止・削除・内部操作まで、現場でよく使う操作を一通りカバーします。

この記事のポイント

・docker run でコンテナを起動、docker stop/rm で停止・削除できる
・docker ps -a で起動中・停止中の全コンテナを一覧表示できる
・docker exec -it でコンテナ内部に入りコマンド実行が可能
・不要なイメージ・コンテナの一括削除には docker system prune を使う

続きを読む "dockerコマンドの使い方|コンテナ起動・停止・イメージ管理の実践例"

~/.ssh/configの書き方完全ガイド|Host設定・ProxyJump・IdentityFileで接続を効率化する

「毎回 ssh -i ~/.ssh/id_rsa_server1 -p 2222 user@192.168.10.5 と打つのが面倒」と思ったことはないですか。
あるいは本番サーバーへ踏み台(踏み台サーバー)経由で接続するたびに、2段階のコマンドを打っていませんか。

~/.ssh/config(SSHクライアント設定ファイル)を使えば、こうした繰り返し作業を一行のエイリアスにまとめられます。
設定さえ済ませれば ssh web01 と打つだけで接続完了です。

この記事では ~/.ssh/config の基本的な書き方から、ProxyJump・IdentityFile・複数鍵の使い分けまで実践的に解説します。

この記事のポイント

・ ~/.ssh/config に Host ブロックを書くとコマンドが大幅に短縮できる
・ ProxyJump で踏み台サーバー経由の接続を自動化できる
・ IdentityFile で複数の秘密鍵を用途別に使い分けられる
・ パーミッション(600/700)を間違えると接続できないので注意

続きを読む "~/.ssh/configの書き方完全ガイド|Host設定・ProxyJump・IdentityFileで接続を効率化する"

Linuxサーバーのスワップ領域を設計・拡張する方法|物理メモリ別の推奨容量とswapfile作成

「本番サーバーのメモリが枯渇して、OOM Killerに大事なプロセスを落とされた」「スワップを設定しておけばよかった」

Linuxサーバーを運用していると、こんな場面に一度は直面します。スワップ領域を適切に設計・設定しておくことは、サーバーの安定稼働を支える重要な作業です。

この記事では、スワップの基本的な仕組みから、物理メモリ容量別の推奨サイズ、swapパーティションとswapfileの使い分け、swapfileの実際の作成手順、swappinessのチューニング、クラウド環境での注意点、監視と容量超過対処まで、RHEL 9.4 / Ubuntu 24.04 LTS での動作確認をもとに解説します。

この記事のポイント

・RAM 8GB 以下ではRAMと同容量、16GB 以上はRAMの半分を目安にスワップを確保する
・クラウド(EC2など)ではデフォルトでスワップが無効のため、手動でswapfileを作成する必要がある
・swappiness の推奨値は一般サーバー=10~30、データベースサーバー=1~10
・swapon --show と free -h でスワップの使用状況をリアルタイムに確認できる


続きを読む "Linuxサーバーのスワップ領域を設計・拡張する方法|物理メモリ別の推奨容量とswapfile作成"

sshd_configの設定ガイド|Port変更・rootログイン禁止・鍵認証設定の手順

この記事のポイント

・sshd_configは/etc/ssh/sshd_configにあり、変更後はsshdの再起動が必要
・Port・PermitRootLogin・PasswordAuthenticationの3つが最初に変えるべき設定
・AllowUsers/AllowGroupsで接続ユーザーをホワイトリスト管理できる
・sshd -t でsshd_configの構文チェックが可能。再起動前に必ず実行する

「SSHの設定を変えたいけど、sshd_configのどこを触ればいいか分からない」
「デフォルトのまま運用していたら、rootでのログインが許可されていた」

LinuxサーバーのSSH設定は、運用開始後も後から変更を求められる場面が多い項目です。ポート番号の変更、rootログインの禁止、パスワード認証の無効化。セキュリティ要件が厳しくなるにつれて、sshd_configを何度も触ることになります。

この記事では、/etc/ssh/sshd_configの主要設定項目を解説します。RHEL 9 / AlmaLinux 9 / Ubuntu 22.04 LTS で動作確認済みの内容です。

続きを読む "sshd_configの設定ガイド|Port変更・rootログイン禁止・鍵認証設定の手順"

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連携で長期トレンド監視に発展させられる

続きを読む "Linuxサーバー監視の基礎|サーバー状態を見る11項目とコマンド対応表"

top・htop・atop・glancesでLinuxのプロセス監視を自動化する方法|ツール比較と設定例

「サーバーが重い原因を素早く特定したいのに、topコマンドの画面が読みにくくて困っている」
「監視ツールをちゃんと導入したいけど、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のプロセス監視を自動化する方法|ツール比較と設定例"

Linuxの起動シーケンス入門|BIOS・GRUB・initramfs・systemdの流れを体系的に理解する

「サーバーが起動しない。でも何が起きているか分からない」
Linuxを使い始めてしばらく経った人が一度は直面する壁がこれです。コマンドは使えても、システムが起動する仕組みを知らないと、ブート時のエラーに手も足も出なくなります。

この記事では、LinuxがPCの電源を入れてからログインプロンプトが出るまでの起動シーケンスを、BIOS/UEFI → GRUB → initramfs → systemd の順で体系的に解説します。
途中で起動が止まった時の原因特定方法も含めて説明しますので、ブート障害の対処力が一段上がるはずです。

この記事のポイント

・LinuxはBIOS/UEFI → ブートローダー(GRUB) → initramfs → systemd の順で起動する
・各フェーズの役割を知ると、どこで止まっているかを画面表示から判断できる
・systemd-analyze blame で起動が遅い原因を特定できる
・起動失敗時は rescue.target またはGRUBの編集モードで対処する

続きを読む "Linuxの起動シーケンス入門|BIOS・GRUB・initramfs・systemdの流れを体系的に理解する"

CentOS Stream 9とAlmaLinux 9・Rocky Linux 9の違い|選定基準と移行ガイド

「CentOS 8のサポートが終了したと聞いたけど、今後どのLinuxを使えばいいのか分からない」
そう悩んでいるサーバー管理者は多いです。CentOS 8が2021年12月にサポート終了し、後継として登場したのがCentOS Stream 9・AlmaLinux 9・Rocky Linux 9の3つです。名前が似ているので混乱しがちですが、それぞれ設計思想も用途もまったく異なります。

この記事では、3つのディストリビューションの違いを具体的に解説し、どのような環境・目的にどれを選ぶべきかの判断基準を示します。CentOS 7からの移行手順も合わせて紹介します。

この記事のポイント

・CentOS Stream 9はRHEL開発の上流版で「次のRHEL」を先取りする
・AlmaLinux 9はRHEL 9と高い互換性を持つ無償の本番向けディストロ
・Rocky Linux 9はRHEL 9の厳密なクローンを目指す安定重視の選択肢
・本番環境の移行先はAlmaLinuxかRocky Linux、開発・テスト環境はStream

続きを読む "CentOS Stream 9とAlmaLinux 9・Rocky Linux 9の違い|選定基準と移行ガイド"

Linuxのファイル権限完全ガイド|chmod・chown・umaskの基礎と実務でよく使う設定

「Linuxのファイルにアクセスできない」「Permission denied が出て作業が止まった」
こういう状況、サーバー管理の現場では日常茶飯事です。

ファイル権限(パーミッション)は、Linuxを扱う上で最初に身につけるべき基礎知識の一つ。
chmod・chown・umask の使い方を正しく理解しておけば、権限まわりのトラブルの9割は自分で解決できます。

この記事では、Linux のファイル権限の仕組みを基礎から解説し、
chmod・chown・umask の実践的な使い方から、SUID/SGID/Sticky Bit、ACL との組み合わせ、
よくある「Permission denied」エラーの対処まで、現場で役立つ内容を一通りカバーします。

この記事のポイント

・ パーミッションは「所有者/グループ/その他」の3区分で管理される
・ chmod 755 や chmod u+x などの数値・記号両方の書き方を習得する
・ umask はファイル新規作成時のデフォルト権限を決める設定値
・ SUID/SGID/Sticky Bit は誤設定するとセキュリティリスクになる

続きを読む "Linuxのファイル権限完全ガイド|chmod・chown・umaskの基礎と実務でよく使う設定"

AIにLinuxトラブルを解析させる方法|journalctl・dmesgのログをChatGPT・Claudeに渡すコツ

「journalctlのエラーをそのままAIに貼ったら的外れな回答が返ってきた」
「ChatGPTに聞いてみたけど、どこに何を貼ればいいか分からない」

AIチャットにLinuxのログを貼って質問する方法は広まっていますが、渡し方を誤ると精度が大幅に下がります。 ログの量が多すぎる、文脈が不足している、機密情報が混入している——こういった問題が、的外れな回答の主な原因です。

この記事では、journalctlやdmesgの出力をChatGPT・Claudeに渡す具体的な方法と、精度を上げるプロンプトの書き方を解説します。

この記事のポイント

・ログは「エラー行前後30行」に絞り、コンテキストとセットで渡す
・journalctl -xe --no-pager でページング解除して貼り付け可能な形式にする
・IPアドレス・ホスト名・パスは貼る前にマスキングする
・AIは「原因候補の列挙」には強いが「確定診断・対処コマンドの実行」には使わない

続きを読む "AIにLinuxトラブルを解析させる方法|journalctl・dmesgのログをChatGPT・Claudeに渡すコツ"

Linuxサーバーのパーティション設計ガイド|LVM・/var分離・スワップ容量の決め方

「パーティションはどう切ればいいのか、毎回よくわからない」
インストーラーで「自動分割」を選んで済ませてしまい、後から /var が満杯になって運用が止まった——そんなトラブルを現場で何度も見てきました。

この記事では、Linuxサーバーのパーティション設計について、ファイルシステムの選定から LVM の基本、/var や /tmp の分離理由、スワップ容量の決め方、クラウド環境での考え方まで、実務で使える内容をひとまとめに解説します。

この記事のポイント

・/var や /tmp を分離しないと、ログ爆発でシステムが停止する
・LVM を使えばディスク容量を後から柔軟に拡張できる
・スワップはRAMの容量と用途で推奨サイズが変わる
・クラウド環境では EBS/ディスク追加でオンライン拡張が前提

続きを読む "Linuxサーバーのパーティション設計ガイド|LVM・/var分離・スワップ容量の決め方"

yum・dnfにEPELリポジトリを追加する方法|CentOS7・RHEL8・AlmaLinux別の手順と注意点

「yumで入れたいパッケージがない」「EPELって何?どうやって追加するの?」
RHEL系Linuxを使っていると、標準リポジトリにはないパッケージを追加したい場面が必ずやってきます。

この記事では、EPELリポジトリの基本的な考え方から、CentOS 7・RHEL 8/9・AlmaLinux 9・Rocky Linux 9それぞれの追加手順、よく使うパッケージ、リスクと注意点までを実際のサーバー環境をベースに解説します。

この記事のポイント

・EPELはFedoraプロジェクトが管理する追加パッケージリポジトリ
・CentOS 7はyum install epel-release一発で追加できる
・RHEL 8/9はsubscription-managerでCodeReadyを有効にしてからが必須
・AlmaLinux/Rocky Linux 9もdnf install epel-releaseで追加可能

続きを読む "yum・dnfにEPELリポジトリを追加する方法|CentOS7・RHEL8・AlmaLinux別の手順と注意点"

EC2インスタンスのhostnameを永続変更する方法|Amazon Linux 2・2023対応の手順と注意点

「EC2インスタンスを再起動したらホスト名が元に戻ってしまった」
そういうトラブルに直面したことはありませんか。

一般的なLinuxサーバーであれば hostnamectl コマンドで変更すれば永続化されますが、EC2では再起動後に cloud-init が動作してホスト名を上書きするため、同じ手順では解決しません。

この記事では、Amazon Linux 2 および Amazon Linux 2023 でホスト名を永続化する正しい方法を解説します。
cloud-init の設定ファイル(preserve_hostname)の書き方から、/etc/hosts の編集、Auto Scaling グループへの対応、User Data による自動化まで順番に説明します。

この記事のポイント

・EC2のホスト名が戻るのは cloud-init の上書き動作が原因
・cloud.cfg の preserve_hostname: true で永続化できる
・Amazon Linux 2 と 2023 では設定ファイルのパスが異なる
・Auto Scaling 環境ではインスタンスIDを使った動的命名が正解

続きを読む "EC2インスタンスのhostnameを永続変更する方法|Amazon Linux 2・2023対応の手順と注意点"

MySQLでユーザー一覧を表示する方法|mysql.userの確認とCURRENT_USERの活用

「MySQLでユーザーの一覧を確認したいのに、SHOW USERSと打ったらエラーになった」
MySQL入門者が必ず一度は通る道です。MySQLには SHOW DATABASESSHOW TABLES がありますが、SHOW USERS というコマンドは存在しません。

この記事では、mysql.user テーブルから正しくユーザー一覧を取得する方法と、現在ログイン中のユーザーを確認する CURRENT_USER 関数、さらに権限確認の SHOW GRANTS まで、実務で必要な操作をまとめて解説します。MariaDBとの違いも含めて対応します。

動作確認環境:MySQL 8.0.36 / MariaDB 10.11(RHEL 9.4 / Ubuntu 24.04 LTS)

この記事のポイント

・MySQLに「SHOW USERS」はない。SELECT User, Host FROM mysql.user を使う
CURRENT_USER() で現在のセッションのユーザーを即座に確認できる
SHOW GRANTS FOR 'user'@'host' で付与された権限を確認する
・アカウントロック中ユーザーは account_locked='Y' で絞り込める

続きを読む "MySQLでユーザー一覧を表示する方法|mysql.userの確認とCURRENT_USERの活用"

Linux初心者向けインストール基礎知識|ディストロ選定からデュアルブート・仮想環境まで

「Linuxをインストールしようとしたけど、どのディストリビューションを選べばいいかわからない」「デュアルブートに挑戦したら起動しなくなった」という話は、セミナーでも受講生から毎回のように聞きます。

最初の一歩でつまずくと、Linuxが嫌いになってしまいますよね。インストール作業には「地雷」がいくつかあって、それを知らずに踏んでしまう初心者が後を絶ちません。

この記事では、Linux初心者がインストール前に知っておくべき基礎知識を体系的に解説します。ディストリビューションの選び方から、インストール方式の種類、パーティション基礎、デュアルブートの注意点、VirtualBox/WSL2でのお試し方法、初期設定の流れ、そしてよくあるトラブルまでを一通りカバーします。

この記事のポイント

・初心者にはUbuntu LTSかAlmaLinux 9が鉄板の選択肢
・デュアルブート前にWindowsのBitLockerとファストスタートを必ず無効化する
・最初の練習はVirtualBoxかWSL2で行うと環境を壊さず安全
・パーティション設計は「/ と /home を分けるかどうか」が最初の判断ポイント

続きを読む "Linux初心者向けインストール基礎知識|ディストロ選定からデュアルブート・仮想環境まで"

Linuxサーバー構築の標準構成ガイド|Webアプリ向けディレクトリ・サービス・パーティション設計

「Linuxサーバーを一から組むことになったが、どのディレクトリをどこに置くべきか、サービスは何を入れるべきか、パーティションはどう切るべきかが分からない」
「とりあえず動かすことはできるが、本番運用に耐える構成になっているか自信がない」
Webアプリ向けにLinuxサーバーを組むとき、最初の構成設計を間違えると、半年後・1年後の運用で必ず痛い目を見ます。

この記事では、Webアプリ向けLinuxサーバーの「標準構成」をディレクトリ・サービス・パーティションの3軸で解説します。
RHEL 9.4 / AlmaLinux 9.3 / Ubuntu 24.04 LTS で検証しています。
20年以上のサーバー運用経験から「これだけは押さえておけば事故らない」という最低限の設計指針をまとめました。

この記事のポイント

・Webサーバーの標準は /var /tmp /home を分離した4~6パーティション構成
・サービスは Web/DB/監視 を最小限に絞り SELinux と firewalld を必ず有効化
・ログ設計と日次バックアップ設計をサーバー構築の同じタイミングで決める
・移行時のチェックリストで設計漏れと運用事故を防げる

続きを読む "Linuxサーバー構築の標準構成ガイド|Webアプリ向けディレクトリ・サービス・パーティション設計"

ps2pdfコマンドでPostScriptをPDFに変換する方法|LinuxでのPDF変換の実践例

「PostScriptファイルをPDFに変換したいけど、どうすればいい?」
Linux環境でps2pdfを使えばワンコマンドで変換できますが、解像度指定・用紙サイズ・一括処理など、少し凝ったことをしようとすると途端に情報が少なくなります。

この記事では、ps2pdfコマンドの基本的な使い方から、解像度・用紙サイズの指定、複数ファイルの一括変換、逆変換(pdftops)、そしてよくあるトラブルへの対処法まで、実際のサーバー運用で役立つ実践的な使い方を解説します。

この記事のポイント

・ps2pdf は ghostscript に含まれ、ワンコマンドでPS→PDF変換が可能
・-dDEVICE=pdfwrite -r300 で解像度を指定して高品質PDFを作れる
・for文を使えば複数の.psファイルを一括でPDFへバッチ変換できる
・pdftopsコマンドで逆変換(PDF→PS)も同様に実行可能

続きを読む "ps2pdfコマンドでPostScriptをPDFに変換する方法|LinuxでのPDF変換の実践例"

while readコマンドでシェルスクリプトのファイルを1行ずつ処理する方法|IFS設定とCSV・ログ解析の実践例も

「シェルスクリプトでファイルの中身を1行ずつ処理したいのに、うまくいかない」
そんなつまずきを抱えたまま、forループやcatを組み合わせて試行錯誤していませんか。

実は、Bashには while read というファイルを1行ずつ読み込むための専用の書き方があります。
ログファイルの解析、CSVの一括処理、サーバー一覧への順次SSH接続など、現場で繰り返し使う場面がある実務必須の構文です。

この記事では、while read の基本構文から、IFSによる区切り文字のカスタマイズ、CSVやTSVの処理、
よくあるトラブルの対処法まで、RHEL 9.4 / Ubuntu 24.04 LTS の動作確認済みコマンドで解説します。

この記事のポイント

・ while read line でファイルを1行ずつ確実に処理できる
・ IFS=","で区切り文字を変えればCSV・TSVにも対応できる
・ while readはfor+catより安全で空白・改行を壊さない
・ 末尾改行なし・バックスラッシュ・末尾スペースに注意が必要

続きを読む "while readコマンドでシェルスクリプトのファイルを1行ずつ処理する方法|IFS設定とCSV・ログ解析の実践例も"

ip routeコマンドでLinuxのルーティングテーブルを確認・設定する方法|静的ルート追加とトラブルシュートも

「pingは通るのに、特定のサーバーだけ繋がらない」
そういうトラブルに遭遇したとき、真っ先に確認すべきなのがルーティングテーブルです。

「どの宛先のパケットを、どのインターフェースから、どのゲートウェイ経由で送るか」——この情報を管理しているのがルーティングテーブルです。ここがおかしければ、pingやcurlがどれだけ正しくても通信できません。

この記事では、ip route コマンドの基本的な使い方から、静的ルートの追加・削除、永続化の手順、そしてよくあるトラブルの切り分けまで解説します。RHEL 9.4 / Rocky Linux 9 / Ubuntu 22.04 LTS で動作確認済みです。

この記事のポイント

・ip route show でルーティングテーブルを一覧表示できる
・ip route add でコマンドラインから静的ルートを追加できる(再起動で消える)
・永続化は RHEL 系は nmcli、Ubuntu 系は Netplan で設定する
・ip route get で「この宛先への実際の経路」を1行で確認できる


ip routeコマンドでLinuxのルーティングテーブルを確認・設定する方法|静的ルート追加とトラブルシュートも

続きを読む "ip routeコマンドでLinuxのルーティングテーブルを確認・設定する方法|静的ルート追加とトラブルシュートも"

pvcreate・vgcreate・lvcreateコマンドでLVMボリュームを構築する方法|ディスク追加から論理ボリューム作成まで

「ディスクを追加したのに、どうやってLinuxに認識させればいい?」
「LVMって言葉は聞いたことあるけど、pvとvgとlvの関係がよくわからない」

こういった疑問を持つエンジニアは多いです。LVM(Logical Volume Manager)は、物理ディスクを柔軟に管理するLinuxの標準的な仕組みですが、pvcreatevgcreatelvcreate という3つのコマンドの役割と順序を理解しないと、どこで何をしているのか迷子になりがちです。

この記事では、pvcreate・vgcreate・lvcreateコマンドを使ってLVMボリュームをゼロから構築する手順を、RHEL 9.4 / Rocky Linux 9 の実環境で確認した出力例とともに解説します。ディスク追加から論理ボリューム作成・フォーマット・マウントまでを一通り体験できる内容です。

この記事のポイント

・pvcreate→vgcreate→lvcreateの3段階でLVMを構築できる
・PV(物理ボリューム)・VG(ボリュームグループ)・LV(論理ボリューム)の役割を理解する
・lvcreateの-Lと-lオプションでサイズ指定方法が異なる
・構築後はmkfsでフォーマット・fstabにUUIDで永続マウントが必須

続きを読む "pvcreate・vgcreate・lvcreateコマンドでLVMボリュームを構築する方法|ディスク追加から論理ボリューム作成まで"

mktempコマンドでシェルスクリプトの一時ファイルを安全に作成する方法|並列処理の衝突防止と自動削除も

「シェルスクリプトで一時ファイルを /tmp/tmp_file.txt と決め打ちしていたら、別のプロセスと衝突してデータが壊れた」
そんな経験はありませんか?

一時ファイルの名前を固定していると、並列実行時の上書き・競合リスクがあります。
mktemp コマンドを使えば、重複しないユニークなファイル名を自動生成できます。

この記事では、mktemp コマンドの基本的な使い方から、シェルスクリプトでの安全な一時ファイル管理、自動削除(trap との組み合わせ)まで解説します。
RHEL 9.4 / Ubuntu 24.04 LTS で動作確認済みです。

この記事のポイント

・mktemp でユニークな一時ファイルを自動生成できる
・-d オプションで一時ディレクトリも作れる
・trap と組み合わせてスクリプト終了時に自動削除する
・並列実行時の競合・上書き事故を根本から防げる

続きを読む "mktempコマンドでシェルスクリプトの一時ファイルを安全に作成する方法|並列処理の衝突防止と自動削除も"

sha256sumコマンドでファイルの整合性を確認する方法|md5sumとの使い分けやダウンロード検証も

「ダウンロードしたISOイメージや圧縮ファイルが、転送中に壊れていないか不安になったことはありませんか?」
公式サイトからRHELやUbuntuのISOを取得したとき、チェックサムファイルが一緒に置かれているのを見た人は多いはずです。しかし「確認のやり方がよくわからない」「md5sumとsha256sumのどちらを使えばいいか迷う」という声は、セミナーでも毎回聞かれます。

この記事では、sha256sum コマンドを使ったファイルの整合性確認方法を、RHEL 9.4 / Ubuntu 24.04 LTS の実行例とともに解説します。md5sumとの違い、チェックサムファイルによる一括検証、バックアップの定期確認スクリプトまでカバーします。

この記事のポイント

・sha256sum でハッシュ値を計算し、公式チェックサムと比較してファイルの改ざんを検出できる
・sha256sum -c でチェックサムファイルを使った一括検証が可能
・md5sum は高速だが衝突リスクがあり、セキュリティ目的には sha256sum 以上を推奨
・スクリプトに組み込めば、バックアップや定期確認を自動化できる

続きを読む "sha256sumコマンドでファイルの整合性を確認する方法|md5sumとの使い分けやダウンロード検証も"

gpgコマンドでファイルを暗号化・復号する方法|鍵管理から実務活用まで

「大切なファイルをサーバー間で転送したいけど、平文で置いておくのは怖い」
「バックアップを外部ストレージに保存するとき、暗号化しておきたい」

このような場面で頼りになるのが gpg コマンドです。GPG(GNU Privacy Guard)は OpenPGP 規格を実装した暗号化ツールで、RHEL・Ubuntu・CentOS など主要ディストリビューションに標準搭載されています。

この記事では、gpg コマンドを使ったファイルの暗号化・復号の手順を解説します。公開鍵暗号方式と共通鍵(パスフレーズ)暗号方式の両方をカバーし、鍵の生成・エクスポート・インポート、そしてバックアップ運用での実践例まで紹介します。

この記事のポイント

・gpg -c でパスフレーズによる簡易暗号化ができる
・gpg --gen-key で公開鍵ペアを生成し相手と安全に通信できる
・--armor オプションで ASCII 形式の可搬性のある暗号文を出力できる
・鍵のエクスポート・インポートで複数サーバー間の運用に対応できる

続きを読む "gpgコマンドでファイルを暗号化・復号する方法|鍵管理から実務活用まで"

printfコマンドでシェルスクリプトの出力を整形する方法|echoとの違いや書式指定・色付き出力も

「echoで出力していたら文字化けした」「ログに日時を付けたいけどフォーマットが揃わない」「シェルスクリプトのデバッグ出力を色分けしたい」
こんな悩みを持ったことはありませんか?

Linux の printf コマンドは、C言語の printf 関数と同じ書式指定でテキストを出力できるコマンドです。echo では難しい「フォーマット制御」「数値のゼロ埋め」「エスケープシーケンス」などを正確に扱えます。

この記事では、printf コマンドの基本構文から始まり、書式指定子・エスケープシーケンス・実務でよく使うパターン・echo との使い分け・トラブルシュートまでを実行例付きで解説します。

この記事のポイント

・printf "%s\n" で echo より確実に文字列を出力できる
・%d・%05d・%f で数値のゼロ埋め・小数点桁数を制御できる
・\e[32m 等のANSIコードで端末出力を色付けできる
・echo と printf の使い分けは「書式が必要かどうか」で判断する

続きを読む "printfコマンドでシェルスクリプトの出力を整形する方法|echoとの違いや書式指定・色付き出力も"

columnコマンドでテキストを表形式に整形する方法|TSVやログをきれいに揃える実践例も

「ログファイルをcatで見ると列がズレていて読みにくい」
「awkでCSVを処理したはいいが、出力がぐちゃぐちゃで確認しにくい」

こういった場面でサッと使えるのが column コマンドです。
パイプで繋ぐだけで、バラバラな列を整然と揃えてくれる地味ながら強力なツールです。

この記事では、columnコマンドの基本的な使い方から、TSV・CSV・ログ整形への応用、よく詰まるポイントまでを解説します。
RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済みです。

この記事のポイント

・column -t でスペース区切りのテキストをテーブル整形できる
・-s オプションで区切り文字を指定しCSV・TSVにも対応できる
・パイプで繋ぐだけなので他コマンドと自由に組み合わせられる
・util-linux版とBSD版で -s オプションの挙動が異なる点に注意

続きを読む "columnコマンドでテキストを表形式に整形する方法|TSVやログをきれいに揃える実践例も"

readlinkコマンドでシンボリックリンクのパスを確認する方法|-fオプションで絶対パス解決も

「シンボリックリンクのリンク先がどこを指しているか確認したいのに、lsで見てもよくわからない」
「スクリプトの中でシンボリックリンクを辿って絶対パスを取得したいが、どうすればいいか」

Linuxを使っていると、シンボリックリンクが関係するトラブルに何度か遭遇します。
アプリケーションがリンク先のファイルを見つけられない、スクリプトがシンボリックリンクを辿れずにエラーになる、といったケースは現場でよく見かけます。

この記事では、readlink コマンドの実践的な使い方を解説します。
基本的なリンク先確認から、-f オプションを使った絶対パスの完全解決、シェルスクリプトでの活用まで幅広くカバーします。

この記事のポイント

・readlink でシンボリックリンクのリンク先パスを表示できる
・readlink -f で多段リンクも辿り絶対パスを完全解決できる
・スクリプト内でのself-path取得に readlink -f $0 が定番
・リンク先が存在しない場合の挙動の違いに注意が必要

続きを読む "readlinkコマンドでシンボリックリンクのパスを確認する方法|-fオプションで絶対パス解決も"

dateコマンドでLinuxの日時を操作する方法|フォーマット変換・計算・シェルスクリプト活用も

「シェルスクリプトでファイル名に日付を入れたいのに、どう書けばいいかわからない」
「dateコマンドのフォーマット指定がよくわからなくて、毎回ググっている」

現場でよく聞く悩みです。dateコマンドはシェルスクリプトの中で日付処理を担う縁の下の力持ちです。使いこなせれば、ログファイルの自動命名、古いファイルの自動削除、期間計算など、実務での定型作業が一気に自動化できます。

この記事では、dateコマンドの基本フォーマット指定から、日付の加算・減算、シェルスクリプトでの実践的な活用例まで解説します。RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済みです。

この記事のポイント

・date +"%Y-%m-%d" で今日の日付をYYYY-MM-DD形式で取得できる
・date -d "yesterday" や date -d "+7 days" で相対日付計算が可能
・スクリプトのログファイル名に日付を自動付与する実践パターンを解説
・TZやtimedatectlとの連携で時刻ズレの罠を回避する方法も紹介

続きを読む "dateコマンドでLinuxの日時を操作する方法|フォーマット変換・計算・シェルスクリプト活用も"

mkfsコマンドでLinuxのファイルシステムを作成する方法|ext4・xfs・tmpfsの使い分けとfstab設定も

「新しいディスクを追加したのに、マウントしようとしたらエラーになる」
「パーティションを作ったあと、次に何をすればいいのかわからない」

こういう状況で詰まってしまうのは、ディスクの準備手順に「ファイルシステムの作成」というステップが抜けているためです。パーティションを切るだけでは使えません。その上にファイルシステムを作成して初めて、データを書き込める状態になります。

この記事では、Linuxでファイルシステムを作成する mkfs コマンド の実践的な使い方を解説します。ext4・xfs・vfatの違いと使い分け、実行環境での出力例、fstabへの永続マウント設定、よくあるエラーへの対処まで、現場で必要な情報を一通りカバーします。

動作確認環境:RHEL 9.4 / Rocky Linux 9.4 / Ubuntu 24.04 LTS

この記事のポイント

・mkfs.ext4 が最もよく使われるファイルシステム作成コマンド
・RHEL系サーバーの /data パーティションは xfs が標準的な選択肢
・mkfs 実行前に lsblk でデバイス名を必ず確認し、誤消去を防ぐ
・fstab に UUID で記述すると再起動後も自動マウントできる

続きを読む "mkfsコマンドでLinuxのファイルシステムを作成する方法|ext4・xfs・tmpfsの使い分けとfstab設定も"

cutコマンドでテキストを切り出す方法|-f・-dオプションとCSVログ解析の実践例も

「ログファイルから必要な列だけ取り出したいのに、どうすればいいか分からない」
CSVや区切り文字付きのテキストから特定のフィールドを抽出したい場面は、サーバー管理で毎日のように発生します。

そこで使うのが cut コマンドです。

この記事では、cutコマンドの基本的な使い方から、-f・-dオプションの実践的な組み合わせ、ログ解析・CSVの列抽出まで幅広く解説します。
RHEL 9.4 / Ubuntu 24.04 LTS で動作確認済みです。

この記事のポイント

・ cut -d':' -f1 /etc/passwd でユーザー名一覧を即座に抽出できる
・ -f に範囲指定(-f1-3)や複数列(-f1,3,5)が使える
・ -c オプションで文字位置による切り出しも可能
・ パイプでawk・sort・uniqと組み合わせると列単位の集計が手軽になる

続きを読む "cutコマンドでテキストを切り出す方法|-f・-dオプションとCSVログ解析の実践例も"

patchコマンドでファイルを差分適用する方法|--dry-runで安全確認とロールバックも

「設定ファイルを修正したパッチを別サーバーに適用したいが、どうすればいい?」
「diffコマンドで出力したファイルをそのまま使えないのか?」

Linuxのpatchコマンドは、diffコマンドが出力した差分ファイル(パッチファイル)を使って、対象ファイルに変更を一括適用するコマンドです。
手動でファイルを書き換えるよりも、確実に・素早く・安全に変更を適用できます。

この記事では、patchコマンドの基本的な使い方から、--dry-runによる事前確認、-pオプションのパス調整、複数ファイルへのパッチ適用まで、現場で必要な実践知識をまとめて解説します。
実行環境はRHEL 9.4 / Rocky Linux 9で動作確認しています。

この記事のポイント

・patch コマンドは diff 出力を使ってファイルを自動更新できる
・--dry-run オプションで適用前に問題がないか確認できる
・-p オプションでパッチ内のパス階層を調整して適用する
・-R オプションで適用済みパッチを元に戻せる(ロールバック)

続きを読む "patchコマンドでファイルを差分適用する方法|--dry-runで安全確認とロールバックも"

localectlコマンドでLinuxのロケールとキーボードを設定する方法|文字化け対策と環境統一も

「サーバーにSSHで入ったら日本語が文字化けする」「チームメンバーの環境によってロケールがバラバラで、スクリプトが動かない」——こんな悩みを現場でよく聞きます。
原因の多くは、Linuxのロケール設定が適切に行われていないことです。

この記事では、systemdのロケール管理コマンド localectl の実践的な使い方を解説します。確認から変更・キーボードレイアウト設定・文字化けの原因特定まで、Rocky Linux / RHEL 9.4 / Ubuntu 24.04 LTS で動作確認した手順をそのままお伝えします。

この記事のポイント

・localectl status でロケールとキーボードの現在値を一括確認できる
・localectl set-locale LANG=ja_JP.UTF-8 でロケールを永続的に変更できる
・文字化けの原因はLC_ALL・LANG・LANGUAGE変数の優先順位にある
・チームの環境統一には /etc/locale.conf を直接配布する方法が確実

続きを読む "localectlコマンドでLinuxのロケールとキーボードを設定する方法|文字化け対策と環境統一も"

set -xコマンドでシェルスクリプトをデバッグする方法|set -e・set -uとの組み合わせも

「シェルスクリプトを書いたのに、なぜかエラーになる」
「どこで止まっているのか、原因が全くわからない」

シェルスクリプトのデバッグは、初心者だけでなく中級者でも手が止まりやすいポイントです。Linuxサーバーの運用自動化を進めるほど、スクリプトが複雑になり、バグの原因追跡が難しくなります。

この記事では、Bashの組み込みオプション set -x(トレースモード)を中心に、set -e(エラー即終了)・set -u(未定義変数をエラーに)との組み合わせによるデバッグ手法を解説します。RHEL 9.4 / Ubuntu 24.04 LTS で動作確認済みの実践的な内容です。

この記事のポイント

・set -x を使うと実行コマンドがトレース表示されデバッグが容易になる
・set -e でスクリプトをエラー発生時に即終了させ被害を最小化できる
・set -u で未定義変数を早期検知し変数名ミスのバグを防げる
・3つを組み合わせた set -eux が現場のシェルスクリプト冒頭の定番形式

続きを読む "set -xコマンドでシェルスクリプトをデバッグする方法|set -e・set -uとの組み合わせも"

mdadmコマンドでLinuxソフトウェアRAIDを構築・監視する方法|RAID1作成からディスク障害復旧まで

「ディスクが1本壊れた瞬間にサーバーが止まる構成のままでいいのか」
ハードウェアRAIDカードがない自社サーバーや、クラウドのアタッチドディスクを束ねる場面で誰もが直面する課題です。

Linuxには標準で mdadmコマンド によるソフトウェアRAIDが用意されており、追加コストなしで冗長化を組めます。
ただし「組んだけれど監視していない」「壊れたあとに何をすべきか分からない」状態が一番危険です。

この記事では、mdadmコマンドの基本操作から、RAID1(ミラーリング)の作成、/proc/mdstatでの状態確認、ディスク障害発生時の復旧手順までを実例付きで解説します。

実行環境:RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済みです。

この記事のポイント

・mdadm --create でRAID1/5/6を即座に構築できる
・/proc/mdstatとmdadm --detailで状態を常時監視する
・障害ディスクは --fail → --remove → --add の3ステップで交換する
・/etc/mdadm.confへの保存とinitramfs更新を忘れない

続きを読む "mdadmコマンドでLinuxソフトウェアRAIDを構築・監視する方法|RAID1作成からディスク障害復旧まで"

iotopコマンドでディスクI/Oを使うプロセスを特定する方法|iostatとの違いやインタラクティブ操作も

「ディスクI/Oが急に詰まり始めた時、どのプロセスが犯人か特定できない」
本番運用でiowaitが上がった瞬間に、誰しも一度は経験する困りごとです。

top や vmstat ではシステム全体のI/O負荷は見えても、「どのPIDが書いているか」までは追えません。
そこで使いたいのが iotopコマンド です。

この記事では、iotopコマンドの基本的な使い方から、画面の読み方、--onlyやバッチモードの活用、
高負荷時の犯人プロセス特定の手順まで体系的に解説します。

実行環境:RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済みです。

この記事のポイント

・iotopはプロセス単位でディスクI/O使用量をリアルタイム表示できる
・root権限で実行する必要がある(sudo iotop)
・--onlyオプションでI/Oのあるプロセスだけに絞り込める
・iostatでデバイス、iotopでプロセスを見るのが切り分けの定石

続きを読む "iotopコマンドでディスクI/Oを使うプロセスを特定する方法|iostatとの違いやインタラクティブ操作も"

lscpuコマンドでCPU情報を確認する方法|コア数・スレッド数・アーキテクチャの読み方も

「このサーバー、何コアのCPUが乗ってるんだっけ?」
運用作業中に急に確認が必要になる場面、誰でも一度は経験があるはずです。

/proc/cpuinfoを直接catすれば情報は取れますが、出力が長くて読みにくい。
そんなときに使いたいのが lscpuコマンド です。

この記事では、lscpuコマンドの基本的な使い方から、出力の読み方、仮想化環境での活用、
スクリプトへの組み込み方法まで体系的に解説します。

実行環境:RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済みです。

この記事のポイント

・lscpuコマンド1本でコア数・スレッド数が一目でわかる
・「CPU(s)」と「Thread(s) per core」の掛け算でスレッド総数を確認できる
・-e オプションで各CPUの状態をテーブル形式で確認できる
・--json オプションでスクリプトへの組み込みにも対応している

続きを読む "lscpuコマンドでCPU情報を確認する方法|コア数・スレッド数・アーキテクチャの読み方も"

pvs・vgs・lvsコマンドでLVM構成を確認する方法|ディスク容量とPV・VG・LV一覧を把握する

「ディスクを追加したはいいが、PVやVGの状態がわからない」「lvextendする前にLVM構成を確認したい」 現場でLVMを使い始めると、必ずこの壁にぶつかります。

Linux のLVM(Logical Volume Manager)を扱う上で欠かせない3つのコマンド、pvs(物理ボリューム確認)・vgs(ボリュームグループ確認)・lvs(論理ボリューム確認)の読み方と使い方を解説します。
RHEL 9.4 / AlmaLinux 9.3 で動作確認済みです。コマンド一つひとつの出力の意味から、トラブル時の見方まで一通りカバーします。

この記事のポイント

・pvs・vgs・lvs の3コマンドでLVM全体の状態を把握できる
・出力フィールドの意味を読めると拡張前後の確認が速くなる
・pvdisplay / vgdisplay / lvdisplay で詳細情報を取得できる
・「No PV label found」等のエラー対処もまとめて解説

続きを読む "pvs・vgs・lvsコマンドでLVM構成を確認する方法|ディスク容量とPV・VG・LV一覧を把握する"

fail2banコマンドでブルートフォース攻撃を自動ブロックする方法|SSHの不正アクセス対策とトラブルシュートも

「サーバーに不審なログイン試行が来ているけど、どう防げばいいんだろう」
「/var/log/secure を見たら知らないIPから何千回もSSHを叩かれていた」

Linuxサーバーを公開した瞬間から、世界中のボットが自動でパスワードを試し続けます。
こうしたブルートフォース攻撃を自動でブロックするのが fail2ban です。

この記事では、fail2ban の仕組みから始まり、SSHの不正アクセスを遮断する実際の設定手順、よくあるトラブルの対処まで、RHEL 9.4 / Rocky Linux 9 / Ubuntu 24.04 LTS での動作確認済みの内容を解説します。

この記事のポイント

・fail2ban は認証失敗ログを監視し、閾値超過IPをfirewalldでブロックする
・設定は jail.local で行い、jail.conf は直接編集しない
・maxretry・findtime・bantime の3つが制御の核心
・ban状態の確認は fail2ban-client status sshd で即座に確認できる

続きを読む "fail2banコマンドでブルートフォース攻撃を自動ブロックする方法|SSHの不正アクセス対策とトラブルシュートも"

timedatectlコマンドでLinuxのタイムゾーンと時刻を設定する方法|NTP有効化から確認手順まで

「サーバーのログが9時間ズレていた……」「time zoneを変えたはずなのに反映されない」
こんな経験はありませんか。

Linuxサーバーでは、タイムゾーンや時刻の設定ミスがログ解析の混乱やジョブのスケジュールズレに直結します。
この記事では、timedatectlコマンドを使ったタイムゾーン変更・NTP有効化・時刻確認の手順を、RHEL 9.4 / Rocky Linux 9.4 / Ubuntu 24.04 LTSで動作確認済みの実例を交えて解説します。

この記事のポイント

・timedatectl set-timezone でタイムゾーンをJSTに変更できる
・timedatectl set-ntp true でNTP自動同期を有効化できる
・timedatectl status で現在の時刻・NTP状態をまとめて確認できる
・タイムゾーン変更後はcron・ログに即時反映されることを確認する

続きを読む "timedatectlコマンドでLinuxのタイムゾーンと時刻を設定する方法|NTP有効化から確認手順まで"

semanageコマンドでSELinuxのポリシーを管理する方法|fcontext・port・booleanの実践設定も

「SELinuxが邪魔でサービスが起動できない」「AVC deniedのエラーが消えない」
サーバー管理の現場でSELinuxを有効にしていると、こういった問題に頭を抱えることがあります。

ただ、SELinuxを無効化(disabled)してしまうのは最終手段です。
正しいポリシー設定さえ覚えれば、SELinuxを有効にしたままサービスをスムーズに動かせます。
そのために必要なのが semanage コマンドです。

この記事では、semanageコマンドの基本的な使い方から、ファイルコンテキスト・ポート・Booleanの実践的な設定手順を解説します。
RHEL 9.4 / AlmaLinux 9 / Rocky Linux 9で動作確認済みです。

この記事のポイント

・semanageはSELinuxポリシーを永続的に変更できる唯一のコマンド
・fcontext/port/booleanの3サブコマンドが現場で特に重要
・AVC deniedはaudit2allowで解析してから対処するのが鉄則
・chconは再起動で消えるため本番環境での使用は禁止

続きを読む "semanageコマンドでSELinuxのポリシーを管理する方法|fcontext・port・booleanの実践設定も"

systemctlコマンドでLinuxのサービスを管理する方法|start・stop・enable・statusの使い分けも

「サービスを再起動したいのに、コマンドが分からない」
「startとenableの違いって何?」

サーバー管理の現場でsystemctlの操作に戸惑う方は多くいます。RHEL系だけでなくUbuntuでも同じコマンドが使えるにもかかわらず、意外と体系的に整理できていないケースが少なくありません。

この記事では、systemctlコマンドの基本から実務で必要な操作まで、RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済みの実行例を使って解説します。start・stop・enable・disableの違いから、ユニットファイルの確認・作成まで一通りカバーしています。

この記事のポイント

・systemctl start/stop は「今すぐ」、enable/disable は「次回起動時から」の設定
・systemctl status でサービス状態・直近ログを一度に確認できる
・--now オプションで enable+start を1コマンドで同時実行できる
・Failed 状態は journalctl -u でユニット単位のログを確認するのが最短ルート

続きを読む "systemctlコマンドでLinuxのサービスを管理する方法|start・stop・enable・statusの使い分けも"

lddコマンドで共有ライブラリの依存関係を確認する方法|not foundエラーの解決とldconfigの活用も

「コマンドを実行したら "error while loading shared libraries: libxxx.so.6: cannot open shared object file: No such file or directory" というエラーが出た」
このエラーに初めて遭遇すると、何が起きているのかわからず途方に暮れてしまいます。

原因はほとんどの場合、共有ライブラリ(.so ファイル)が見つからないことです。
そしてその調査に使うのが ldd コマンドです。

この記事では、ldd コマンドの基本的な使い方から、「not found」エラーの原因特定手順、ldconfig によるライブラリパスの更新まで解説します。
RHEL 9 / Rocky Linux 9 / Ubuntu 24.04 LTS 環境で動作確認済みです。

この記事のポイント

・ldd コマンドで実行ファイルが必要とする共有ライブラリ一覧を確認できる
・「not found」表示は ldconfig や LD_LIBRARY_PATH で解決できる
・readelf -d でより安全にライブラリ依存を確認する方法もある
・ldconfig -v でライブラリキャッシュを更新すれば /usr/local/lib 配下も認識される

続きを読む "lddコマンドで共有ライブラリの依存関係を確認する方法|not foundエラーの解決とldconfigの活用も"

lsofコマンドで開いているファイルとポートを確認する方法|プロセス特定と障害切り分けの実践例も

「このプロセスが何のファイルを掴んでいるのか分からない」
「ポートが使用中と言われるが、どのプロセスが使っているのか見当がつかない」

サーバー運用をしていると、こういった場面に必ず遭遇します。再起動しても解決しない、ログを見ても手がかりがない——そんな時に頼りになるのが lsof コマンドです。

この記事では、lsof コマンドの基本的な使い方から、ポート調査・プロセス特定・障害切り分けまでの実践的な活用法を解説します。RHEL 9.4 / Rocky Linux 9.4 / Ubuntu 24.04 LTS で動作確認済みです。

この記事のポイント

・lsof は「List Open Files」の略でプロセスが開くすべてのリソースを一覧できる
・lsof -i :80 で特定ポートを使っているプロセスを即座に特定できる
・lsof -p PID でプロセスが開いているファイル・ソケットを一括確認できる
・削除済みファイルを掴み続けるプロセスもlsofで発見・解放できる

続きを読む "lsofコマンドで開いているファイルとポートを確認する方法|プロセス特定と障害切り分けの実践例も"

loggerコマンドでシステムログに任意のメッセージを記録する方法|rsyslog転送やシェルスクリプト活用も

「シェルスクリプトが正常に実行されたか後から確認できない」——サーバー運用の現場でよく耳にする悩みです。
cronで動かしているスクリプトのエラーを見逃したり、いつ何が実行されたか追跡できなかったりするケースは少なくありません。

この記事では、logger コマンドの使い方を体系的に解説します。システムログへの書き込み方法から、syslogファシリティ・プライオリティの指定、シェルスクリプトへの組み込みパターン、リモートホストへのログ転送、journalctlでの確認方法まで、実務で即使える内容を網羅します。

この記事のポイント

・logger コマンドでシェルから /var/log/messages(syslog)に直接書き込める
・-t でタグを付けると grep / journalctl でスクリプト名で絞り込み検索できる
・-p でファシリティとプライオリティを指定してログの重要度を明示できる
・シェルスクリプトにログ関数として組み込むと cronジョブの管理が格段に楽になる

続きを読む "loggerコマンドでシステムログに任意のメッセージを記録する方法|rsyslog転送やシェルスクリプト活用も"

nsenterコマンドでLinuxの名前空間に入る方法|コンテナデバッグと実務活用も

「docker exec が使えない状況で、コンテナ内のネットワークを確認しなければならない」——そんな場面が現場ではよくあります。
docker デーモンが停止していたり、別の仕組みで起動したコンテナだったりすると、docker exec は使えません。

こういった状況で頼りになるのが nsenter コマンドです。
この記事では、nsenter の基本構文から、PID・ネット・マウント各名前空間への入り方、コンテナデバッグへの応用まで、RHEL 9.4 / Ubuntu 24.04 LTS で動作確認した手順を解説します。

この記事のポイント

・nsenter -t PID でプロセスの名前空間に外から入れる
・--net --pid --mnt でどの名前空間に入るか指定できる
・docker exec が使えない場面でのコンテナ調査に有効
・/proc/PID/ns/ でプロセスの名前空間リンクを確認できる

続きを読む "nsenterコマンドでLinuxの名前空間に入る方法|コンテナデバッグと実務活用も"

jqコマンドでJSONを解析・加工する方法|フィルタ・整形・抽出の実践例も

「curlでAPIのレスポンスを取得したけれど、JSONが1行に詰まっていて読めない」 「シェルスクリプトでJSONの特定フィールドだけ取り出したいのに、awkやsedでは複雑すぎる」 サーバー運用やインフラ自動化の現場では、APIやクラウドのCLIツールがJSON形式でデータを返してくることが日常茶飯事です。そこで必須になるのが jq コマンドです。 この記事では、jq の基本的なインストールから、JSON整形・フィールド抽出・配列処理・条件フィルタリング、そしてシェルスクリプトへの組み込みまで、現場で実際に使われるノウハウをまとめて解説します。 RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済みです。

この記事のポイント

・jq . でJSONを整形して人間が読みやすい形に変換できる
・.フィールド名でネストしたキーも簡単に抽出できる
・.[index]や.[]で配列要素の取り出しや展開ができる
・select()で条件フィルタリングし、必要なデータだけ抽出できる

続きを読む "jqコマンドでJSONを解析・加工する方法|フィルタ・整形・抽出の実践例も"

envsubstコマンドでシェル変数を環境変数で展開する方法|テンプレートファイルの動的生成と実務活用も

「設定ファイルをサーバーごとに手書きで変えるのが面倒だ。」
「Dockerfileや nginx.conf のIPアドレス・ドメインをまとめて差し替えたい。」

こういった悩みを抱えているなら、envsubst コマンドがそのまま解決策になります。
envsubst は環境変数をテンプレート文字列に埋め込むだけのシンプルなコマンドですが、
設定ファイルの動的生成・CI/CD パイプライン・Docker エントリーポイントと組み合わせると
驚くほどの作業を自動化できます。

この記事では、envsubst コマンドの基本から実務でよく使うパターンまで
RHEL 9.4 / Ubuntu 24.04 LTS の実機で確認した手順で解説します。

この記事のポイント

・envsubst はテンプレートの $VAR を環境変数で一括置換するコマンド
・置換対象変数を限定する書き方で誤置換を防げる
・nginx.conf や Docker エントリーポイントとの組み合わせが実務の定番
・変数が未定義の場合は空文字に展開される点に注意

続きを読む "envsubstコマンドでシェル変数を環境変数で展開する方法|テンプレートファイルの動的生成と実務活用も"

ausearchコマンドでLinuxの監査ログを検索・分析する方法|aureportでのレポート生成と実務活用も

「auditdを設定したのに、どこで何が起きたのかログをうまく追えない」
「ausearchって何を指定すれば目的のログが出てくるの?」
「そもそもauditctlでルールを追加しないとログが残らないのでは?」

こうした疑問を持つ方は多いと思います。Linuxの監査ログ(auditd)は、セキュリティインシデントの追跡・コンプライアンス対応・権限変更の追跡など、現場で欠かせない仕組みです。しかし、「ルールの設定方法」「ログの検索方法」「レポートの作り方」をまとめて把握していないと、いざというときに使い物になりません。

この記事では、auditctlコマンドによる監査ルールの設定から、ausearchコマンドを使った監査ログの検索・分析、そして集計レポートを生成するaureportコマンドの使い方まで、一気通貫で解説します。RHEL 9 / AlmaLinux 9での動作確認済みです。

この記事のポイント

・auditctl -w でファイルやディレクトリへのアクセスを監視するルールを追加できる
・ausearch -m でイベントタイプを絞り込み、素早く原因ログを特定できる
・ausearch --start today でその日の監査ログだけを抽出できる
・aureport --failed でログイン失敗や権限エラーの集計レポートを作れる
・ausearch -i でUIDやシステムコール番号を人間が読めるテキストに変換できる

続きを読む "ausearchコマンドでLinuxの監査ログを検索・分析する方法|aureportでのレポート生成と実務活用も"

nmcliコマンドでネットワーク接続を設定する方法|静的IP・DHCP・接続追加・削除の手順も

「nmcliコマンドを打ったけど、オプションが多すぎて何をすればいいか分からない」
「静的IPを設定したいのに、変更が反映されない」

NetworkManagerをコマンドラインで操作する nmcli は、RHEL系・Ubuntu系問わず現代Linuxのネットワーク管理に欠かせないコマンドです。
ifconfigやnetstatが非推奨になった今、現場では nmcli が事実上の標準になっています。

この記事では、nmcliコマンドの基本的な使い方から、静的IP設定・DHCP切り替え・接続の追加と削除まで、実務でよく使う操作を体系的に解説します。
RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済みです。

この記事のポイント

・nmcli connection show でネットワーク接続を一覧確認できる
・静的IPはnmcli connection modifyで変更し、up/downで反映する
・接続の追加はnmcli connection add、削除はnmcli connection deleteで行う
・nmcli device status でNICの状態とIPアドレスをすぐ確認できる

続きを読む "nmcliコマンドでネットワーク接続を設定する方法|静的IP・DHCP・接続追加・削除の手順も"

blkidコマンドでブロックデバイスのUUIDとラベルを確認する方法|fstabへの応用まで

「/etc/fstab を書き換えたら、再起動後に OS が起動しなくなった」という経験はないでしょうか。
原因の多くは、デバイス名(/dev/sdb1 など)の書き間違いではなく、デバイス名そのものを使ったことにあります。

Linux では、ディスクを追加したり接続順序が変わると /dev/sda と /dev/sdb が入れ替わることがあります。
そこで登場するのが UUID(Universally Unique Identifier)です。UUID はデバイスが変わっても変わらない固有 ID で、
blkid コマンドを使うと簡単に確認できます。

この記事では、blkid コマンドの基本的な使い方から、UUID・PARTUUID・ラベルの違い、/etc/fstab への安全な応用手順まで解説します。
RHEL 9 / Rocky Linux 9 / Ubuntu 24.04 LTS 環境で動作確認済みです。

この記事のポイント

・blkid コマンドでデバイスの UUID とファイルシステムタイプを確認できる
・UUID を /etc/fstab に書けばデバイス名変更による起動障害を防げる
・-U/-L オプションで UUID・ラベルからデバイスパスを逆引きできる
・lsblk -f と組み合わせると構成全体を一覧で把握できる

続きを読む "blkidコマンドでブロックデバイスのUUIDとラベルを確認する方法|fstabへの応用まで"

inotifywaitコマンドでファイル変更をリアルタイム監視する方法|スクリプト自動化と実務活用も

「設定ファイルを変更したら自動でサービスを再起動したい」
「ログファイルが更新されたタイミングで処理を走らせたい」
サーバー運用をしていると、ファイルの変更を検知して自動で何かしたい場面は頻繁にあります。

この記事では、inotifywait コマンドを使ってファイルやディレクトリの変更をリアルタイムで監視する方法を解説します。
基本的な書式から、シェルスクリプトとの組み合わせ、実務でよく使う自動化パターンまでカバーします。

この記事のポイント

・inotifywait でファイル変更・作成・削除をリアルタイムで検知できる
・-e オプションでイベント種別を絞り込み、誤検知を防ぐ
・while ループと組み合わせて自動処理スクリプトを書ける
・inotify-tools パッケージのインストールで即使える(RHEL9/Ubuntu24.04対応)

続きを読む "inotifywaitコマンドでファイル変更をリアルタイム監視する方法|スクリプト自動化と実務活用も"

timeoutコマンドで制限時間付きでコマンドを実行する方法|ハングアップ対策とシェルスクリプト活用も

「コマンドを実行したら、いつまで経っても終わらない」
サーバー運用をしていると、ネットワーク遅延やデッドロックでコマンドがハングアップするケースは珍しくありません。

この記事では、timeout コマンドを使って制限時間付きでコマンドを実行する方法を解説します。
シェルスクリプトでのタイムアウト処理、終了コードの読み方、実務でよく使う組み合わせパターンまでカバーします。

この記事のポイント

・timeout コマンドで指定秒数を超えたプロセスを自動終了できる
・終了コード 124 で「タイムアウトによる終了」を判定できる
・--kill-after で SIGTERM の後に SIGKILL を送るダブル保険が設定できる
・cron ジョブや API 呼び出しのハングアップ対策として積極的に使う

続きを読む "timeoutコマンドで制限時間付きでコマンドを実行する方法|ハングアップ対策とシェルスクリプト活用も"

trapコマンドでbashスクリプトのシグナルを捕捉・処理する方法|一時ファイル削除やエラー終了処理の実践例も

「スクリプトをCtrl+Cで止めたら、一時ファイルが残ったままになってしまった…」
そういった経験をしたサーバー管理者は多いはずです。

bashスクリプトで本番運用をしていると、途中終了・割り込み・エラー時のクリーンアップは避けて通れません。一時ファイルやロックファイルを作るスクリプトが不意に中断されると、次回実行時に「古いロックファイルが残っている」「tmpディレクトリが膨らんでいる」という問題が起きます。

この記事では、bashの組み込みコマンド trap を使ったシグナルの捕捉と後処理の方法を解説します。
一時ファイルの自動削除、エラー時の強制終了処理、複数シグナルへの対応まで、RHEL 9.4 / Ubuntu 24.04 LTS で動作確認した手順でお伝えします。

この記事のポイント

・trap はbash組み込みコマンドでシグナル受信時に任意の処理を実行できる
・trap "rm -f /tmp/$$.lock" EXIT で終了時に一時ファイルを自動削除できる
・INT/TERM/ERRの3シグナルを押さえれば実務の9割のケースに対応できる
・trap '' SIGINT でシグナルを無視し、重要処理を割り込みから守れる

続きを読む "trapコマンドでbashスクリプトのシグナルを捕捉・処理する方法|一時ファイル削除やエラー終了処理の実践例も"

getoptsコマンドでbashスクリプトの引数を処理する方法|オプション解析と実践例も

「シェルスクリプトにオプションを渡したいけど、$1・$2で受け取ると順番が変わったら壊れる…」
そういう悩みを抱えているサーバー管理者は多いです。

bashスクリプトを書き始めると、最初は位置パラメータ($1、$2…)で引数を受け取ります。しかしスクリプトが育ってきて「-v(詳細表示)」「-o 出力先」「-n(ドライラン)」といったオプションが増えてくると、位置パラメータでの管理はすぐに破綻します。

この記事では、bashの組み込みコマンド getopts を使ったオプション解析の方法を解説します。
基本的な1文字オプションの受け取り方から、引数付きオプション、エラー処理、実務で使えるスクリプト例まで、RHEL 9.4 / Ubuntu 24.04 LTS で動作確認した手順でお伝えします。

この記事のポイント

・getopts は bash 組み込みのオプション解析コマンドで外部コマンド不要
・while getopts "ab:c" opt; do case $opt in で1文字オプションを処理できる
・コロン付き(b:)は引数ありオプション、$OPTARG で値を取得する
・先頭コロン(":ab:")でエラーを自前処理してサイレントモードにできる

続きを読む "getoptsコマンドでbashスクリプトの引数を処理する方法|オプション解析と実践例も"

sarコマンドでシステムパフォーマンスを時系列で確認する方法|CPU・メモリ・ディスク統計の読み方と活用も

「サーバーが遅い」と言われたが、今は正常に動いている。あの瞬間、何が起きていたのか調べる手段がない。
ログを見ても数値が残っていない。こんな悲しい思いをしたことはないでしょうか。

sarコマンドを使えば、CPU・メモリ・ディスク・ネットワークの負荷統計を過去に遡って確認できます。
RHEL 9 / Rocky Linux 9 / AlmaLinux 9 / Ubuntu 24.04 LTS で動作確認済みです。

この記事では、sarコマンドの基本的な使い方から、実務で役立つ過去データの読み方、コアごとのCPU分析、スワップ・ロードアベレージの確認、CSV出力による分析活用、よくあるトラブルの対処法まで解説します。

この記事のポイント

・ sar -u/-r/-d/-S/-q で CPU・メモリ・ディスク・スワップ・ロードを時系列で確認できる
・ sar -f /var/log/sa/saXX で過去の統計データをさかのぼって参照できる
・ sysstatパッケージのインストールとcron設定が前提条件(Ubuntu は ENABLED="true" が別途必要)
・ sadf -d でCSV出力してExcelでトレンド分析する使い方も実務で便利
・ -P ALL オプションでコアごとのCPU偏りも確認できる

続きを読む "sarコマンドでシステムパフォーマンスを時系列で確認する方法|CPU・メモリ・ディスク統計の読み方と活用も"

nohupコマンドでSSH切断後もコマンドを実行し続ける方法|バックグラウンド実行とログ保存の実践例も

「長時間かかる処理を実行中にSSHが切れてしまった」——そんな経験を持つサーバー管理者は少なくないでしょう。
SSH切断と同時にコマンドが強制終了してしまうのは、端末を閉じたときにHUPシグナル(ハングアップシグナル)がプロセスに送られるためです。

この記事では、nohup コマンドの使い方を解説します。SSHが切断されても処理を継続させる基本手順から、バックグラウンド実行の組み合わせ、出力ログの管理まで、実務で即使える内容を網羅します。

この記事のポイント

・nohup コマンドで SSH 切断後もプロセスを継続実行できる
・nohup コマンド & でバックグラウンド実行と組み合わせるのが基本形
・出力は nohup.out に保存され、リダイレクトで任意ファイルに変更できる
・screen/tmux との違いと使い分けを押さえておくと現場で迷わない

続きを読む "nohupコマンドでSSH切断後もコマンドを実行し続ける方法|バックグラウンド実行とログ保存の実践例も"

typeコマンドでシェル組み込みと外部コマンドを区別する方法|whichとの違いやalias確認も

「このコマンドはどこにあるんだろう?」と思って which を打ったら何も出てこない——そんな経験はないでしょうか。
実は which が見つけられないコマンドが存在します。シェル組み込みコマンド(built-in)と呼ばれる種類です。

この記事では、type コマンドの使い方を解説します。コマンドがシェル組み込みなのか、外部バイナリなのか、エイリアスなのかを一発で判別できるようになります。シェルスクリプトのデバッグや、予期しない動作の原因調査にも役立ちます。

この記事のポイント

・type コマンドでシェル組み込み・外部コマンド・alias を即座に判別できる
・which が何も返さない場合は type で確認するのが正しい手順
・type -a で同名コマンドの全候補をまとめて確認できる
・スクリプトのデバッグや意図しない動作の原因特定に実務で頻繁に使う

続きを読む "typeコマンドでシェル組み込みと外部コマンドを区別する方法|whichとの違いやalias確認も"

sysctlコマンドでLinuxのカーネルパラメータを確認・変更する方法|永続化とセキュリティ設定も

「sysctl -w で設定したのに再起動したら元に戻ってしまった」「カーネルパラメータをどこで変えればいいか分からない」——現場で必ずぶつかる疑問です。

sysctl コマンドはLinuxのカーネルパラメータをリアルタイムで確認・変更できるコマンドです。ネットワークのバッファサイズやTCPの挙動、セキュリティ設定まで、OSの動作を細かく制御できます。ただし、正しく永続化しないと再起動のたびに設定がリセットされるという落とし穴があります。

この記事では、sysctl コマンドの基本的な使い方から、/etc/sysctl.conf と /etc/sysctl.d/ を使った永続化の方法、セキュリティ強化のための実践設定まで解説します。実行環境はRHEL 9.4 / Rocky Linux 9 / Ubuntu 24.04 LTSで動作確認済みです。

この記事のポイント

・sysctl -a で現在のカーネルパラメータを全件確認できる
・一時変更は sysctl -w、永続化は /etc/sysctl.d/ への記述が正解
・sysctl --system で設定ファイルを即時反映できる
・IPフォワーディングやICMPリダイレクト無効化などセキュリティ設定は必須

続きを読む "sysctlコマンドでLinuxのカーネルパラメータを確認・変更する方法|永続化とセキュリティ設定も"

hostnamectlコマンドでLinuxのホスト名を変更する方法|static・transient・prettyの使い分けも

「サーバーを構築したあとでホスト名を変えたいけれど、hostnameコマンドで変更しても再起動すると元に戻ってしまう」

この悩み、現場でもよくあります。原因は、hostnameコマンドで変更できるのが一時的な(transient)ホスト名だけで、恒久的な(static)ホスト名は/etc/hostnameを書き換える必要があるからです。

この記事では、systemdが標準になったRHEL 9系・Ubuntu 24.04 LTSで動作確認済みの hostnamectl コマンドの使い方を解説します。static・transient・prettyの3種類のホスト名の違いから、恒久的な変更手順、システム情報の確認、トラブル対処まで実務で必要な範囲を網羅します。

この記事のポイント

・hostnamectl set-hostname で再起動後も残るホスト名を設定できる
・static・transient・prettyの3種類は用途ごとに使い分ける
・/etc/hostsの更新を忘れるとsudoコマンドが遅くなる落とし穴
・hostnamectl status でOS・カーネル・仮想化まで一気に確認できる

続きを読む "hostnamectlコマンドでLinuxのホスト名を変更する方法|static・transient・prettyの使い分けも"

statコマンドでファイルの詳細情報を確認する方法|タイムスタンプ・inode・パーミッションの読み方も

「lsコマンドだけでは、ファイルが本当にいつ変更されたのか分からない」
「アクセス権が数値で表示されると、chmodの755と644のどちらか一目で判別できない」

そんなときに頼りになるのがstatコマンドです。ファイルサイズ・パーミッション(8進数と記号の両方)・タイムスタンプ3種類(Access / Modify / Change)・inode番号までをワンコマンドで表示してくれる、ファイル調査の定番ツールです。

この記事では、20年以上Linuxサーバーを運用してきた経験をもとに、statコマンドの基本的な使い方から、トラブル調査で必須となるタイムスタンプの読み方、inode番号でハードリンクを追跡するテクニックまで、実務で役立つ形でまとめて解説します。RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済みです。

この記事のポイント

・stat ファイル名 でパーミッション・サイズ・3種のタイムスタンプを確認できる
・Access/Modify/Changeの違いを理解すれば障害調査が速くなる
・stat -c "%a %n" 等のフォーマット指定でスクリプト連携ができる
・inode番号を確認してハードリンクの同一性を判別できる

続きを読む "statコマンドでファイルの詳細情報を確認する方法|タイムスタンプ・inode・パーミッションの読み方も"

duコマンドでディレクトリ・ファイルの使用量を調べる方法|--max-depthやsortとの組み合わせも

「サーバーのディスクが逼迫しているが、どのディレクトリが容量を食っているのか分からない…」
こういう場面で真っ先に使うのが du コマンドです。

この記事では、du コマンド(disk usage)の実践的な使い方を、現場で本当に使うオプションに絞って解説します。
単に一覧を出すだけでなく、--max-depth で階層を絞る、sort と組み合わせて「容量の大きい順」に並べる、df との使い分け、容量が合わない時の原因切り分けまで、20年以上Linuxサーバーを運用してきた実務目線でまとめました。

この記事のポイント

・du -sh * で現在ディレクトリ直下の使用量を一覧表示できる
・du -h --max-depth=1 /var で階層を1段に絞って見やすくする
・du -ah / | sort -rh | head -20 で容量の大きい順トップ20を特定
・df との差が出る時はオープン中削除ファイルをlsofで探す

続きを読む "duコマンドでディレクトリ・ファイルの使用量を調べる方法|--max-depthやsortとの組み合わせも"

ethtoolコマンドでNICのリンク状態・速度・デュプレックスを確認する方法|オートネゴシエーションや統計情報も

「サーバーの通信が異様に遅い、でも ping は通る…NICはちゃんと1Gbpsでリンクしているのか?」
ネットワークが原因不明で遅い時、ip コマンドだけでは速度やデュプレックスまでは見えません。リンクは上がっていても、100Mbps half-duplex に落ちていて性能が出ない、というケースは現場で実際に遭遇します。

この記事では、Linuxの ethtool コマンドを使って NIC(Network Interface Card:ネットワークインターフェースカード)のリンク状態・速度・デュプレックス・オートネゴシエーション・統計情報・ドライバ情報を確認する方法を、実際の出力例とトラブルシュート手順を交えて解説します。
RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済みです。

この記事のポイント

・ethtool ens33 でリンク速度・デュプレックス・接続状態を一発確認できる
・ethtool -i ens33 でドライバ名とバージョンを取得できる
・ethtool -S ens33 で送受信エラー・ドロップ統計を確認できる
・速度が出ない時はオートネゴシエーション失敗を最初に疑う

続きを読む "ethtoolコマンドでNICのリンク状態・速度・デュプレックスを確認する方法|オートネゴシエーションや統計情報も"

chageコマンドでパスワード有効期限を管理する方法|アカウント無効化や強制変更の設定も

「監査で『ユーザーのパスワード有効期限を90日に設定してください』と言われたが、どう設定すればいいのか分からない」「退職者のアカウントを物理削除せずに無効化したい」

こうした場面で登場するのがchage(change age)コマンドです。passwdコマンドでは扱いきれない、パスワードの有効期限・非活動日数・アカウント失効日といった時間軸の管理をすべて担います。

この記事では、chageコマンドの基本的な使い方から、監査対応・PCI-DSS準拠を意識した有効期限ポリシーの設計、退職者対応のベストプラクティスまで、現場で役立つ知識を体系的に解説します。

動作確認環境:RHEL 9.4 / Rocky Linux 9.4 / Ubuntu 24.04 LTS

この記事のポイント

・chage -l ユーザー名 で現在の有効期限設定を一覧表示できる
・chage -M 日数 で最大有効期限、-m で最短変更間隔を設定する
・chage -E YYYY-MM-DD でアカウント失効日を指定し退職者対応が可能
・設定は /etc/shadow の第3~第8フィールドに保存される

続きを読む "chageコマンドでパスワード有効期限を管理する方法|アカウント無効化や強制変更の設定も"

smartctlコマンドでディスクの健康状態を確認する方法|SMART属性の読み方とディスク故障の予兆検知も

「急にサーバーが遅くなった」「dmesgにI/Oエラーが出はじめた」——
そんな時、ディスクがいよいよ壊れる前触れかどうかを判断できていますか?

smartctlコマンドを使えば、HDDやSSDに内蔵されたSMART(Self-Monitoring, Analysis and Reporting Technology)情報を読み出して、ディスクの健康状態と故障の予兆を定量的に把握できます。
再起動やリプレースに踏み切る前に、まずこの1コマンドで現状を可視化するのが現場の定石です。

この記事では、RHEL 9.4 / Ubuntu 24.04 LTSで動作確認した上で、smartctlコマンドの実践的な使い方を解説します。
属性値の読み方、セルフテストの実行、SSD寿命の見積もり、cronでの定期監視まで、20年以上サーバーを運用してきた経験に基づいて現場で使う場面を一通りカバーします。

この記事のポイント

・smartctl -a /dev/sda で全属性とエラーログを一発取得できる
・Reallocated_Sector_Ctや Current_Pending_Sectorが増えたら交換準備
・smartctl -t short/long でセルフテストを実行できる
・SSDはWear_Levelingと総書き込み量で寿命を見積もる

続きを読む "smartctlコマンドでディスクの健康状態を確認する方法|SMART属性の読み方とディスク故障の予兆検知も"

lvextendコマンドでLVMボリュームをオンライン拡張する方法|xfs_growfs・resize2fsの使い分けも

「ディスクが満杯です、と監視アラートが鳴ったけど、サーバーは止められない」
こんな状況、深夜の障害対応で何度も経験しました。

この記事では、LVM(Logical Volume Manager)の lvextend コマンドを使って、サーバーを停止せずに論理ボリュームを拡張する手順を解説します。
xfs_growfs と resize2fs の使い分け、--resizefs オプションでの一括拡張、ボリュームグループ(VG)に空き容量がない場合の対処まで、20年以上のサーバー運用で培ったノウハウを含めて網羅します。
動作確認環境:RHEL 9.4 / Rocky Linux 9.4 / Ubuntu 24.04 LTS。

この記事のポイント

・lvextend -L +10G で論理ボリュームをオンライン拡張できる
・XFSは xfs_growfs、ext4は resize2fs でファイルシステムを追従
・--resizefs オプションで lvextend と同時にFS拡張も可能
・VGに空きがない場合は pvcreate と vgextend で物理ボリュームを追加

続きを読む "lvextendコマンドでLVMボリュームをオンライン拡張する方法|xfs_growfs・resize2fsの使い分けも"

fuserコマンドで使用中のファイル・ポートを占有するプロセスを特定する方法|umount時のtarget is busy解消

「アンマウントしようとしたら target is busy と出た」「どのプロセスが/mntを掴んでいるのか分からない」——
そんな場面で、いきなりサーバーを再起動していませんか?

fuserコマンドを使えば、ファイルやディレクトリ、さらにはTCP/UDPポートを占有しているプロセスを一発で特定できます。
必要ならそのプロセスにシグナルを送って終了させることも可能です。

この記事では、RHEL 9.4 / Ubuntu 24.04 LTSで動作確認した上で、fuserコマンドの実践的な使い方を解説します。
umount時のbusyエラー解消、ポート占有プロセスの特定、安全なプロセス終了まで、現場で使う場面を一通りカバーします。

この記事のポイント

・fuser /mnt でマウントポイントを掴むプロセスを特定できる
・fuser -v でユーザー・コマンド名付きの詳細表示になる
・fuser -k -TERM /mnt でプロセスにSIGTERMを送って終了できる
・fuser 80/tcp でポート占有プロセスを特定できる(要root)

続きを読む "fuserコマンドで使用中のファイル・ポートを占有するプロセスを特定する方法|umount時のtarget is busy解消"

nmapコマンドでポートスキャン・ネットワーク診断を行う方法|-sSや-Aの使い方とセキュリティ活用も

「サーバーで開いているポートを外部から一気に確認したい」
「ファイアウォール越しに、どのサービスが外から見えているのか知りたい」
Linuxサーバーの運用やセキュリティ監査でこうした場面に遭遇したら、真っ先に使うべきコマンドが nmap(エヌマップ/Network Mapper)です。

この記事では、nmap コマンドの基本的な使い方から、-sS(SYNスキャン)・-sV(バージョン検出)・-A(総合スキャン)といった現場で頻出するオプション、ファイアウォールの動作確認やセキュリティ監査での実践的な使い分けまで、RHEL 9系・Ubuntu 24.04 LTSで動作確認した内容をベースに解説します。

この記事のポイント

nmap -p 1-1000 192.168.1.100 で外部から開放ポートを確認できる
-sV でサービス名とバージョン、-A でOS推定まで取得できる
ss(内部)と nmap(外部)の両面で確認するのが鉄則
・自分の管理下にないホストへのスキャンは違法になりうるので要注意

続きを読む "nmapコマンドでポートスキャン・ネットワーク診断を行う方法|-sSや-Aの使い方とセキュリティ活用も"

setfaclコマンドでLinuxのACL権限を設定する方法|ユーザー単位の細かいアクセス制御やgetfaclの確認も

「特定のユーザーだけに、このディレクトリへの書き込みを許可したい」
「chmodでは所有者・グループ・その他の3区分しか指定できなくて困っている」
現場のLinuxサーバー運用では、こうした細かい権限制御を求められる場面が本当に多いです。

この記事では、Linuxのアクセス制御リスト(ACL:Access Control List)をsetfaclコマンドとgetfaclコマンドで設定・確認する方法を、実行例とトラブルシュートを交えて解説します。
RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済みの手順です。

この記事のポイント

・setfacl -m u:ユーザー名:rwx ファイル で個別ユーザーにACL権限を付与できる
・getfacl ファイル でACLの設定状況を確認できる
・ls -l の末尾の「+」マークがACL付きの目印
・デフォルトACL(d:)を使えばディレクトリ配下の新規ファイルにも権限が自動継承される

続きを読む "setfaclコマンドでLinuxのACL権限を設定する方法|ユーザー単位の細かいアクセス制御やgetfaclの確認も"

ulimitコマンドでリソース制限を確認・設定する方法|open filesの上限変更や永続化も

「サーバーで突然『Too many open files』が出て、Apacheが落ちた」
「ulimit -n 65535 を設定したのに、再ログインしたら元に戻る」
こういう相談は、Linuxサーバーを運用していると避けて通れないトラブルです。

この記事では、Linuxのリソース制限を司る ulimit コマンドの実践的な使い方を解説します。現在値の確認から、open files(ファイルディスクリプタ)の上限変更、systemd時代の正しい永続化手順、そしてよくあるトラブルの切り分け方まで、現場で必要な知識を一通りカバーします。動作確認はRHEL 9.4 / AlmaLinux 9.4 / Ubuntu 24.04 LTSで行っています。

この記事のポイント

・ulimit -a で現在のリソース制限を一覧表示できる
・open filesは「ulimit -n」で変更、恒久化は limits.conf か systemd 側で設定
・ソフトリミット/ハードリミットの違いを理解すると制限設計が楽になる
・Too many open files の原因調査は lsof とセットで行うのが鉄則

続きを読む "ulimitコマンドでリソース制限を確認・設定する方法|open filesの上限変更や永続化も"

mtrコマンドでネットワーク経路と品質を確認する方法|pingとtracerouteを統合した障害切り分けも

「サーバーへの接続が時々遅くなるけど、どの経路で詰まっているのか分からない」
「tracerouteで経路は見えるが、パケットロスや遅延までは一目で分からない」
「ping と traceroute を両方打ちながら、どの区間で劣化しているのかを手早く切り分けたい」

この記事では、mtr コマンドを使ってネットワーク経路とパケットロス・遅延を同時に確認する方法を解説します。RHEL 9.4 / Ubuntu 24.04 LTS で動作確認済みです。インストールから対話モード・レポートモード・実務での障害切り分けまで、現場でそのまま使える形で紹介します。

この記事のポイント

・mtr は ping と traceroute を統合したネットワーク診断ツール
・mtr -rwc 10 ホスト名 でレポート形式の出力が得られる
・Loss% と Avg を見て劣化している区間を特定する
・ICMP がフィルタされる経路では -T(TCP)や -u(UDP)に切り替える

続きを読む "mtrコマンドでネットワーク経路と品質を確認する方法|pingとtracerouteを統合した障害切り分けも"

htopコマンドでプロセスとリソースをインタラクティブに監視する方法|topとの違いや実務活用も

「サーバーの負荷が高いのは分かるが、どのプロセスが原因か top だと読みづらい」
topコマンドの出力は情報量こそ豊富なものの、数値がずらりと並ぶだけでCPUやメモリの偏りを瞬時に掴みにくい場面があります。

この記事では、htopコマンドの実践的な使い方を、topとの違い・色分けの読み方・プロセスの強制終了・実務でのトラブルシュートまで解説します。RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済みの内容で、20年以上サーバーを運用してきた現場感覚でまとめました。

この記事のポイント

・htopはtopの上位互換、カラー表示と矢印キー操作で直感的に使える
・F9でシグナル送信、F6でソート基準変更が即時にできる
・treeビュー(F5)で親子関係を追えば暴走プロセスの根元が分かる
・RHEL系はEPELリポジトリ、Ubuntu系はapt1発でインストール可能

続きを読む "htopコマンドでプロセスとリソースをインタラクティブに監視する方法|topとの違いや実務活用も"

firewall-cmdコマンドでポートを開放・管理する方法|ゾーン・サービス・永続化の使い分け

「firewall-cmdでポートを開けたのに、サーバーを再起動したら設定が消えた」
「RHEL/AlmaLinux系のファイアウォール設定をどう確認・変更すればいいのか分からない」
RHEL 9.4 / AlmaLinux 9.4 / Rocky Linux 9.4 で動作確認済みの解説です。

この記事では、firewall-cmd コマンドの基本的な使い方から、ポート開放・サービス許可・ゾーンの切り替え・永続化(--permanent)のルール、そして「設定したのにアクセスできない」時のトラブルシュートまで、現場で使える手順をまとめて解説します。

この記事のポイント

・firewall-cmd --list-all で現在のゾーン設定を一括確認できる
・ポート開放は --add-port=8080/tcp --permanent で永続化する
・--permanent を付けた変更は --reload で反映する
・ゾーンの概念を理解すれば複数NICのサーバーも安全に扱える

続きを読む "firewall-cmdコマンドでポートを開放・管理する方法|ゾーン・サービス・永続化の使い分け"

teeコマンドで標準出力とファイルに同時出力する方法|パイプと組み合わせたログ保存の実践例も

「コマンドの実行結果を画面で確認しながら、同時にファイルにも残したい」
「パイプで処理をつなげているけど、途中経過を確認する方法がわからない」
サーバーの運用や構築作業で、こうした場面に出くわすことは日常的にあります。

この記事では、tee コマンドの基本的な使い方から、-a オプションによる追記、パイプラインの途中でデータを分岐させるテクニック、sudo との組み合わせ、そしてログ保存の実務パターンまで解説します。
RHEL 9.4 / Ubuntu 24.04 LTS で動作確認済みです。

この記事のポイント

・tee は標準入力を標準出力とファイルに同時出力するコマンド
・tee -a でファイルに追記、-a なしだと上書きされる
・sudo tee でroot権限が必要なファイルへの書き込みができる
・パイプラインの途中に挟んで処理の中間結果を保存できる

続きを読む "teeコマンドで標準出力とファイルに同時出力する方法|パイプと組み合わせたログ保存の実践例も"

sudoコマンドでroot権限を安全に実行する方法|visudoの設定からログ確認まで

「sudoでコマンドを実行するとPermission deniedになる」
「visudoで/etc/sudoersを編集したいけど、書き方がよくわからない」
Linuxサーバーを管理していると、一般ユーザーで作業中にroot権限が必要になる場面は頻繁にあります。そのたびに su でrootに切り替えるのはセキュリティ上のリスクが大きく、現場では sudo を使うのが鉄則です。

この記事では、sudo コマンド の実践的な使い方を解説します。
基本的な実行方法から visudo による /etc/sudoers の設定、ログ確認やトラブルシュートまで、実務で必要な操作をすべてカバーします。動作確認環境は RHEL 9.4 / Rocky Linux 9.4 です。

この記事のポイント

・sudo コマンド名 でroot権限のコマンドを安全に実行できる
・/etc/sudoers の編集は必ず visudo を使う
・sudo -l で自分に許可されたコマンドを確認できる
・sudo の実行ログは /var/log/secure で追跡できる

続きを読む "sudoコマンドでroot権限を安全に実行する方法|visudoの設定からログ確認まで"

xargsの並列処理-Pで一括処理を高速化する|-n・-I・-d・-rの実務テクニック

「xargsで数万ファイルを処理しているが時間がかかりすぎる」 「-P オプションが速くなると聞いたが、いくつ並列にすればいいか分からない」 数千〜数万件規模のファイル処理を1台のサーバーで回す現場では、xargsを「ただ繋ぐだけ」で終わらせるか、-P-n-I を組み合わせて性能を引き出すかで実行時間が大きく変わります。 この記事では、xargsの高度なオプション(-P 並列処理、-n バッチサイズ、-I 引数挿入、-d/-0 区切り文字制御、--max-procs-r 空入力スキップ)を、現場で詰まりやすいポイントとあわせて解説します。 findとの基本的な組み合わせよりも一段深い、xargs単体としての高速化・安全化テクニックに絞った内容です。 RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済みです。

この記事のポイント

-P N でN並列実行できる、CPUコア数(nproc)と同数が出発点
-n M で1プロセスあたりの引数数を制御し、起動コストと並列度を最適化
-I {} で挿入位置を指定、-0/-d で区切り文字をstdin安全に扱う
-r--no-run-if-empty)で空入力時の意図せぬ実行を防ぐ
・findとの基本的な組み合わせ(find | xargs grep 等)は別記事で扱っています

続きを読む "xargsの並列処理-Pで一括処理を高速化する|-n・-I・-d・-rの実務テクニック"

ssh-keygenコマンドでSSH公開鍵認証を設定する方法|鍵の生成からauthorized_keys設定まで

「パスワードなしでSSHログインしたい」「毎回パスワードを入力するのが面倒」と感じているなら、SSH公開鍵認証を設定する方法を知っておく必要があります。
公開鍵認証はセキュリティ面でもパスワード認証より格段に強固で、現場のLinuxサーバーではほぼ標準の設定です。

この記事では、ssh-keygen コマンドで鍵ペアを生成する基本手順から、サーバーへの公開鍵登録(authorized_keys)、パスフレーズの扱い、よくあるエラーの対処まで、実務で使えるレベルで解説します。
動作確認環境:RHEL 9.4 / Ubuntu 24.04 LTS / Rocky Linux 9.3

この記事のポイント

・ssh-keygen -t ed25519 で最新推奨アルゴリズムの鍵ペアを生成できる
・公開鍵は ssh-copy-id またはauthorized_keysに手動追記で登録する
・パーミッション設定(700/600)が間違うとPermission deniedになる
・パスフレーズ+ssh-agentで安全性と利便性を両立できる

続きを読む "ssh-keygenコマンドでSSH公開鍵認証を設定する方法|鍵の生成からauthorized_keys設定まで"

tcpdumpコマンドでパケットをキャプチャ・解析する方法|フィルタ指定・ファイル保存・実務活用も

「サーバー間の通信が届いているか確認したいのに、pingだと詳細が分からない」
「接続が確立されているはずなのに、データがやり取りされていない原因を突き止めたい...」
ネットワークトラブルの調査で「パケットレベルで何が起きているか」を見たい場面は、現場では頻繁にあります。

この記事では、tcpdump コマンド の実践的な使い方を解説します。
基本的なパケットキャプチャの方法、ホスト・ポート・プロトコルを絞り込むフィルタ指定、.pcap ファイルへの保存とWiresharkでの分析連携、現場でよくある調査パターンまで、RHEL 9.4 / Ubuntu 24.04 LTS の環境で動作確認した内容をまとめました。

この記事のポイント

・tcpdump -i eth0 で指定インターフェースのパケットをキャプチャできる
・host/port/proto フィルタを組み合わせて必要な通信だけに絞り込める
・-w でファイル保存し、Wiresharkに渡して詳細分析できる
・実務では「-n -s0」を付けるのが鉄則。DNS逆引きの遅延と断片化を防ぐ

続きを読む "tcpdumpコマンドでパケットをキャプチャ・解析する方法|フィルタ指定・ファイル保存・実務活用も"

opensslコマンドでSSL/TLS証明書を確認する方法|有効期限・暗号スイート・接続テストも

「opensslコマンドって何ができるの?」
「SSL証明書の有効期限を確認したいけど、どこを見ればいいかわからない...」
Webサーバーを運用していると、証明書の期限切れや暗号スイートの設定ミスが原因でサービスが停止するトラブルは珍しくありません。

この記事では、openssl コマンド の実践的な使い方を解説します。
証明書の有効期限確認・リモートサーバーへの接続テスト・自己署名証明書の作成まで、現場で頻出する操作をカバーします。動作確認環境は RHEL 9.4 / Ubuntu 24.04 LTS です。

この記事のポイント

・openssl s_client でリモートサーバーのSSL/TLS接続状態を確認できる
・openssl x509 -dates で証明書の有効期限を即座に表示できる
・暗号スイートやプロトコルバージョンの確認も openssl s_client 一本で対応
・自己署名証明書の作成は openssl req -x509 で完結する

続きを読む "opensslコマンドでSSL/TLS証明書を確認する方法|有効期限・暗号スイート・接続テストも"

tmuxコマンドでターミナルを分割・管理する方法|セッション維持やペイン操作の実践例も

「SSHでサーバーに接続して作業中に、ネットワークが切れて全部やり直しになった」
「長時間かかるビルドやログ監視を、ターミナルを閉じても裏で動かし続けたい」
サーバー運用の現場でこうした経験があるなら、tmux(ティーマックス/Terminal Multiplexer)を導入する価値があります。

この記事では、tmux の基本的な使い方から、セッション管理、ウィンドウとペインの分割操作、SSH切断後のプロセス維持、そして実務で役立つ応用テクニックまで、現場で必要になるノウハウをまとめて解説します。
RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済みです。

この記事のポイント

・tmux はSSH切断後もプロセスを維持できる
・セッション・ウィンドウ・ペインの3階層で管理する
・Ctrl+b がすべての操作の起点になるプレフィックスキー
・screenより高機能で現在の主流ターミナルマルチプレクサ

続きを読む "tmuxコマンドでターミナルを分割・管理する方法|セッション維持やペイン操作の実践例も"

ncコマンドでネットワーク接続をテストする方法|ポート確認やファイル転送の実践例も

「サーバーの特定のポートに接続できるか確認したいが、telnetが入っていない」
「ファイアウォールの設定変更後に、本当にポートが通るのか手軽にテストしたい」
ネットワーク接続の確認やデバッグには、nc(netcat)コマンドが最適です。

この記事では、nc コマンドの基本的な使い方から、ポートの疎通確認、ポートスキャン、ファイル転送、簡易サーバーの立ち上げ、そしてトラブルシューティングでの活用まで解説します。
RHEL 9.4 / Rocky Linux 9.4 / Ubuntu 24.04 LTS で動作確認済みです。

この記事のポイント

・nc -zv ホスト ポート で接続テストができる
・-w でタイムアウト秒数を指定し応答なしを回避できる
・nc -l で簡易サーバーを立ててファイル転送もできる
・telnetの代替としてファイアウォール検証に最適

続きを読む "ncコマンドでネットワーク接続をテストする方法|ポート確認やファイル転送の実践例も"

awkコマンドでテキストを加工する方法|列の抽出・集計やログ解析の実践例も

「ログファイルから特定の列だけを抜き出したい」
「アクセスログのIPアドレスごとのリクエスト数を集計したいけど、手作業では限界がある」
Linuxサーバーの運用や障害対応でこうした場面に遭遇するのは日常茶飯事です。

この記事では、awk コマンドの基本的な使い方から、列(フィールド)の抽出、条件による絞り込み、集計処理、そしてアクセスログ解析の実務例まで、現場で必要になるノウハウをまとめて解説します。
RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済みです。

この記事のポイント

・awk '{print $1}' でログの特定列を一発で抽出できる
・条件指定やBEGIN/ENDブロックで集計処理も可能
・アクセスログのIP別集計やエラー抽出など実務例を網羅
・sedとの使い分けは「列操作ならawk、置換ならsed」

続きを読む "awkコマンドでテキストを加工する方法|列の抽出・集計やログ解析の実践例も"

straceコマンドでプロセスのシステムコールを追跡する方法|Permission deniedの原因特定やデバッグも

「プロセスが起動しない原因を調べたいが、ログにも何も残っていない」
「Permission deniedが出ているのに、どのファイルへのアクセスが拒否されているのかわからない」
プロセスの内部動作を追跡して原因を特定するには、strace(エストレース)コマンドを使います。

この記事では、strace コマンドの基本的な使い方から、プロセスのシステムコール追跡、ファイルアクセスの調査、ネットワーク通信の確認、そして実務でのトラブルシューティング手順まで解説します。
RHEL 9.4 / Rocky Linux 9.4 / Ubuntu 24.04 LTS で動作確認済みです。

この記事のポイント

・strace コマンド名 でシステムコールをリアルタイム追跡できる
・-e trace=open,read でファイル操作だけに絞り込める
・-p PID で実行中のプロセスにアタッチして調査できる
・Permission deniedの原因ファイルを特定するのに最適

続きを読む "straceコマンドでプロセスのシステムコールを追跡する方法|Permission deniedの原因特定やデバッグも"

ddコマンドでディスクイメージを作成・書き込みする方法|bs・countの指定やUSBブート作成も

「ディスクの中身を丸ごとバックアップしたいけど、cpやtarでは無理そうだ」
「ISOイメージをUSBメモリに書き込んでブータブルUSBを作りたいが、やり方がわからない」
Linuxでディスクやパーティションをブロック単位で丸ごとコピーするには、dd(ディーディー)コマンドを使います。

この記事では、dd コマンドの基本構文から、ディスクイメージの作成・復元、ISOイメージのUSB書き込み、進捗表示の方法、そして実務で事故を防ぐための注意点まで解説します。
RHEL 9.4 / Rocky Linux 9.4 / Ubuntu 24.04 LTS で動作確認済みです。

この記事のポイント

・dd if=入力 of=出力 bs=サイズ でディスクを丸ごとコピーできる
・ISOイメージのUSB書き込みはdd一発で完了する
・if/ofの指定ミスはデータ全損に直結するため必ず確認する
・status=progressで進捗をリアルタイム表示できる

続きを読む "ddコマンドでディスクイメージを作成・書き込みする方法|bs・countの指定やUSBブート作成も"

screenコマンドでSSH切断後もプロセスを実行し続ける方法|デタッチ・アタッチの使い方も

「SSH接続で作業中に回線が切れて、実行途中の処理が全部消えてしまった」
サーバー運用の現場で、こうした経験は一度はあるはずです。夜間バッチやログ集計、大量データのインポートなど、時間のかかる処理ほどSSH切断のリスクが付きまといます。

この記事では、screenコマンドの実践的な使い方を解説します。
デタッチ・アタッチの基本操作から、名前付きセッション管理、ログ記録、複数ウィンドウの切り替え、トラブル対処まで網羅します。

実行環境:RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済み

この記事のポイント

・screen -S 名前 でセッションを作成し、Ctrl+a d でデタッチできる
・SSH切断後も screen -r で元のセッションに復帰できる
・screen -ls でセッション一覧を確認し、複数セッションを管理できる
・nohupとの違いは「対話操作をそのまま再開」できるかどうか


続きを読む "screenコマンドでSSH切断後もプロセスを実行し続ける方法|デタッチ・アタッチの使い方も"

iostatコマンドでディスクI/Oを確認する方法|%utilとawaitの読み方と高負荷時の対処も

「ディスクが遅いのか、CPUが詰まっているのか、どっちが原因かわからない」
こうした状況は、Webアプリケーションやデータベースを運用する現場でよく直面します。topコマンドやvmstatではI/Oの詳細が見えないため、ストレージの問題を切り分けるのが難しいのです。

この記事では、iostatコマンドの実践的な使い方を解説します。
sysstatパッケージのインストールから、CPU統計・デバイス別I/O統計の読み方、継続監視、高I/O負荷の原因特定まで網羅します。

実行環境:RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済み

この記事のポイント

・iostat -x でデバイス別のI/O詳細統計(%util・await)を確認できる
・iostatは sysstatパッケージのインストールが必要
・%utilが80%超で該当デバイスがI/Oボトルネックのサイン
・継続監視は iostat -x 1 10 で1秒間隔10回実行する


続きを読む "iostatコマンドでディスクI/Oを確認する方法|%utilとawaitの読み方と高負荷時の対処も"

trコマンドで文字を変換・削除する方法|大文字小文字変換や改行・スペースの処理も

「ログファイルの中の文字を一括で置き換えたい」「大文字と小文字をまとめて変換したい」
サーバー運用の現場では、こうした文字単位の変換や削除がたびたび発生します。
そんなときに使うのが tr コマンドです。sedやawkほど多機能ではありませんが、そのぶんシンプルで高速に動作するため、パイプラインの中で日常的に使われています。

この記事では、trコマンドの実践的な使い方を解説します。
大文字小文字の変換、不要な文字の削除、改行やスペースの処理など、実務で役立つパターンを具体的なコマンド例とともに紹介します。

実行環境:RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済み

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

・tr '[:upper:]' '[:lower:]' で大文字小文字を一括変換できる
・-d オプションで不要な文字を一括削除できる
・-s で連続スペースの圧縮やログ整形に使える
・改行の変換やWindows改行コードの除去もできる

続きを読む "trコマンドで文字を変換・削除する方法|大文字小文字変換や改行・スペースの処理も"

lsblkコマンドでブロックデバイスを一覧表示する方法|ディスク構成やパーティション確認も

「lsblkで表示されるMAJ:MINって何?」
「パーティションがどのディスクに属しているか一目で確認したい」
「LVMやRAIDの構成をコマンドで把握したい」

こうした疑問や要望は、サーバー管理の現場でよく出てきます。ディスクの構成を正確に把握できなければ、
パーティションの追加やマウント作業で致命的なミスにつながることもあります。

この記事では、lsblkコマンドの実践的な使い方を解説します。
基本的なデバイス一覧の表示から、ファイルシステムやマウントポイントの確認、出力カラムのカスタマイズ、
そしてfdiskやdfとの使い分けまで、現場で必要な知識を網羅しています。

実行環境:RHEL 9.4 / Rocky Linux 9.4 / Ubuntu 24.04 LTSで動作確認済み

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

・lsblk でディスクとパーティションの親子関係をツリー表示できる
・-f オプションでファイルシステムやマウントポイントも確認できる
・-o で出力カラムを自由にカスタマイズして必要な情報だけ取得できる
・fdisk -l やdf -hとの使い分けで正確なディスク管理ができる

続きを読む "lsblkコマンドでブロックデバイスを一覧表示する方法|ディスク構成やパーティション確認も"

Linuxのsyncコマンドとは?データ消失を防ぐディスク書き込みの仕組みを解説

「USBメモリを抜いたらデータが壊れていた」「サーバーの電源が突然落ちて、直前の書き込みが消えた」そんな経験はないでしょうか。

Linuxではパフォーマンスを高めるために、ファイルへの書き込みをすぐにはディスクに反映せず、メモリ上のキャッシュ(ページキャッシュ)に一時的に保持しています。この仕組みのおかげで高速に動作する一方、キャッシュの内容がディスクに書き込まれる前に電源が落ちると、データが失われるリスクがあります。

この記事では、メモリ上のキャッシュを確実にディスクへ書き込むsyncコマンドの使い方を、基本から実務での活用場面まで詳しく解説します。

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

・syncはメモリ上の未書き込みデータをディスクに反映する
・USBメモリの取り外し前にsyncで安全にデータを保護できる
・特定のファイルやファイルシステムだけを同期することも可能
・「sync; sync; sync」の慣習が不要になった理由も解説

続きを読む "Linuxのsyncコマンドとは?データ消失を防ぐディスク書き込みの仕組みを解説"

Linuxでユーザーのパスワードを変更する方法|passwd・gpasswd・chageの違いと管理者向け実例

「passwdコマンドは知ってるけど、gpasswdって何が違うの?」
「グループのパスワード管理や、メンバー追加・削除もコマンドでやりたい」
「rootと一般ユーザーで手順が違うって聞いたけど、具体的にどう違うの?」

Linuxのパスワード管理は、サーバー運用の基本中の基本です。
passwdコマンドは自分でも使ったことがあると思いますが、gpasswdは知らないエンジニアが意外と多い。
しかも「passwd -l でロックした」と思っていたら、SSHの公開鍵認証では普通にログインできてしまう——こういう落とし穴が実務では頻繁にあります。

この記事では、passwdコマンドとgpasswdコマンドの使い分けを軸に、パスワード変更の基本からグループ管理、有効期限設定、トラブルシュートまで、実務で必要な操作を網羅的に解説します。
RHEL 9 / CentOS Stream 9 / Ubuntu 24.04 LTS で動作確認済みです。

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

・passwd はユーザーのパスワード変更、gpasswd はグループ管理に使い分ける
・chage コマンドでパスワード有効期限を確認・設定できる
・passwd -l のロックは公開鍵認証には効かない(完全無効化は usermod -e)
・「Authentication token manipulation error」の主な原因と対処法を解説

続きを読む "Linuxでユーザーのパスワードを変更する方法|passwd・gpasswd・chageの違いと管理者向け実例"

SSHのポート番号を変更する方法|sshd_configの設定からfirewalld・SELinux対応まで

「デフォルトの22番ポートでSSHを運用しているけど、不正ログイン試行が多くて心配...」
「sshd_configを編集したのに接続できなくなった。SELinuxやfirewalldの設定も必要だったのか...」
SSHのデフォルトポートである22番は攻撃者に最初に狙われるポートです。ポート番号を変更するだけで、ブルートフォース攻撃のほとんどを防ぐことができます。

この記事では、RHELおよびCentOS/AlmaLinux/Rocky Linux環境でのSSHポート番号変更手順を解説します。
sshd_configの編集からSELinuxのポリシー追加、firewalldでの新ポート開放、sshdの再起動と接続確認まで、現場で必要な手順を一通りカバーします。

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

・sshd_config の Port 設定を変更することで SSH の待ち受けポートを変更できる
・ポート変更後は firewalld と SELinux の両方で新ポートを許可する必要がある
・設定変更後は必ず別のターミナルから接続確認してから元のセッションを閉じる
・RHEL 9 以降は semanage port コマンドで SELinux ポートラベルを追加する手順が必要

続きを読む "SSHのポート番号を変更する方法|sshd_configの設定からfirewalld・SELinux対応まで"

scpコマンドでファイルを安全に転送する方法|公開鍵認証やディレクトリごとコピーも

「サーバーにファイルを送りたいけど、FTPは使って大丈夫なのか?」
「scpコマンドを使えと言われたけど、書き方がよく分からない」

Linux環境でのファイル転送は、FTPのようにパスワードが平文で流れる方法を使ってしまうと、セキュリティ事故に直結します。現場では、SSH暗号化を利用したscpコマンドが標準的な転送手段です。

この記事では、scpコマンドの基本的な使い方から、公開鍵認証でのパスワード省略、ディレクトリごとの一括転送、ポート番号の変更、そしてトラブル発生時の対処法まで、実務で必要な知識を一通り解説します。

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

・scp コマンドは SSH 暗号化を使ってファイルを安全に転送するコマンド
・ローカル→リモート、リモート→ローカル、リモート→リモートの3方向に転送できる
・-r でディレクトリごとコピー、-i で秘密鍵を指定、-P でポート番号を変更できる
・rsync との使い分け:一度きりの転送は scp、差分同期・再開機能が必要な場合は rsync

続きを読む "scpコマンドでファイルを安全に転送する方法|公開鍵認証やディレクトリごとコピーも"

compress / uncompressコマンドでファイルを圧縮・解凍する方法|gzipとの違いやインストール手順も

「古いサーバーから引き継いだバックアップファイルが .Z という見慣れない拡張子で、どう解凍すればいいのかわからない」——レガシーなLinux環境を扱っていると、こんな場面に出くわすことがあります。

.Z ファイルは compress コマンドで圧縮された形式です。現在の主流は gzip ですが、古いシステムや過去のバックアップでは compress 形式がまだ残っています。いざ必要になったとき「compress: command not found」と表示されて手が止まる人も少なくありません。

この記事では、compress / uncompress コマンドの基本操作から、gzip との違い、インストール方法、そして現場で遭遇しやすいエラーの対処法まで、実践的に解説します。

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

・compress / uncompress コマンドは LZW アルゴリズムで .Z ファイルを圧縮・解凍する
・現代の Linux にはデフォルト未搭載のため ncompress パッケージのインストールが必要
・gzip との違い:compress は .Z 拡張子、展開後に元ファイルを削除、圧縮率は gzip より低い
・現場では .Z より gzip(.gz)や xz(.xz)の使用が推奨される

続きを読む "compress / uncompressコマンドでファイルを圧縮・解凍する方法|gzipとの違いやインストール手順も"

watchコマンドで定期的にコマンドを繰り返し実行する方法|変化の検出やログ監視にも

「サーバーの負荷状況を数秒おきに確認したいけど、毎回手動でコマンドを打つのが面倒だ」
「dfやfreeの結果を一定間隔で自動表示させたいが、やり方がわからない」
Linuxサーバーの運用では、ディスク容量やメモリ使用量、プロセスの状態など、刻々と変化する情報を繰り返し確認する場面が数多くあります。そのたびに手動でコマンドを打ち直していては、肝心の変化を見逃しかねません。

この記事では、watch コマンドの基本的な使い方から、実行間隔の変更、差分ハイライト、実務でよく使う組み合わせ例、そしてトラブルシュートまでを解説します。while ループとの使い分けにも触れているので、用途に応じて最適な方法を選べるようになるはずです。RHEL 9 / Ubuntu 24.04 LTS で動作確認済みです。

この記事のポイント

・watch コマンドは任意のコマンドをデフォルト2秒間隔で定期実行して結果を表示し続ける
・-n で間隔変更、-d で差分ハイライト、-g で変化検知終了に設定できる
・パイプを含むコマンドはシングルクォートで囲んで watch に渡す
・画面での目視監視は watch、ログ記録や条件分岐が必要な場合は while ループを使う

続きを読む "watchコマンドで定期的にコマンドを繰り返し実行する方法|変化の検出やログ監視にも"

curlコマンドでHTTP通信を行う方法|GET・POSTやヘッダー確認も

「APIの動作確認をしたいけど、curlの書き方がわからない」
「curlでPOSTを送りたいのに、サーバーから400エラーが返ってくる」
Linuxサーバーの運用では、Webサービスの死活監視、APIの動作テスト、SSL証明書の確認など、HTTPリクエストをコマンドラインから送る場面が数多くあります。

この記事では、Linuxの curl コマンドについて、基本的なGETリクエストから、POSTでのデータ送信、レスポンスヘッダーの確認、SSL証明書の検証、Basic認証・Bearer認証、トラブルシュートまでを解説します。
wget との使い分けについても触れていますので、現場で迷わず使い分けられるようになるはずです。

関連記事:PUT/DELETEを含むREST API全般や curl の詳しい使い方は、姉妹記事『curlコマンドの使い方|REST API(GET/POST/PUT/DELETE)とファイルダウンロード実践』で詳しく解説しています。
動作確認環境:RHEL 9.4 / Ubuntu 24.04 LTS / curl 8.5
この記事のポイント
curl -I でHTTPステータスとレスポンスヘッダーを即座に確認できる
-d-H でJSON APIへのPOSTリクエストを送れる
-H 'Authorization: Bearer TOKEN' でBearerトークン認証を行える
-w '%{http_code}' で死活監視スクリプトに組み込める
・エラー番号(6/7/28/60)ごとの原因と対処法がわかる

続きを読む "curlコマンドでHTTP通信を行う方法|GET・POSTやヘッダー確認も"

chattrコマンドでファイルを変更不可にする方法|lsattrで属性確認と実務活用も

「設定ファイルをrootでも書き換えられないようにしたい…」
「chmodで権限を絞っても、rootユーザーには効かなくて困っている…」

Linuxでは、ファイルのパーミッションを設定してもrootユーザーはすべてのファイルを操作できてしまいます。
そこで使うのが chattr(change attribute)コマンドです。

この記事では、chattrコマンドの実践的な使い方を解説します。
ファイルの不変属性(immutable)の設定から、lsattrによる属性確認、サーバー運用での具体的な活用例まで、現場で必要になる操作を網羅しています。
【この記事でわかること】
・chattrコマンドとchmodの違い(rootユーザーへの制限方法)
chattr +i でファイルをrootでも変更・削除できないimmutable状態にする方法
chattr +a で追記のみ許可する方法(ログファイルの保護に有効)
lsattr コマンドで設定済み属性を確認する方法
・/etc/resolv.confの自動書き換え防止など、実務での活用パターン

続きを読む "chattrコマンドでファイルを変更不可にする方法|lsattrで属性確認と実務活用も"

ディレクトリ内のファイル数をカウントする方法|find -maxdepth・隠しファイル除外・自動監視

「このディレクトリに一体何ファイルあるんだ?」
「ログのローテーションが正常に動いているか、数で確認したい」
サーバー運用をしていると、ディレクトリ内のファイル数を把握したい場面は意外と多いものです。
バックアップの世代数確認、デプロイ後のファイル検証、ディスク使用量調査の前段階など、「まず数を把握する」という作業は地味ながら欠かせません。

この記事では、ディレクトリ内のファイル数・サブディレクトリ数をカウントする方法を目的別に解説します。
基本の ls | wc -l から、find を使った正確なカウント、隠しファイルの扱い、特定の拡張子だけを数える方法、さらにスクリプトでの自動監視パターンまで網羅しています。

なお、ファイルの中身(行数・単語数・バイト数)を数える wc コマンドの詳しい使い方はwcコマンドの解説記事をご覧ください。
【この記事でわかること】
ls | wc -l で手早くざっくりカウントする方法(隠しファイル・ディレクトリも含む)
find /path -type f | wc -l でファイルのみを正確にカウントする方法
-maxdepth 1 で直下1階層のみ、-name "*.log" で拡張子絞り込みを行う方法
・大量ファイル環境では ls -f でソートを無効化するか find を使うと高速になる理由
・スクリプトでファイル数を自動監視するパターン

続きを読む "ディレクトリ内のファイル数をカウントする方法|find -maxdepth・隠しファイル除外・自動監視"

rsyncコマンドでファイルを同期・転送する方法|--deleteの安全な使い方やリモートバックアップも

「rsync先でファイルが消えた...どのオプションを付ければよかったんだ?」
「scpで毎回全ファイルをコピーしていて、転送に時間がかかりすぎる...」
Linuxでファイルやディレクトリを効率的に同期・転送するなら、rsync コマンドが最適です。差分だけを転送するため、scpやcpと比べて圧倒的に高速で、バックアップの定番ツールとして現場で広く使われています。

この記事では、rsync コマンド の実践的な使い方を解説します。
基本的なローカルコピーからリモートサーバーへのファイル転送、--delete の安全な使い方、cronと組み合わせた自動バックアップまで、現場で使えるテクニックをまとめました。

この記事のポイント

・rsync -avz でリモートサーバーへ差分だけ安全に転送できる
・--delete 前は必ず --dry-run (-n) で削除対象を確認する
・--exclude でログ・キャッシュを除外してスリムに同期する
・cronと鍵認証の組み合わせで無人自動バックアップを構築できる

---MORE---

続きを読む "rsyncコマンドでファイルを同期・転送する方法|--deleteの安全な使い方やリモートバックアップも"

ssコマンドでソケット情報を確認する方法|LISTEN・ESTABの読み方とnetstat代替の実例集

「サーバーでどのポートが開いているか確認したいけど、netstatが使えない…」
「ssコマンドの出力が読めなくて、結局どのプロセスがどのポートを使っているか分からない…」

RHEL 7以降のLinuxでは、netstatに代わって ss がネットワーク確認の標準コマンドになりました。

この記事では、ssコマンドの実践的な使い方を解説します。
基本的な接続確認から、LISTENポートの一覧表示、特定ポートの絞り込み、プロセスの特定まで、現場で必要になる操作を網羅しています。

【この記事でわかること】
・ssコマンドの基本構文とnetstatとの違い(なぜssを使うべきか)
・ss -tlnp でTCP LISTENポートとプロセスを一覧確認する方法
・ESTABLISHED・TIME-WAIT・CLOSE-WAITの見方と状態の意味
・フィルタ構文で特定ポート・IPアドレスに絞り込む方法
・「permission denied」でプロセスが表示されない時の対処法

続きを読む "ssコマンドでソケット情報を確認する方法|LISTEN・ESTABの読み方とnetstat代替の実例集"

touchコマンドでファイルを作成・タイムスタンプを変更する方法|空ファイルや日付変更も

「touchコマンドで空ファイルを作ったけど、タイムスタンプの変更方法がよくわからない」
「ファイルの更新日時を特定の日付に変更したいのに、オプションの書き方がわからない」
Linuxの現場では、ログ管理やバックアップの基準日設定、シェルスクリプトでのロックファイル作成など、ファイルのタイムスタンプを操作する場面が意外と多くあります。

この記事では、Linuxの touch コマンドの基本から実務で役立つ応用テクニックまで解説します。
空ファイルの作成、タイムスタンプの変更(-t/-d オプション)、参照ファイルからの日時コピー(-r)、find との組み合わせによる一括変更、トラブルシュートまで網羅しました。

【この記事でわかること】
・touchコマンドで空ファイルを作成する方法と基本構文
・atime・mtime・ctimeの違いと確認方法(statコマンド)
・-t/-d オプションで日時を指定してタイムスタンプを変更する方法
・-r オプションで参照ファイルのタイムスタンプをコピーする方法
・find連携による一括変更とシェルスクリプトでの活用例

続きを読む "touchコマンドでファイルを作成・タイムスタンプを変更する方法|空ファイルや日付変更も"

logrotateでLinuxのログを自動ローテーションする方法|設定ファイルの書き方とトラブル対処

「logrotateを設定したはずなのに、ログがローテーションされていない」「設定ファイルの書き方がよく分からない」

Linuxサーバーを運用していると、放置したログファイルがディスクを圧迫して障害につながることがあります。「ネットで調べればすぐ分かる」と思って検索しても、断片的な情報ばかりで結局うまく動かない、そんな経験はないでしょうか。

この記事では、logrotate(ログローテーション)の仕組みから設定ファイルの書き方、手動テスト、トラブル対処まで体系的に解説します。
この記事を読めば、ログ管理の不安を解消し、安定したサーバー運用ができるようになります。

実行環境:RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済み

この記事のポイント

・logrotate は /etc/logrotate.conf と /etc/logrotate.d/ を読み込み、cronまたはsystemdタイマーで1日1回自動実行される
・daily / weekly・rotate N・compress の設定を押さえれば実務の9割に対応できる
・logrotate -d(ドライラン)で設定ミスを本番反映前に検出し、-f で強制実行できる
・postrotate を忘れると、ローテーション後もアプリが古いファイルに書き続けるため必ず動作確認する

続きを読む "logrotateでLinuxのログを自動ローテーションする方法|設定ファイルの書き方とトラブル対処"

firewalldコマンドでLinuxのファイアウォールを設定する方法|ポート開放やゾーン設定も

「firewalldでポートを開放したはずなのに、外からアクセスできない」
「iptablesとfirewalldの違いがよく分からず、どちらを使えばいいのか迷っている」

Linuxサーバーを運用する以上、ファイアウォールの設定は避けて通れません。ネットで断片的な情報をコピペしただけでは、なぜその設定が必要なのかが分からず、トラブル時に手も足も出なくなります。

この記事では、RHEL/CentOS/AlmaLinux/Rocky Linuxで標準採用されている firewalld の実践的な使い方を解説します。
基本的なポート開放やサービスの許可から、ゾーンの仕組み、リッチルールを使った細かいアクセス制御、そしてよくあるトラブルの対処法まで、現場で必要な知識を網羅しました。

※firewalldの操作には root 権限(または sudo)が必要です。以降のコマンド例は全て root 権限で実行するものとします。

実行環境:RHEL 9.4 / Rocky Linux 9.4 / AlmaLinux 9.4 で動作確認済み
この記事のポイント
・firewall-cmd --list-all で現在の設定を一目で確認できる
・--permanent を付けないと再起動で設定が消える(永続化後は --reload で反映する)
・ポート開放は --add-port、サービス追加は --add-service が基本コマンド
・ゾーンでNIC単位のアクセス制御を柔軟に設計する方法
・Ubuntu/Debian系はUFWが標準。allow・deny・reject の3段階でルールを管理できる

続きを読む "firewalldコマンドでLinuxのファイアウォールを設定する方法|ポート開放やゾーン設定も"

scpコマンドの使い方|SSH経由でファイルを安全に転送する方法

「開発環境のファイルを本番サーバーに転送したいけど、FTPはセキュリティが心配」
「scpコマンドを使ったら Permission denied で転送できない」

サーバー間でファイルをやり取りする場面は、Linuxの運用で日常的に発生します。FTPは通信が暗号化されないため、現場ではSSHベースの転送手段が標準です。

この記事では、SSH経由でファイルを安全に転送する scp コマンドの使い方を解説します。ローカル→リモート・リモート→ローカルの基本転送から、ディレクトリごとの転送、秘密鍵指定、ポート指定、圧縮転送、sftp・rsyncとの使い分けまで網羅しました。動作確認環境:RHEL 9.4 / Ubuntu 24.04 LTS / Amazon Linux 2023。

この記事のポイント

・scpコマンドの基本構文と「ローカル→リモート」「リモート→ローカル」「サーバー間」の転送方法
・-rでディレクトリ一括・-Cで圧縮・-iで鍵指定など実務頻出オプションの使い方
・Permission denied・Connection refusedなどよくあるエラーの原因と解決手順
・scp・sftp・rsyncの3コマンド使い分け基準(差分同期・対話操作・単発コピー)
・OpenSSH 9.0以降でデフォルトプロトコルがSFTPに変わった背景と注意点

続きを読む "scpコマンドの使い方|SSH経由でファイルを安全に転送する方法"

exportコマンドで環境変数を設定する方法|PATHの永続化とトラブル対処

「exportで環境変数を設定したのに、別のターミナルを開いたら消えている」
「PATHを通したはずなのに command not found が出る」
Linuxサーバーの運用で、環境変数のトラブルは避けて通れません。設定方法は分かっていても、永続化の仕組みを正しく理解していないと、同じ問題を何度も繰り返すことになります。

この記事では、bash/sh環境での環境変数の確認・設定・永続化を、export コマンドenv コマンドを中心に解説します。PATH設定の正しい方法から、.bashrcと.bash_profileの使い分け、cronで変数が効かない問題の対処まで、実務で必要な知識をまとめました。
【この記事でわかること】
・exportコマンドはシェル変数を環境変数に昇格させて子プロセスにも引き継ぐ
・.bash_profileと.bashrcの使い分けで設定の永続化を正しく制御できる
・PATH変数の追記ミスで基本コマンドが全滅する事故を未然に防ぐ方法
・cronで環境変数が効かない原因と2つの対処法(crontab定義・フルパス指定)
・unsetによる削除からsourceによる即時反映まで一連の操作を網羅

続きを読む "exportコマンドで環境変数を設定する方法|PATHの永続化とトラブル対処"

xargsコマンドの使い方|findやgrepの出力を引数に渡して一括処理する方法

「findで見つけたファイルをまとめて削除したいのに、パイプでつなぐとうまくいかない」
「コマンドの引数にファイル一覧を渡したいけど、数が多すぎてエラーになる」

xargsは、標準入力から受け取ったデータをコマンドの引数として渡すコマンドです。findやgrepの出力をそのまま別のコマンドに引き渡せるため、ファイルの一括処理やログの一括検索など、日常的なサーバー管理作業を大幅に効率化できます。
この記事では、xargsの基本的な使い方から、スペースを含むファイル名の安全な処理、並列実行、find -execとの使い分けまで、実務で必要な知識を網羅します。
【この記事でわかること】
・xargsは標準入力の内容を別コマンドの引数に変換して実行する仕組み
・find -print0 と xargs -0 の組み合わせでスペースを含むファイル名も安全に処理できる
・-P オプションで並列実行し、大量ファイルの処理を高速化できる
・find -exec \; / -exec + / xargsの使い分けを把握しておくと現場で迷わない
・--no-run-if-emptyや-pを活用して本番環境でも安全に実行できる

続きを読む "xargsコマンドの使い方|findやgrepの出力を引数に渡して一括処理する方法"

journalctlコマンドの使い方|systemdログの確認・検索・管理方法

「サーバーで障害が起きたとき、ログを確認したいのにどこをチェックすればいいかわからない」
「tail -f /var/log/messages でログを追っていたけど、systemd環境ではうまく表示されない」

RHEL7/CentOS7以降のLinuxでは、ログ管理の仕組みがsyslogからsystemd-journaldに大きく変わりました。従来の/var/log/messagesに加えて、journalctlコマンドによるログ確認が必須スキルです。
この記事では、journalctlコマンドの基本操作から、サービス別のログ抽出、日時指定、優先度フィルタ、ジャーナルの容量管理まで、実務で必要な使い方を網羅します。

【この記事でわかること】
・journalctlと従来のsyslogの違い(なぜjournalctlが必要か)
・-u/-f/-n/--since/--untilなど実務で使う主要オプションの使い方
・-pオプションでエラー以上のログだけを素早く抽出する方法
・ジャーナルを永続化して再起動後もログを保持する設定方法
・容量肥大化を防ぐvacuum設定とjournald.confの設定例

続きを読む "journalctlコマンドの使い方|systemdログの確認・検索・管理方法"

systemctlコマンドの使い方|サービスの起動・停止・自動起動設定

「Linuxでサービスを起動・停止したいけど、systemctlの使い方がわからない」
「自動起動の設定をしたのに、再起動後にサービスが動いていない」

RHEL7/CentOS7以降のLinuxでは、サービス管理はすべてsystemctlコマンドで行います。以前のservice/chkconfigコマンドに代わる、現代Linuxの必須コマンドです。
この記事では、systemctlの基本操作から、自動起動設定、サービスの状態確認、トラブル対処まで実務で必要な知識を網羅します。

動作確認環境:RHEL 9.4 / Rocky Linux 9

【この記事でわかること】
・systemctl start/stop/restartでサービスを起動・停止・再起動する方法
・systemctl enableで自動起動を設定する方法(--nowオプション含む)
・systemctl statusでサービスの稼働状態とログを確認する方法
・「Active: failed」の原因をjournalctlで特定する手順
・mask/unmaskで特定サービスを完全に無効化する方法

続きを読む "systemctlコマンドの使い方|サービスの起動・停止・自動起動設定"

SSHの使い方|鍵認証の設定からセキュリティ強化まで

「LinuxサーバーにSSHで接続したいけど、鍵認証の設定がよくわからない」
「毎回パスワードを入力するのが面倒。鍵認証に切り替えたい」
「Permission denied (publickey) と表示されて接続できない」

SSHはLinuxサーバーをリモートで操作するための必須技術です。パスワード認証のままだと、ブルートフォース攻撃(総当たり攻撃)の標的になります。
この記事では、SSHの基本的な接続方法から、鍵認証の設定、configファイルによる接続の効率化、セキュリティ強化まで、実務で必要な知識を網羅します。

【この記事でわかること】
・SSHの基本的な接続方法とパスワード認証の使い方
・ssh-keygenによるED25519鍵ペアの作成とサーバーへの登録手順
・~/.ssh/configで複数サーバーへの接続を効率化する方法
・パスワード認証無効化・rootログイン禁止などセキュリティ強化の設定
・「Permission denied (publickey)」など接続エラーの原因と対処法

続きを読む "SSHの使い方|鍵認証の設定からセキュリティ強化まで"

Postfixのmynetworks設定方法|オープンリレー防止と正しいネットワーク指定

「Postfixの設定でmynetworksをどう書けばいいのか分からない」
「メールサーバーがオープンリレーになっていないか心配」
Postfixのmynetworks設定は、メールの中継を許可するネットワーク範囲を決める重要なパラメータです。設定を誤ると、スパムの踏み台にされる危険があります。

この記事では、Postfixの mynetworks パラメータの設定方法と注意点を解説します。

【この記事でわかること】
・mynetworksパラメータの役割とオープンリレーとの関係
・main.cfでの正しい設定方法(複数ネットワーク・IPv6対応)
・mynetworks_styleとの違いと実務での推奨設定
・postconfコマンドで現在の設定を確認する方法
・オープンリレーになっていないかtelnetで手動テストする手順

続きを読む "Postfixのmynetworks設定方法|オープンリレー防止と正しいネットワーク指定"

Dovecotのバージョンを確認するコマンド|設定確認やログの見方も

「Dovecotのバージョンを確認するにはどうすればいいの?」
「メール受信サーバーが正常に動いているか確認したい」
メールサーバーの運用では、使用しているソフトウェアのバージョンを把握しておくことが重要です。セキュリティパッチの適用判断にも直結します。

この記事では、Dovecotのバージョンを確認する方法を解説します。
dovecot --versionコマンド、RPMパッケージでの確認、設定内容の確認(doveconf)、動作状態の確認まで、メールサーバー管理に必要な知識をまとめました。
【この記事でわかること】
dovecot --version または doveadm version でバージョンを確認できる
systemctl status dovecot でDovecotの稼働状態を確認できる
・設定ファイルは /etc/dovecot/dovecot.conf、ログは /var/log/maillog を確認する

続きを読む "Dovecotのバージョンを確認するコマンド|設定確認やログの見方も"

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領域を拡張する(システム再起動・サービス停止なし)"

CentOS7でネットワークデバイス名を変更する

CentOS7は、接続されているネットワークデバイスによって
任意の名前を付けるようになりました。
例としては「eno1」、「eno2」や、「p4p2」など本当にバリエーションは様々です。
※CentOS6系では、eth0、eth1と付けていました。

しかし、この新しいネットワークデバイス名だと
システム的に不具合がある場合があります。
例えば、古いソフトウェアを使用したいという場合、
eth0やeth1でないと正しく動作しないというケースです。

そのような場合は、ネットワークデイバイス名を
従来のCentOS6系のものに編集することで対応できます。
【この記事でわかること】
・CentOS7ではNICの名前が eno1p4p2 のように自動命名される
ip link show コマンドで現在のネットワークデバイス名を確認できる
・nmcliとifcfgファイルの編集でネットワークデバイス名を変更できる

続きを読む "CentOS7でネットワークデバイス名を変更する"

Linux起動パフォーマンスを確認する(systemd-analyze)

systemdを採用しているLinuxシステムで
起動パフォーマンスを確認したい場合には、systemd-analyzeを使用します。

systemd-analyzeを使用するには、
systemdを採用しているLinuxシステムで
root権限、またはsudo権限を持つユーザーが必要です。

【この記事でわかること】
systemd-analyze でLinux起動時間を確認できる
systemd-analyze blame でサービスごとの起動時間を表示できる
systemd-analyze critical-chain でボトルネックサービスを特定できる

続きを読む "Linux起動パフォーマンスを確認する(systemd-analyze)"

ソースファイルインストールしたものをアンインストール(make uninstall)するには

ソースファイル、ソースコード(tar.gz)でインストールしたソフトは、
「make uninstall」で削除できます。
しかし、すべてのソフトウェアが「make uninstall」に対応していて、
削除出来るわけではなく、むしろ削除できない方が多いのです。

「make uninstall」は、実行ファイルを削除しているに過ぎないので、
手作業で同じ作業を行うことで「make uninstall」に対応していない
ソフトウェアのアンインストールが可能になります。

どちらの実行にもroot(スーパーユーザー)権限が必要になります。

【この記事でわかること】
make uninstall で削除できるのはMakefile対応ソフトのみ
・非対応の場合は手動でインストールしたファイルを特定して削除する
・strace等でインストール時のファイルコピー先を追跡して削除する方法もある

続きを読む "ソースファイルインストールしたものをアンインストール(make uninstall)するには"

CentOS8の32bit版は存在する?

「CentOS8の32bit版はダウンロードできる?」
そんな疑問に一言でお答えします。

CentOS8の32bit版は存在しません
・AlmaLinuxやRocky Linuxにも32bit版は提供されていない
・ARM64bit版・PowerPC64 LE版は存在する(アーキテクチャ別配布)
【この記事でわかること】
・【結論】CentOS8の32bit版は、現在存在しません
・Linuxサーバーの構築を体系的に学びませんか?

【結論】CentOS8の32bit版は、現在存在しません

CentOS7では、有志が32bit版をリリースしていましたが、
CentOS8では、2019年12月25日現在、32bit版はリリースされていません。
http://isoredirect.centos.org/altarch/8

今後、リリースされる可能性があるかもしれませんが、今のところ不透明です。

■CentOS7 32bit版
http://mirror.centos.org/altarch/7/isos/i386/

続きを読む "CentOS8の32bit版は存在する?"

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

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

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

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

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

CentOS7 Hostname(ホスト名)を変更する

CentOS7でHostname(ホスト名)を変更する方法を紹介します。
変更方法にはいくつか種類があります。
【この記事でわかること】
hostname 新ホスト名 で一時的に変更できる(再起動で元に戻る)
hostnamectl set-hostname 新ホスト名 で恒久的に変更できる(推奨)
/etc/hostname ファイルを直接編集してもホスト名を変更できる

続きを読む "CentOS7 Hostname(ホスト名)を変更する"

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で起動状態を把握"

CentOS8をダウンロードする

CentOS8が2019年09月24日にリリースされました。
2029年05月までのサポートがあり、10年サポートになっています。
本ページでは、CentOS8をダウンロードする手順を紹介します。
CentOS 8は2021年12月31日にEOL(サポート終了)となりました。新規構築ではAlmaLinux 8/9またはRocky Linux 8/9への移行を推奨します。
【この記事でわかること】
・CentOS8のISOファイルは公式サイトから無料ダウンロードできた(現在はEOL)
・DVD ISOファイルが通常インストール用(約6.6GB)
・AlmaLinuxやRocky Linuxが現在の後継ディストリビューション

続きを読む "CentOS8をダウンロードする"

Perlのパスとバージョンを確認する

「LinuxサーバーにPerlはインストールされているか確認したい」
「Perlのバージョンがわからないのでスクリプトが動くか確認したい」

PerlはLinuxサーバーにデフォルトでインストールされていることが多く、
システム管理スクリプトやログ処理ツールなどで広く使われています。

この記事では、Perlのインストール場所(パス)とバージョンを確認するコマンドを解説します。
【この記事でわかること】
whereis perl でPerlのパス(インストール場所)を確認できる
perl -v でPerlのバージョンを確認できる
which perl でコマンドの実行パスを確認できる

続きを読む "Perlのパスとバージョンを確認する"

\\x(¥x)から始まるUnicode文字列を読めるようにする

「Apacheのアクセスログに \xe3\x81\x9d のような文字化けした文字列が出ていて読めない」
「Tripwireの改ざん検知ログに \x から始まる謎の文字列が表示された」

このような \x から始まる文字列はUTF-8のバイト列をエスケープした形式で、
Perlを使えば日本語に変換して読むことができます。

この記事では、\x から始まるUnicode文字列をPerlで読めるようにする方法を解説します。
【この記事でわかること】
\x 始まりの文字列はUTF-8バイト列のエスケープ表現
perl -e 'print "\xe3\x81\x9d..."' で日本語に変換して表示できる
・Pythonを使う方法も同様に利用できる

続きを読む "\\x(¥x)から始まるUnicode文字列を読めるようにする"

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の確認と停止(ファイアウォール)"

SELinuxを無効化・確認する方法|enforcing/permissive/disabled切替とgetenforce・sestatus

「Apacheを起動したのに接続できない」「ファイルを作成したのに権限エラーが出る」——こういったトラブルの原因がSELinuxだったというケースは、Linuxサーバー管理者なら一度は経験しているはずです。

SELinuxはサーバーのセキュリティを強化する重要な機能ですが、設定が複雑なため、開発環境や検証環境では一時的に無効化したい場面もあります。
また「今のモードが何か」「恒久的な設定と一時的な設定の違い」を把握していないと、再起動後に思わぬ状態に戻ってしまうことも。

この記事では、SELinuxの3つの動作モード(Enforcing・Permissive・Disabled)の違いと確認方法、getenforceとsestatusの使い分け、一時的・恒久的な切替手順を実サーバーの出力例つきで解説します。
sestatusの-v・-bオプション、setenforceの文字列指定、sedコマンドでの設定変更、ausearchによる拒否ログ確認まで、現場で使う操作を網羅しています。
CentOS7/RHEL 9/AlmaLinux 9/Rocky Linux 9 で動作確認済みです。

この記事のポイント

・getenforce でモードを確認、sestatus で詳細状態を確認する(-v・-bオプションも解説)
・一時的な切替は setenforce 0/1(または Permissive/Enforcing の文字列指定も可)。再起動で元に戻る
・恒久的な無効化は /etc/selinux/config を SELINUX=disabled に変更して再起動
・本番サーバーでは Permissive で動作確認してから判断するのが鉄則

続きを読む "SELinuxを無効化・確認する方法|enforcing/permissive/disabled切替とgetenforce・sestatus"

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の実行方法と注意点"

CentOS7のNICをCentOS6系のeth0にする方法|net.ifnames=0の設定手順

「CentOS7でeth0が使えない」「NIC名がenp0s3になってしまってスクリプトが動かない」
そんなトラブルに困った経験はないでしょうか。

CentOS7からNICの命名規則が変わり、ネットワークインターフェース名が
enp0s3p4p2 のような形式で自動割り当てされるようになりました。
一部のソフトウェアやスクリプトは eth0 を前提にしているため、
互換性の問題が起きることがあります。

この記事では、CentOS7のNIC名をCentOS6系の eth0 形式に変更する手順を解説します。
設定変更には再起動が必要になりますので、メンテナンス時間を確保してから作業してください。
【この記事でわかること】
・/etc/default/grub に net.ifnames=0 biosdevname=0 を追加することでCentOS7の新NIC命名規則を無効化できる
・grub2-mkconfig -o /boot/grub2/grub.cfg でGRUB設定を再生成して変更を反映する
・/etc/sysconfig/network-scripts/ifcfg-xxxxをifcfg-eth0にリネームして設定を引き継ぐ
・NAME・DEVICE・HWADDRをeth0に統一してから再起動することでCentOS6系との互換性を確保できる

続きを読む "CentOS7のNICをCentOS6系のeth0にする方法|net.ifnames=0の設定手順"

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情報の確認コマンドも"

cronのログを確認する方法|/var/log/cronとjournalctl -u crondでエラーを特定

「cronで設定したジョブが動いていないみたいだけど、どこを見ればいいんだろう」

cronのスケジュール設定は正しいはずなのに、ジョブが実行されていない。そんなとき、最初に確認すべきなのがcronのログファイルです。

この記事では、cronのログファイル(/var/log/cron)の確認方法から、journalctlを使ったsystemd環境での調査、ログが出力されないときのトラブルシュートまでを解説します。
RHEL 9 / CentOS 7 / Rocky Linux 9 / Ubuntu 24.04 LTSで動作確認しています。

【この記事でわかること】
・cronのログは /var/log/cron で確認できる
grep でジョブやユーザー単位の絞り込みが可能
・systemd環境では journalctl -u crond も有効
・ログが出ない場合はrsyslog設定を確認する

この記事で扱うのは「cron が 実行した結果のログ」の確認方法です。「crontab -e で編集した 履歴」を探している場合は、後半のFAQで /var/spool/cron/ のタイムスタンプ確認方法も紹介します。

続きを読む "cronのログを確認する方法|/var/log/cronとjournalctl -u crondでエラーを特定"

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ログを確認する方法|フィルタリング・リアルタイム監視の実践ガイド"

Postfixのメールログを確認する

「Postfixでメール送受信のトラブルが発生した。どのログファイルを確認すればいいのか」
Postfixのログは /var/log/maillog ファイルに出力されます。

この記事では、Postfixのメールログの確認方法と、ログに記録されるエラーメッセージの読み方を解説します。

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

・Postfixのログは /var/log/maillog に出力される
・ログは1週間単位で自動ローテーションされ maillog.1maillog.4 の4週間分保持される
tail /var/log/maillog でリアルタイムにログを確認できる
・SASL認証失敗・キュー・遅延メールなどの状況がログから読み取れる

続きを読む "Postfixのメールログを確認する"

MTAをSendmailからPostfixに変更する

「メールサーバーをSendmailからPostfixに切り替えたい。どのコマンドを使えばいいのか」
RHEL/CentOS系Linuxでは、alternatives コマンドを使ってMTAをSendmailからPostfixに変更できます。

この記事では、alternatives --config mta コマンドを使ったMTA変更手順を解説します。

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

・MTAの変更は alternatives --config mta コマンドで実行する
・RHEL/CentOS系Linuxでは複数のMTAをパッケージで共存させることができる
・変更後は alternatives --config mta で再確認して設定が反映されているか確認する
・Postfixのインストールは事前に dnf install postfix で行う

続きを読む "MTAをSendmailからPostfixに変更する"

Postfixのバーチャルドメイン設定方法|virtual_mailbox_domainsとvirtual_alias_mapsの書き方

「1台のサーバーで複数ドメインのメールを受け取りたいが、Postfixのバーチャルドメイン設定が複雑でどこから手を付けていいか分からない」

こういった悩みを持つLinuxエンジニアは多いです。virtual_mailbox_domainsとvirtual_alias_mapsの違いが曖昧なまま設定しても、メールが届かなかったりエラーになったりと、原因の特定に時間がかかります。

この記事では、Postfixのバーチャルドメイン設定について、virtual_mailbox_domains(独立したメールボックス管理)とvirtual_alias_maps(エイリアス転送)の2方式を実サーバーの設定例と出力例を交えながら解説します。Rocky Linux 9 / RHEL 9系で動作確認済みです。

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

・virtual_mailbox_domainsは独立したメールボックスを持つドメイン用
・virtual_alias_mapsは既存アカウントへの転送(エイリアス)に使う
・設定後はpostmap・postfixreloadで反映、postfix checkで構文確認
・2つを組み合わせるとドメイン別の柔軟なメール管理が実現できる

続きを読む "Postfixのバーチャルドメイン設定方法|virtual_mailbox_domainsとvirtual_alias_mapsの書き方"

Postfixでメールキューの内容を確認する

キュー内のメールは、postcatコマンドを使用することで
内容を確認することが出来ます。

実行方法は、postcatコマンドにオプション「-q」を付け、
引数にQueue IDを指定します。

Queue IDの確認は、「Postfixでメールキューの状態を確認する」で
紹介している「postqueue -p」コマンドで行えます。

■Queue IDが「178A27E250」のキュー内容を確認する
# postcat -q 178A27E250

Postfixでメッセージの再送信時間を設定する|minimal_backoff_time / maximal_backoff_time の実務

「メッセージが送れなかった時、Postfixは何秒後に再送信してくれるのか?」
「主要な配送先が落ちている時に、再送間隔を短くして早く復旧したい」

この記事では、Postfixでメッセージの再送信時間を設定する方法を、現場で20年以上Linuxサーバーを運用してきた経験から実務目線で解説します。
minimal_backoff_time / maximal_backoff_time / queue_run_delay の3つのパラメータの関係、main.cf での設定手順、設定反映の確認、現場でよくあるトラブル対処までを一気通貫で扱います。
動作確認環境:RHEL 9.4 / Ubuntu 24.04 LTS / Postfix 3.x(systemd管理)。

この記事のポイント

・Postfixの再送信時間は main.cf の minimal_backoff_time / maximal_backoff_time で設定する
・queue_run_delay はキュー全体のスキャン間隔で、再送間隔とは別の指標
・設定変更後は postfix reload で反映、postconf -d でデフォルト値を確認できる
・短すぎる再送間隔はDNSレートリミット・SMTPブロックを誘発する

続きを読む "Postfixでメッセージの再送信時間を設定する|minimal_backoff_time / maximal_backoff_time の実務"

Postfixでメールサイズの制限を設定する|main.cf編集と関連パラメータ整合性確認

「Postfixでメールサイズの制限を変えたいが、main.cfのどこに何を書けば反映されるかわからない」
「9.5MBに制限したつもりが、20MBの添付が通ってしまう」
こういう「制限がかかっているようでかかっていない」状態のサーバーは、私のサポート案件でも定期的に見かけます。

この記事では、Postfixでメールサイズの制限を設定する方法を、main.cfの編集・反映確認・周辺パラメータの整合性まで含めて、現場でそのまま使える形で解説します。
RHEL9系/Ubuntu 24.04 LTSのPostfix 3.6~3.8で動作確認済みです。

この記事のポイント

・Postfixのメールサイズ制限は message_size_limit でバイト単位で設定する
・デフォルト値は 10240000(約10MB)/無制限にしたい場合は 0 を指定する
・main.cf 編集後は postfix reload で設定を反映させる
・mailbox_size_limit と virtual_mailbox_limit との整合性チェックを必ず行う

続きを読む "Postfixでメールサイズの制限を設定する|main.cf編集と関連パラメータ整合性確認"

logresolveコマンドでApacheログのIPアドレスをホスト名に変換する方法

「ApacheのアクセスログにIPアドレスが記録されているが、ホスト名で分析したい」
\n「HostnameLookupsをOnにするとパフォーマンスが落ちると聞いたが、後からまとめて変換できないか」
\n
\nこの記事では、logresolveコマンドを使ってApacheのアクセスログに含まれるIPアドレスを一括でホスト名に変換する方法を解説します。
\n\n
【この記事でわかること】
\n・logresolveコマンドはApacheのアクセスログ内のIPアドレスを一括でホスト名に変換する
\n・HostnameLookupsをOnにするパフォーマンス低下を防ぎながらログ解析ができる
\n・-sオプションで名前解決の統計情報を別ファイルに出力できる
\n

続きを読む "logresolveコマンドでApacheログのIPアドレスをホスト名に変換する方法"

Apacheのアクセスログで接続クライアントのホスト名を記録する

「Apacheのアクセスログにホスト名を記録したい。どこを設定すればいいのか」
デフォルトのApacheアクセスログはIPアドレスで記録されます。

この記事では、HostnameLookups ディレクティブを使ってアクセスログにホスト名を記録する設定方法を解説します。

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

・デフォルトの HostnameLookups Off はIPアドレスで記録する設定
HostnameLookups On に変更するとIPアドレスから逆引きしてホスト名を記録する
・HostnameLookups Onはリバースルックアップ(逆引き)が必要なためパフォーマンスに影響する
・後からIPアドレスをホスト名に変換するには logresolve コマンドも使える

続きを読む "Apacheのアクセスログで接続クライアントのホスト名を記録する"

Apacheのカスタムログを設定する

「Apacheのログに独自の項目を追加したい。LogFormatの設定方法がよくわからない」
Apacheのカスタムログ設定は、httpd.confLogFormatCustomLog ディレクティブを使います。

この記事では、Apacheのカスタムログ(LogFormat)の設定方法とフォーマット文字列の一覧を解説します。

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

・ログ形式は LogFormat ディレクティブで定義し、CustomLog で適用する
・デフォルトは common 形式(IPアドレス・日時・リクエスト・ステータス)
combined 形式はcommonにReferer・User-Agentを加えた業界標準フォーマット
%{クッキー名}C%{ヘッダー名}i など柔軟なカスタマイズが可能

続きを読む "Apacheのカスタムログを設定する"

Apacheで接続クライアント数を設定する

「Apacheに同時アクセスが集中してサーバーが重くなる。クライアント数の上限設定はどこで変更するのか」
Apacheの同時接続クライアント数は MaxClients(Apache 2.4以降は MaxRequestWorkers)で制御します。

この記事では、Apacheの接続クライアント数の設定方法を解説します。使用しているMPM(Prefork/Worker)によって設定箇所が変わるため、確認方法も合わせて解説します。

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

・Apache 2.3以前は MaxClients、2.4以降は MaxRequestWorkers で設定する
mpm_prefork_modulempm_worker_module で設定箇所が異なる
・CentOS/RHEL環境ではデフォルトでPrefork MPMが使用される
・設定値が小さすぎると処理待ちが発生し、大きすぎるとメモリ不足になる

続きを読む "Apacheで接続クライアント数を設定する"

Apacheのポート番号を変更する

「Apacheのポートを80番から変更したい。設定ファイルのどこを修正すればいいのか」
Apacheのポート番号は httpd.confListen ディレクティブで設定します。

この記事では、Apacheのポート番号を変更する手順を解説します。

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

・Apacheのポート番号は httpd.confListen ディレクティブで設定する
・デフォルトは80番(HTTP)と443番(HTTPS)
・ポート変更後はファイアウォール設定も忘れずに変更する
・Apacheを再起動して設定を反映させる

続きを読む "Apacheのポート番号を変更する"

KeepAliveを利用してApacheのパフォーマンスを向上させる

「Apacheのパフォーマンスが悪い。KeepAliveはどこで設定すればいいのか」
KeepAliveは、クライアントとのTCP接続を維持して複数のHTTPリクエストを1つのコネクションで処理する機能です。

この記事では、ApacheのKeepAlive設定(有効化・タイムアウト・最大リクエスト数)の方法を解説します。

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

・KeepAliveは httpd.conf または httpd-default.conf で設定する
KeepAlive On で有効化、Off で無効化する
MaxKeepAliveRequests でコネクションあたりの最大リクエスト数を設定する
KeepAliveTimeout の値は短すぎても長すぎてもパフォーマンスに悪影響がある

続きを読む "KeepAliveを利用してApacheのパフォーマンスを向上させる"

接続中のプロセスが終了するのを待ってApacheを停止する

「Apacheを停止したいが、接続中のクライアントを強制切断するのは避けたい」
通常の httpd stop コマンドは、接続中のプロセスを強制終了します。

この記事では、接続中のプロセスが終了するのを待ってからApacheを停止する graceful-stop の使い方を解説します。

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

apachectl graceful-stop で接続中のクライアント通信を待ってから停止できる
・通常の httpd stop は接続中プロセスを強制終了するため本番環境では注意が必要
graceful-stopapachectl コマンドで実行する(initスクリプト経由では不可)
・systemd環境(CentOS 7以降)では systemctl stop httpd で同様の動作をする

続きを読む "接続中のプロセスが終了するのを待ってApacheを停止する"

Apacheのアクセスログを設定する方法|CustomLogとLogFormatの書き方とcombined形式の読み方

「Apacheのアクセスログを見たら、どのフォームの情報が書かれているのか分からない」
「CustomLogとLogFormatの設定が多くて、何をどう書けばいいのか整理できていない」
Webサーバーの運用では、アクセスログを正しく設定・読み解く能力が欠かせません。

この記事では、ApacheのCustomLogディレクティブとLogFormatディレクティブの設定方法、combined形式のログフォーマットの読み方を解説します。
ログローテーション連携、条件付きロギング、実サーバーのログ出力例まで、現場で必要な知識をまとめました。

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

・CustomLog でログファイルの保存先とフォーマット名を指定する
・LogFormat でフィールド構成(combined形式が業界標準)を定義する
・combined形式はIPアドレス・日時・リクエスト・ステータス・リファラー・UAの7フィールド
・本番環境ではパスを絶対パスで指定し、logrotate と組み合わせて管理する

続きを読む "Apacheのアクセスログを設定する方法|CustomLogとLogFormatの書き方とcombined形式の読み方"

proFTPDでアクセス制限設定を行う

proFTPDでFTPサーバーを運用する際、ユーザーのアクセス先ディレクトリを制限しないと、
サーバー上の重要なファイルへのアクセスを許してしまうリスクがあります。

この記事では、proFTPDのアクセス制限設定(chroot)を proftpd.conf への設定追加で行う方法を解説します。
ユーザーをホームディレクトリに限定する方法から、特定グループのみアクセスを許可する方法まで解説します。

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

・proFTPDのアクセス制限は DefaultRoot ディレクティブで設定する
DefaultRoot ~ でユーザーを自分のホームディレクトリに閉じ込めることができる
・特定ディレクトリへの制限は DefaultRoot /パス で設定する
・特定グループのみの制限は DefaultRoot /パス グループ名 で設定する

続きを読む "proFTPDでアクセス制限設定を行う"

MySQLで指定したカラム名を持つテーブルを検索する|information_schemaを使ったDB横断検索

「特定のカラム名を持つテーブルが、どのDBのどこに存在するかわからない」
「テーブル定義を直接見ても、目的のカラムが見つからない」
DBA経験のあるエンジニアなら一度は遭遇する場面です。

この記事では、MySQLで指定したカラム名を持つテーブルを検索する方法を、information_schemaを使った実コマンド付きで解説します。MySQL 5.7 / MySQL 8.0 / MariaDB 10.x で動作確認済みのSQLです。

この記事のポイント

・information_schema.columnsをSELECTすればMySQL内のカラム検索が一発でできる
・table_schemaを条件に加えると、特定データベースに絞った検索が可能
・LIKE演算子で部分一致検索(user_%・%_idなど)にも対応
・MariaDB / MySQL 8.0 でも同じSQLがそのまま動く(標準化済みのスキーマ)

続きを読む "MySQLで指定したカラム名を持つテーブルを検索する|information_schemaを使ったDB横断検索"

vi・vimの画面サイズを変更する方法|columnsとlinesの設定

「vi/vimの画面が小さくて見づらい。サイズを変更する方法はないの?」
「ターミナルのウィンドウを広げても、vimの表示サイズが変わらない」
vi/vimの画面サイズは、コマンドモードから簡単に変更できます。

この記事では、vi/vimの画面サイズ(幅と高さ)を変更する方法を解説します。
一時的な変更方法、vimrcでの永続化設定、ターミナル自体のサイズとの関係まで、快適な編集環境を整えるための知識をまとめました。

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

・vi/vimの画面サイズは :set columns=数値(幅)と :set lines=数値(高さ)で変更できる
・永続化したい場合は ~/.vimrc に設定を追記する
・CUI環境(SSH等)ではターミナルのウィンドウサイズがvimの表示サイズを決める
stty size でターミナルの現在のサイズ(行×列)を確認できる

続きを読む "vi・vimの画面サイズを変更する方法|columnsとlinesの設定"

TDB (Trivial DataBase) ファイルの整合性を確認する

TDBファイルが破損しているかもしれない。整合性を確認する方法はないのか。
Sambaが管理するTDB(Trivial DataBase)ファイルが破損すると、ユーザー認証やファイル共有に問題が生じることがあります。

この記事では、TDBファイルの整合性を確認する tdbbackup コマンドの使い方を解説します。

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

・TDBファイルの整合性確認は tdbbackup -v コマンドを使う
・破損を検出した場合は自動的にバックアップからリストアする
*.tdb ワイルドカードで全TDBファイルをまとめてチェックできる
・TDBファイルは /var/lib/samba/ ディレクトリに保存されている

続きを読む "TDB (Trivial DataBase) ファイルの整合性を確認する"

TDB (Trivial DataBase) ファイルの内容を確認する

SambaのTDBファイルの内容を確認したいが、どうやって中身を確認すればよいのかわからない。
TDB(Trivial DataBase)ファイルはバイナリ形式で保存されているため、cat コマンドでは内容を確認できません。

この記事では、TDBファイルの内容を人が読める形式で表示する tdbdump コマンドの使い方を解説します。

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

・TDBファイルの内容確認は tdbdump コマンドを使う
tdbdump はバイナリのTDBファイルを人が読めるテキスト形式で出力する
・出力はキーとデータのペア形式で表示される
tdbdumpsamba-common パッケージに含まれている

続きを読む "TDB (Trivial DataBase) ファイルの内容を確認する"

Sambaのバージョンを確認するコマンド|現場で使う3つの手順

「Windowsから共有フォルダに繋がらなくなった。Sambaのバージョンいくつだっけ?」
脆弱性の対応や、Windows Update後の接続トラブルなど、ファイルサーバー(Samba)のバージョン確認は現場で頻繁に発生するタスクです。

この記事では、Linux(Samba)のバージョンを確認する3つの方法を解説します。環境や目的に合わせて、一番やりやすい方法を選んでみてください。

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

・Sambaのバージョン確認は smbd -V が最も手軽でおすすめ
・Red Hat系では rpm -q samba でパッケージのリリース番号まで確認できる
・Debian/Ubuntu系では dpkg -l | grep samba を使用する
・バージョン確認後は公式サイトやJVNで脆弱性(CVE)の有無を確認する習慣をつける

続きを読む "Sambaのバージョンを確認するコマンド|現場で使う3つの手順"

Postfixのバージョンを確認するコマンド|現場で使う4つの手順

Postfixのバージョンを確認できるようになっておくことはとても重要です。例えば、「自社のメールサーバーに脆弱性が見つかったらしいけど、うちのPostfixのバージョンはいくつだろう?」セキュリティ対応や他システムとの連携時など、メールサーバーのバージョン確認は現場で頻繁に発生する作業です。

この記事では、Linux(Postfix)のバージョンを確認する方法を、目的別に分かりやすく解説します。環境や状況に合わせて、一番やりやすい方法を選んでみてください。

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

・Postfixのバージョン確認は postconf mail_version が最も確実
postfix --version はPostfixが停止中でも確認できる
・Red Hat系では rpm -q postfix でパッケージのリリース番号まで確認できる
・バージョン確認後は脆弱性(CVE)の有無をJVN等で必ず確認する習慣をつける

まずPostfixがインストールされているか確認する

バージョンを調べる前に、そもそも自分の環境にPostfixがインストールされているかを確認しましょう。

Red Hat系Linux(RHEL、AlmaLinux、Rocky Linuxなど)では以下のコマンドで確認できます。

$ rpm -qa | grep postfix postfix-3.5.9-19.el9.x86_64

何も表示されない場合はPostfixがインストールされていません。また、which postfix コマンドでも実行ファイルの場所から確認できます。

$ which postfix /usr/sbin/postfix

続きを読む "Postfixのバージョンを確認するコマンド|現場で使う4つの手順"

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の実践ガイド"

CentOS7の新機能|アーキテクチャ・systemd・firewalld・XFSの主要変更点

「CentOS7でどのような新機能が追加されたか把握したい」
「CentOS6からの移行に際して何を確認すればいいか分からない」

CentOS7は単なるバージョンアップではなく、ファイルシステム・initシステム・ファイアウォール・ブートローダーなど、サーバー運用の根幹に関わる変更が多数行われました。

この記事では、CentOS7の主要な新機能・変更点をカテゴリごとに整理して解説します。

【この記事でわかること】
・64ビット版(x86_64)のみサポートで32ビット版は廃止
・カーネル3.10採用でテラバイトクラスメモリ対応・kpatch(無停止カーネルパッチ)が可能
・デフォルトファイルシステムがext4からXFSに変更
・initからsystemdへ移行し、起動・停止が並列化・高速化
・iptablesからfirewalldへ変更、ゾーンによるセキュリティ管理が可能

続きを読む "CentOS7の新機能|アーキテクチャ・systemd・firewalld・XFSの主要変更点"

Linuxのcron(ジョブスケジューリング)完全解説|crontabの書き方から環境変数設定まで

「バックアップが毎回手作業で大変」「ログ管理を忘れてディスクがあふれた」という経験はありませんか?
Linuxサーバーの運用では、定期的なメンテナンス作業を自動化することが安定運用の基本です。

この記事では、Linuxのジョブスケジューリング(cronatコマンド)を体系的に解説します。
crontabの5フィールドの書き方・システムcrontab・/etc/cron.d/・環境変数設定、crontab -rの危険性とバックアップ手順、さらにcronの現代的な代替手段であるsystemd timerの使い方まで、実務で使えるノウハウを網羅しています。

この記事のポイント

・cronは「分 時 日 月 曜日 コマンド」の5フィールドで定期実行を設定する
・crontab -rは全設定を削除する危険コマンド。必ずバックアップを取ること
・cronの環境変数はシェルと異なる。PATH/LANGは明示的に設定が必要
・1回限りはatコマンド。現代的代替としてsystemd timerも有効

続きを読む "Linuxのcron(ジョブスケジューリング)完全解説|crontabの書き方から環境変数設定まで"

CentOS7で変わったinit廃止とsystemd導入|ランレベルとターゲットの対応関係を解説

「CentOS7からinitがなくなってsystemdになったと聞いたが、何が変わったのか分からない」
「ランレベルとsystemdのターゲットの対応が知りたい」

CentOS7では、従来のinitに代わってsystemdがサービス管理の仕組みとして採用されました。この変更はLinuxの起動・停止・サービス管理の根幹に関わるため、CentOS6以前に慣れた方には戸惑いが生じやすい変更です。

この記事では、initとsystemdの違い、ランレベルとsystemdターゲットの対応関係、CentOS7での確認方法を解説します。

【この記事でわかること】
・CentOS7からinitが廃止され、systemdが採用された
・systemdは並列処理が可能なため、起動・停止が高速化された
・ランレベルの代わりに「ターゲット」という概念が導入された
・ランレベル3→multi-user.target、ランレベル5→graphical.target に対応
systemctl isolate ターゲット名 でランレベルの切り替えが行える

続きを読む "CentOS7で変わったinit廃止とsystemd導入|ランレベルとターゲットの対応関係を解説"

CentOS7のアーキテクチャ変更点|CPU・メモリ・ファイルシステム・パッケージバージョンの比較

「CentOS6からCentOS7に移行する際、何が変わったか把握したい」
「CentOS7のスペック上限やファイルシステムの変更点を確認したい」

CentOS7は従来バージョンと比較して、対応アーキテクチャやCPU・メモリの最大値、ファイルシステムの仕様が大幅に変わりました。

この記事では、CentOS7のアーキテクチャ変更点として、サポートアーキテクチャの変化、論理CPU数・メモリ・ファイルシステムサイズの上限、主要パッケージのバージョン情報をまとめます。

【この記事でわかること】
・CentOS7は32ビット版x86が廃止され、x86_64のみをサポート
・最大論理CPU数は160、RAMは最大6TB(従来6比で大幅増加)
・デフォルトファイルシステムがext4からXFSに変更
・カーネル3.10系、Python 2.7、OpenSSH 6.4などが採用
・systemdがinitシステムとして採用(init廃止)

続きを読む "CentOS7のアーキテクチャ変更点|CPU・メモリ・ファイルシステム・パッケージバージョンの比較"

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の両対応"

pwunconvコマンドでシャドウパスワードを解除する方法|pwckでの事前チェックも

「/etc/shadowファイルの仕組みを理解したい」
「シャドウパスワードを解除する必要が出てきたけど、どうすればいいのか分からない」
Linuxのパスワード管理の仕組みを理解しておくことは、セキュリティ対策の基本です。

この記事では、pwunconv コマンドでシャドウパスワードを解除する方法を解説します。シャドウパスワードの仕組み、pwunconvの実行手順、pwckでの事前チェック、pwconvでの再シャドウ化、セキュリティ上の注意点まで、パスワード管理に必要な知識をまとめました。

【この記事でわかること】
pwunconv コマンドでシャドウパスワード(/etc/shadow)を解除できる
・実行前に pwck でパスワードファイルの整合性チェックが必要
・解除後は暗号化パスワードが /etc/passwd に統合され /etc/shadow が削除される
pwconv で元のシャドウ化状態に戻せる
・通常の運用でシャドウパスワードを解除する必要はない(セキュリティリスクあり)

続きを読む "pwunconvコマンドでシャドウパスワードを解除する方法|pwckでの事前チェックも"

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

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

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

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

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

bashの設定ファイル完全解説

「シェルを起動するたびにエイリアスを設定し直している」「環境変数が毎回リセットされてしまう」という経験はありませんか?
bashの設定ファイルを正しく使えば、こうした手間は一切なくなります。

この記事では、bashの設定ファイル/etc/profile~/.bash_profile~/.bashrc~/.bash_logout)の役割・違い・読み込み順序を体系的に解説します。
ログインシェルと非ログインシェルの違い、sourceコマンドの使い方、スクリプトから設定ファイルを安全に変更する実践Tipsまで、現場で必要な知識を網羅しています。
動作確認環境:RHEL 9.4 / Rocky Linux 9.4

この記事のポイント

・ログインシェルでは/etc/profile→~/.bash_profileの順に読み込まれる
・非ログインシェル(新しいターミナルを開く)では~/.bashrcだけが読まれる
・エイリアス・関数は~/.bashrcに書く。環境変数は~/.bash_profileに書く
・設定変更後はsource ~/.bashrcで即座に反映できる
・/etc/profile.dへの追加はcat <<EOF | sudo teeパターンで安全に行える

続きを読む "bashの設定ファイル完全解説"

yumに関するログ(ログファイル)を把握する|yum historyで操作履歴を管理する方法

「yumで何かインストールしたが、いつ・何をインストールしたか確認したい」
「yumのログがどこに記録されているか分からない」

yumを使ったパッケージのインストール・アップデート・削除は、すべてログファイルに記録されています。パッケージ管理の履歴を把握することは、障害調査やシステム変更の記録管理に欠かせません。

この記事では、yumのログファイルの場所と確認方法、yum history コマンドを使った操作履歴の管理まで実践的に解説します。

【この記事でわかること】
・yumのログは /var/log/yum.log に記録される(CentOS 6以前)
・CentOS 7以降は yum history コマンドで詳細な履歴管理ができる
・ログの保存場所は /etc/yum.conflogfile で設定する
yum history info [番号] でトランザクション単位の詳細を確認できる
yum history undo [番号] でインストール操作を取り消せる

続きを読む "yumに関するログ(ログファイル)を把握する|yum historyで操作履歴を管理する方法"

Apacheのタイムアウト(Timeout)を設定・確認する方法【2.4対応版】

「Apacheのタイムアウトエラーが出てしまう」
「Timeoutの秒数はどこで設定するの?」
「今の設定値を確認したい」
Webサーバーの構築や障害対応の現場では、こうした確認が日常的に発生します。

この記事では、Apacheのタイムアウト(Timeout)設定を確認・変更する全手順を体系的に解説します。現代の主流であるApache 2.4系(RHEL 9 / AlmaLinux 9など)に完全対応した、今日から使える内容です。

【この記事でわかること】
・Apacheの Timeout ディレクティブでタイムアウト秒数を設定できる
・Apache 2.4以降のデフォルトは 60秒(2.2以前は300秒)
・設定ファイルは httpd.confTimeout ディレクティブを変更する
httpd -D DUMP_RUN_CFG | grep Timeout で現在の設定値を確認できる
・設定変更後は systemctl reload httpd で反映する

続きを読む "Apacheのタイムアウト(Timeout)を設定・確認する方法【2.4対応版】"

Apacheのエラーログを設定する|ErrorLogとLogLevelの使い方・バーチャルホスト別設定

「Apacheでエラーが発生しているが、どこにログが出力されているか分からない」
\n「エラーログに情報が出過ぎて、本当の問題が埋もれてしまう」
\n
\nApacheのエラーログは、サーバートラブルの原因特定に欠かせないファイルです。ログの出力先とログレベルを適切に設定することで、必要な情報を効率的に収集できます。
\n
\nこの記事では、ApacheのエラーログをhttpDConfで設定する方法を、ErrorLog ディレクティブの基本から LogLevel の各段階の意味、バーチャルホスト別のログ設定まで実践的に解説します。
\n
\n
【この記事でわかること】
\n\n・ErrorLog ディレクティブでエラーログの出力先ファイルを指定する
\n・LogLevel で出力する重要度レベルを debug/info/notice/warn/error/crit/alert/emerg から選ぶ
\n・デフォルトは LogLevel warn(warn以上のメッセージを記録)
\n・バーチャルホスト設定内に ErrorLog を書けばサイト別にログを分けられる
\n・tail -f /var/log/httpd/error_log でリアルタイムにエラーを監視できる
\n

続きを読む "Apacheのエラーログを設定する|ErrorLogとLogLevelの使い方・バーチャルホスト別設定"

Apacheの設定にインデックスファイルを追加する|DirectoryIndexでindex.phpを最優先にする方法

「URLでディレクトリを指定したのに、ファイル一覧が表示されてしまう」
\n「index.htmlではなくindex.phpをデフォルトページにしたい」
\n
\nApacheの DirectoryIndex ディレクティブを設定することで、ディレクトリアクセス時に表示するデフォルトファイルを指定できます。優先順位も制御できるため、WordPressなどのPHPサイト構築でも必須の設定です。
\n
\nこの記事では、Apacheの設定ファイル(httpd.conf)で DirectoryIndex を設定する方法を、基本の追加・変更から複数ファイルの優先順位指定まで実践的に解説します。
\n
\n
【この記事でわかること】
\n\n・DirectoryIndex でディレクトリアクセス時のデフォルトファイルを指定できる
\n・複数ファイルを指定すると左から順に優先して検索される
\n・設定ファイルは /etc/httpd/conf/httpd.conf<IfModule dir_module>
\n・設定変更後は systemctl reload httpd で再読み込みが必要
\n・PHPサイトでは index.php を最優先に設定するのが一般的
\n

続きを読む "Apacheの設定にインデックスファイルを追加する|DirectoryIndexでindex.phpを最優先にする方法"

Apacheで採用しているモジュールを確認する方法|httpd -Mとmpm・mod_rewriteの有効確認

「Apacheにどのモジュールが組み込まれているか確認したい」
\n「mod_rewriteが有効かどうか調べる方法がわからない」
\n
\nApacheのモジュールはサーバーの機能を決定します。認証・URL書き換え・圧縮・SSL対応など、各機能はモジュールで提供されているため、モジュール一覧の確認はトラブルシュートや設定変更の基本操作です。
\n
\nこの記事では、httpd -Mapachectl -M コマンドを使ってApacheのモジュール一覧を確認する方法を解説します。静的モジュールと動的モジュールの違い、特定モジュールの有効確認方法まで実践的に解説します。
\n
\n
【この記事でわかること】
\n\n・httpd -M または apachectl -M でロード済みモジュール一覧を表示できる
\n・(static) は起動時に固定で組み込まれた静的モジュール
\n・(shared) は実行時に動的にロードされるモジュール
\n・httpd -l で静的モジュール(コンパイル組み込み)のみを表示できる
\n・grepと組み合わせて特定モジュールの有効確認ができる
\n

続きを読む "Apacheで採用しているモジュールを確認する方法|httpd -Mとmpm・mod_rewriteの有効確認"

Apacheの設定ファイルを構文チェックする方法|httpd -tとapachectl configtestで文法エラーを検出

「httpd.confを編集したら、Apacheが起動しなくなった」
「設定ファイルを変更するたびにドキドキしながら再起動している」
設定ミスは1文字でもApacheが起動不能になる深刻な問題です。本番環境なら即サービス停止です。

この記事では、Apacheの設定ファイルを本番投入前にチェックするhttpd -tコマンドとapachectl configtestコマンドの使い方を解説します。
エラーメッセージの読み方、設定変更のベストプラクティス、本番環境での安全な反映手順まで、現場で実践できる内容をまとめました。
【この記事でわかること】
httpd -t または apachectl configtest で設定ファイルの構文を事前チェックできる
・「Syntax OK」と表示されれば文法エラーなし、エラー時は行番号が表示される
・本番環境では configtest → graceful の手順で無停止で設定を反映する
Include で読み込まれた全設定ファイル(conf.d/*.conf)もまとめてチェックされる

続きを読む "Apacheの設定ファイルを構文チェックする方法|httpd -tとapachectl configtestで文法エラーを検出"

使用中のプロセスが終了するのを待ってhttpdサービスを停止する|graceful-stopの使い方

「Apacheを停止したいけれど、通信中のユーザーを切断したくない…」
\n
\n本番運用中のWebサーバーで systemctl stop httpd を実行すると、処理中のリクエストが途中で切断されてしまいます。ダウンロード中のユーザーや決済処理中の顧客に影響を与えないためには、接続が終わるのを待ってから停止する仕組みが必要です。
\n
\nこの記事では、Apache HTTP Serverの graceful-stop を使って、通信中のクライアントに影響を与えずhttpdサービスを停止する方法を解説します。
\n
\n
【この記事でわかること】
\n\n・graceful-stop は通信中のリクエストが完了するのを待ってから停止する
\n・apachectl graceful-stop または httpd -k graceful-stop で実行できる
\n・systemctl stop httpd は即時停止で既存接続を切断する
\n・RHEL9系は apachectl、Ubuntu LTSは apache2ctl とコマンド名が異なる
\n・待ち時間の上限は GracefulShutdownTimeout ディレクティブで設定できる
\n

続きを読む "使用中のプロセスが終了するのを待ってhttpdサービスを停止する|graceful-stopの使い方"

httpdサービスを起動・停止・再起動する方法|systemctlとinit.dの両対応

「httpdサービスを起動しようとしたが、どのコマンドを使えばいいかわからない」
\n「CentOS 6系のinit.dコマンドしか知らないが、CentOS 7以降ではsystemctlが必要と聞いた」
\n
\nこの記事では、ApacheのhttpdサービスをLinuxで起動・停止・再起動する方法を、CentOS 7以降のsystemctlから旧来のinit.dまで実践的に解説します。
\n
\n
【この記事でわかること】
\n\n・CentOS 7以降は systemctl start httpd でサービスを起動する
\n・systemctl stop / restart / reload / status で停止・再起動・再読込・確認ができる
\n・systemctl enable httpd でOS起動時に自動起動するよう設定できる
\n・CentOS 6以前は /etc/init.d/httpd start または service httpd start を使う
\n・systemctl status httpd でエラーログも含めた詳細な状態を確認できる
\n

続きを読む "httpdサービスを起動・停止・再起動する方法|systemctlとinit.dの両対応"

dmidecodeコマンドでLinuxのハードウェアの情報を取得する|メモリ・CPU・BIOS確認の実践例

「サーバーのメモリ容量やCPU型番を調べたいけど、どのコマンドを使えばいいかわからない」
「物理サーバーのシリアル番号を確認したいが、本体のラベルを見に行くのは面倒」

こうした悩みは、dmidecodeコマンドを使えばすべて解決できます。

dmidecodeは、Linux上からBIOSに格納されたハードウェア情報(DMIテーブル)を読み取り、メモリ容量・CPU型番・シリアル番号・BIOSバージョンなどを一括で確認できるコマンドです。

この記事では、dmidecodeコマンドの基本的な使い方から、--typeオプションや-sオプションによる絞り込み、grepとの組み合わせ、仮想環境の判定方法まで、実務で役立つ使い方を解説します。

【この記事でわかること】
sudo dmidecode でBIOSに格納されたハードウェア情報を一括取得できる
--type bios/processor/memory/system で必要な情報だけに絞り込める
-s system-serial-number などの-sオプションで特定情報を1行で取得できる
・grepと組み合わせてシリアル番号・CPU型番・メモリ容量を素早く抽出できる
system-product-name の値で仮想環境か物理サーバーかを判定できる

続きを読む "dmidecodeコマンドでLinuxのハードウェアの情報を取得する|メモリ・CPU・BIOS確認の実践例"

07.CentOS6.4でFTPサーバー構築(Proftpd1.3.4cのインストールと設定)

「CentOS6.4にFTPサーバーを構築したいが、どこから手をつければいいかわからない」「インストールはできたが、FFFTPで接続できない」
CentOS6.4でProFTPDを導入しようとすると、ソースコードからのビルドが必要なため、初めてだと手順に迷いがちです。

このページでは、ProFTPD 1.3.4cをCentOS6.4にインストールし、FTPサーバーを構築する手順をステップごとに解説します。ダウンロードからコンパイル・インストール、設定ファイルの編集、ファイアウォールの設定、FFFTPでの接続確認まで、一連の手順をすべてカバーしています。

FTPサーバーは、ネットワークを通じてファイルを送受信するための機能を提供するサーバーです。たとえば、作成したHTMLファイルをWebサーバーへアップロードするときに「FTP」を使いますが、そのFTP接続を受け付けるのがFTPサーバーの役割です。

この記事のポイント

・ProFTPDはソースコードからconfigure/make/make installの手順でインストールする
・proftpd.confにListOptions "-a"を追加してファイル一覧を正しく表示させる
・chkconfig --level 345でOS起動時にProFTPDが自動起動するように設定する
・接続できない場合はファイアウォールとFFFTPのPASVモード設定を最初に確認する

本ページの内容を実施するには、下記ページの手順を実行し、事前にCentOS6.4の環境を構築する必要があります。
01.CentOS6.4ファイルのダウンロード
02.CentOS6.4のインストールCD作成(burnatonceでライティング)
03.CentOS6.4のインストール
04.CentOS6.4で端末(ターミナル)を起動する(GUI)
05.CentOS6.4でWebサーバー構築(Apache2.2のインストール)
06.CentOS6.4でWebサーバー構築(Apache2.2の設定)

1.ProFTPDの公式サイトへアクセスします。
http://www.proftpd.org/ centos64_proftpd134c_inst_001.jpg もし、このマニュアルと同じバージョン1.3.4cがない場合は、下記のページにアクセスして同じバージョンを入手してください。

ファイル名:proftpd-1.3.4c.tar.gz
ftp://ftp.proftpd.org/distrib/source/
2.ダウンロードアドレスを確認します。
centos64_proftpd134c_inst_002.jpg ダウンロードページに複数のバージョンが並んでいる場合は、ファイル名を確認してバージョン1.3.4cのtarボールを選んでください。
3.2で確認したURLをもとにwgetでProFTPDをダウンロードします。

[root@Tiger src]# cd /usr/local/src/ [root@Tiger src]# wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.4c.tar.gz --2013-03-20 19:06:28-- ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.4c.tar.gz => `proftpd-1.3.4c.tar.gz' ftp.proftpd.org をDNSに問いあわせています... 86.59.114.198 ftp.proftpd.org|86.59.114.198|:21 に接続しています... 接続しました。 anonymous としてログインしています... ログインしました! ==> SYST ... 完了しました。 ==> PWD ... 完了しました。 ==> TYPE I ... 完了しました。 ==> CWD (1) /distrib/source ... 完了しました。 ==> SIZE proftpd-1.3.4c.tar.gz ... 7689622 ==> PASV ... 完了しました。 ==> RETR proftpd-1.3.4c.tar.gz ... 完了しました。 長さ: 7689622 (7.3M) (確証はありません) 100%[===========================================>] 7,689,622 61.3K/s 時間 2m 37s 2013-03-20 19:09:09 (47.7 KB/s) - `proftpd-1.3.4c.tar.gz' へ保存終了 [7689622] [root@Tiger src]#

※ たまにサーバーが重くダウンロードが途中で止まることがあります。
そのような場合は、「Ctrl」+「c」キーを入力して処理を強制終了し、時間を置いて再度ダウンロードしてください。

また、他のミラーサーバーアドレスも載せておくので、いくら待ってもダウンロードできない場合はこちらのアドレスもお試しください。
http://ftp.yz.yamagata-u.ac.jp/pub/network/proftpd/distrib/source/
4.ProFTPDを展開します。

[root@Tiger src]# tar zxvf proftpd-1.3.4c.tar.gz proftpd-1.3.4c/ proftpd-1.3.4c/doc/ proftpd-1.3.4c/doc/utils/ proftpd-1.3.4c/doc/utils/ftpcount.html ~中略~ proftpd-1.3.4c/README.controls proftpd-1.3.4c/CREDITS proftpd-1.3.4c/Makefile.in proftpd-1.3.4c/README.DSO proftpd-1.3.4c/README.ports [root@Tiger src]#

5.configureを実行します。

[root@Tiger src]# cd proftpd-1.3.4c [root@Tiger proftpd-1.3.4c]# ./configure --prefix=/usr/local/proftpd checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu ~中略~ config.status: creating utils/ftpwho.1 config.status: creating Makefile config.status: creating Make.rules config.status: creating config.h config.status: executing libtool commands config.status: executing default commands [root@Tiger proftpd-1.3.4c]#

configureの後ろにオプションとして「--prefix=/usr/local/proftpd」を指定しています。
これはProFTPDのバイナリを/usr/local/proftpdへインストールするように指定しています。デフォルトのインストール先(/usr等)と分離しておくことで、後でアンインストールや差し替えがしやすくなります。
6.コンパイルとインストールを行います。

[root@Tiger proftpd-1.3.4c]# make echo \#define BUILD_STAMP \"`date +"%a %b %e %Y %H:%M:%S %Z"`\" > include/buildstamp.h cd lib/ && make lib make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.4c/lib' に入ります ~中略~ gcc -L./lib -o ftptop utils/ftptop.o utils/scoreboard.o utils/misc.o -lncurses -ltinfo -lsupp -lcrypt -ldl gcc -L./lib -o ftpwho utils/ftpwho.o utils/scoreboard.o utils/misc.o -ltinfo -lsupp -lcrypt -ldl [root@Tiger proftpd-1.3.4c]# make install cd lib/ && make lib make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.4c/lib' に入ります make[1]: `lib' に対して行うべき事はありません. ~中略~ make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.4c/include' から出ます /usr/bin/install -c -o root -g root -m 0644 proftpd.pc /usr/local/proftpd/lib/pkgconfig/proftpd.pc test -z "" || (cd locale/ && make install) [root@Tiger proftpd-1.3.4c]#

makeでソースコードをコンパイルし、make installでコンパイル済みのバイナリを指定先(/usr/local/proftpd)へインストールします。コンパイルには数分かかる場合があります。エラーが出た場合は、開発ツール(gcc等)がインストールされているか確認してください。
7.ProFTPD用ユーザーグループを作成します。

[root@Tiger proftpd-1.3.4c]# groupadd nogroup

ProFTPDは内部処理で「nogroup」という名前のグループを使用します。このグループが存在しないとProFTPD起動時にエラーが発生するため、ここで作成しておきます。
8.ファイル一覧を表示するために、「/usr/local/proftpd/etc/proftpd.conf」ファイルの行末に「ListOptions "-a"」を追加します。

[root@Tiger proftpd-1.3.4c]# vi /usr/local/proftpd/etc/proftpd.conf # We want clients to be able to login with "anonymous" as well as "ftp" UserAlias anonymous ftp # Limit the maximum number of anonymous logins MaxClients 10 # We want 'welcome.msg' displayed at login, and '.message' displayed # in each newly chdired directory. DisplayLogin welcome.msg DisplayChdir .message # Limit WRITE everywhere in the anonymous chroot DenyAll ListOptions "-a"

「ListOptions "-a"」は、FTPクライアントでファイル一覧を取得する際に、ドット(.)で始まる隠しファイルも表示するためのオプションです。このオプションを追加しておかないと、FFFTPなどのFTPクライアントでファイル一覧が正しく表示されないことがあります。
追加したら「:wq」で保存終了します。
9.ProFTPD起動用ファイルを作成します。

[root@Tiger proftpd-1.3.4c]# sed -e 's/\/etc\/proftpd.conf/\/usr\/local\/proftpd\/etc\/proftpd.conf/' \ > -e 's/\/usr\/sbin/\/usr\/local\/proftpd\/sbin/' \ > /usr/local/src/proftpd-1.3.4c/contrib/dist/rpm/proftpd.init.d > /etc/rc.d/init.d/proftpd

※ 実行する場合は、上の例と同じく3行で入力してください。
行の最後に「\改行」と入力すると、次行の頭に「>」が自動で表示され、改行しても一行のコマンドとして扱えます。

このsedコマンドは、ソースコード付属のinitスクリプトを雛形として、今回のインストール先パス(/usr/local/proftpd)に合わせて書き換えたものを/etc/rc.d/init.d/proftpdに保存しています。

関連情報として、下記ページも参照してください。
Linuxでキーボードから¥記号を入力するとバックスラッシュになってしまいます。
10.ProFTPD起動用ファイルを編集します。(32行目あたり)
「export PATH=$PATH:/usr/local/proftpd/sbin:/usr/local/proftpd/bin」を追加します。

[root@Tiger proftpd-1.3.4c]# vi /etc/rc.d/init.d/proftpd # Source function library. . /etc/rc.d/init.d/functions export PATH=$PATH:/usr/local/proftpd/sbin:/usr/local/proftpd/bin

ProFTPDのバイナリは/usr/local/proftpd/sbin配下にインストールされており、デフォルトのPATHには含まれていません。このexport文を追加することで、initスクリプトからproftpdコマンドを正常に実行できるようになります。
11.ProFTPDの起動準備を行います。

[root@Tiger proftpd-1.3.4c]# chmod 755 /etc/rc.d/init.d/proftpd [root@Tiger proftpd-1.3.4c]# chkconfig --add proftpd [root@Tiger proftpd-1.3.4c]# chkconfig --level 345 proftpd on

chmod 755:initスクリプトに実行権限を付与します
chkconfig --add:proftpdをサービスとして登録します
chkconfig --level 345:ランレベル3(テキストモード)、4、5(GUIモード)でProFTPDを自動起動するように設定します
12.hostsファイルを編集します。

[root@Tiger proftpd-1.3.4c]# echo "127.0.0.1 Tiger" >> /etc/hosts

※「Tiger」の箇所は、03.CentOS6.4のインストールの14で設定したホスト名を入力してください。

ProFTPDは起動時に自分自身のホスト名を正引きしようとします。/etc/hostsに127.0.0.1とホスト名の対応を記述しておかないと、起動が遅くなったり警告が表示されることがあります。
13.ProFTPDを起動します。

[root@Tiger proftpd-1.3.4c]# /etc/rc.d/init.d/proftpd start proftpd を起動中: [ OK ]

「[ OK ]」が表示されれば起動成功です。

参考)ProFTPDの起動・停止コマンド

# 起動 /etc/rc.d/init.d/proftpd start # 再起動 /etc/rc.d/init.d/proftpd restart # 停止 /etc/rc.d/init.d/proftpd stop

14.ファイアウォールの設定を行います。
05.CentOS6.4でWebサーバー構築(Apache2.2のインストール)の12でWebを許可したのと同じ手順で、FTPも許可設定にします。
centos64_proftpd134c_inst_003.jpg ファイアウォールでFTPを許可しないと、FFFTPなどのクライアントからサーバーに接続できません。設定後は必ず「適用」ボタンをクリックして設定を反映してください。
15.サービス登録の確認を行います。

[root@Tiger proftpd-1.3.4c]# chkconfig --list proftpd proftpd 0:off 1:off 2:off 3:on 4:on 5:on 6:off

ランレベル3、4、5が「on」になっていれば正常です。このサービスに登録すると、次回OS起動時より自動でProFTPDが起動します。
16.FTPの接続確認を行います。
当マニュアルではFFFTPを使用して接続確認を行います。インストールしていない場合は、下記サイトよりFFFTPをダウンロードしてください。
・FFFTP
http://www.vector.co.jp/soft/win95/net/se061839.html

インストールが完了してFFFTPを起動すると下図の画面が起動します。
■FFFTPの設定
centos64_proftpd134c_inst_004.jpg centos64_proftpd134c_inst_005.jpg 続いて、「高度」タブをひらき、「LISTコマンドでファイル一覧を取得」にチェックが付いていない場合は付けて「OK」を押下します。
centos64_proftpd134c_inst_006.jpg ■FFFTPの接続確認
centos64_proftpd134c_inst_007.jpg centos64_proftpd134c_inst_008.jpg 「/home/ユーザー名/www」ディレクトリにアクセスして、HTMLファイルをFFFTPの右側にドラッグ&ドロップすれば、ファイルのアップロードができるようになり、HTMLファイルの更新を行えます。

■ FTP接続が成功しない場合
FFFTPの下記の箇所を確認してください。
[接続]→[ホストの設定]→[ホスト一覧上の対象ホストを選択]→[設定変更]

接続が成功しない場合は「拡張」タブをひらき、「PASVモードを使う」のチェック状態を確認してください。チェックが付いている場合は外して接続確認を行ってください。チェックが付いていない場合はチェックを入れて接続確認を行ってください。
centos64_proftpd134c_inst_009.jpg アクティブモードとパッシブモードについて
FTPの接続方式には「アクティブモード」と「パッシブモード(PASV)」の2種類があります。
アクティブモード:サーバー側からPCへデータ接続を確立します。PC側のファイアウォールがポートを開放していないと接続できません
パッシブモード(PASV):PC側からサーバー側にデータ接続を確立します。PC側がファイアウォール配下にある場合に有効です

自分のPCにファイアウォールが設定されている場合はパッシブモードを試してみてください。それでも接続できない場合は、サーバー側のファイアウォール設定(手順14)を再確認してください。

まとめ
CentOS6.4へのProFTPD 1.3.4cのインストールと設定手順を以下にまとめます。

手順 コマンド・内容
1. ダウンロード wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.4c.tar.gz
2. 展開 tar zxvf proftpd-1.3.4c.tar.gz
3. configure ./configure --prefix=/usr/local/proftpd
4. コンパイル・インストール make && make install
5. ユーザーグループ作成 groupadd nogroup
6. 設定ファイル編集 proftpd.confにListOptions "-a"を追加
7. 自動起動設定 chkconfig --level 345 proftpd on
8. hosts設定 echo "127.0.0.1 ホスト名" >> /etc/hosts
9. 起動 /etc/rc.d/init.d/proftpd start
10. ファイアウォール設定 FTPを許可(GUIから設定)
11. 接続確認 FFFTPでIPアドレス・ユーザー名・パスワードを入力して接続
FTP接続に問題が生じたときは、ファイアウォールの設定(手順14)とFFFTPのPASVモード設定(手順16)を最初に確認してください。この2点で解決するケースがほとんどです。

ProFTPDのインストールができたら、次は実務サーバー運用の「型」を身につけませんか?

FTPサーバーの構築手順を理解しても、「実際の現場でどう組み合わせるか」は断片的な情報だけでは身につきません。現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

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

yumでダウンロードしたRPMを残す方法|keepcache設定とキャッシュ管理

「yumでインストールしたRPMパッケージをもう一度使いたいのに、キャッシュが消えてしまっている」
yumはデフォルトでインストール後にダウンロードしたRPMファイルを削除します。オフライン環境への持ち出しや、同じパッケージを複数サーバーに展開したい場面では、この設定が邪魔になります。

この記事では、yumでダウンロードしたRPMファイルをキャッシュとして残す方法を、設定ファイルの変更手順から保存先ディレクトリの確認まで解説します。

【この記事でわかること】
/etc/yum.confkeepcache=1 でRPMキャッシュを保持できる
・デフォルトは keepcache=0(インストール後に自動削除)
・保存先は /var/cache/yum/ 配下のアーキテクチャ・バージョン別ディレクトリ
・設定変更後に yum install を実行すればRPMが残るようになる

続きを読む "yumでダウンロードしたRPMを残す方法|keepcache設定とキャッシュ管理"

tarコマンドでアーカイブファイルを展開する方法|tar -xvf・-zxvfの使い分けと安全策

「ダウンロードしてきた tar.gz ファイル、どうやって展開するんだったか毎回忘れる」
tar -xvftar -zxvf の違いがいつまでも頭に入らない」
Linuxを触り始めた頃、誰もが一度はぶつかる壁です。

この記事では、Linuxでアーカイブファイルを展開する tar コマンドの実践的な使い方を解説します。
基本となる tar -xvftar -zxvf の組み合わせから、上書きを防ぐ安全策、特定のディレクトリだけ展開する方法、現場で詰まりやすいエラー対処まで網羅しました。

この記事のポイント

tar -xvf ファイル.tar が「展開」の基本書式
・gzip圧縮されているなら tar -zxvf ファイル.tar.gz
・bzip2圧縮なら -z の代わりに -jtar -jxvf
-k オプションで既存ファイルを上書きせず安全に展開できる

続きを読む "tarコマンドでアーカイブファイルを展開する方法|tar -xvf・-zxvfの使い分けと安全策"

tarコマンドでディレクトリを圧縮(アーカイブ)する方法|除外設定も

tarコマンドでディレクトリを圧縮(アーカイブ)できると、サーバーの引っ越しやバックアップで、ディレクトリを丸ごと圧縮して保存することができるようになります。運用保守の現場では、数十万個のファイルがあるディレクトリを1つのファイルにまとめる(アーカイブする)作業が頻繁に発生します。

この記事では、Linuxの tar コマンドを使ってディレクトリを圧縮・アーカイブする実践的な手順を解説します。単一のディレクトリだけでなく、複数ディレクトリのまとめ方や、不要なファイルを除外する(--exclude)、解凍先の指定といった現場のノウハウまで網羅しました。

【この記事でわかること】
tar czvf コマンドでディレクトリを丸ごとgzip圧縮できる
--exclude オプションでキャッシュやログファイルを除外できる
・複数ディレクトリをスペース区切りで指定すれば1つにまとめられる
tar tzvf で展開せずに中身を確認する習慣が現場の鉄則
・解凍先を変えたい場合は -C、権限を保持する場合は -p オプションを使う

続きを読む "tarコマンドでディレクトリを圧縮(アーカイブ)する方法|除外設定も"

tarコマンドでアーカイブを展開せずに中身を確認する方法|tvfオプションと圧縮形式別の使い方

「tarコマンドでアーカイブを作ったものの、展開する前に中身を確認したい」
そんな場面は現場でよくあります。展開先のディスク容量が足りるか確認したい、どのファイルが入っているか事前にチェックしたい——そういったときに使うのが tar t オプションです。

この記事では、tarコマンドで展開せずにアーカイブの中身を確認する方法を、tvf オプションの使い方から .tar.gz・.tar.bz2・.tar.xz など圧縮形式別の対応まで実践的に解説します。

【この記事でわかること】
・tarコマンドの t オプションで展開せずに中身を一覧表示できる
v(verbose)を追加すると権限・所有者・サイズ・更新日時も確認できる
・.tar.gz は z、.tar.bz2 は j、.tar.xz は J を組み合わせる
grep と組み合わせて特定ファイルだけを検索する実務Tipsも紹介

続きを読む "tarコマンドでアーカイブを展開せずに中身を確認する方法|tvfオプションと圧縮形式別の使い方"

Zip形式で圧縮されたファイルから特定の文字列を含む行を抽出する方法|zgrepとzegrepの使い方

「gzip圧縮されたファイルをgrepで検索しようとしたが、結果が出ない」
「.gzファイルを解凍せずにそのまま文字列検索したい」
gzip圧縮ファイル(.gz)に対して通常の grep コマンドを実行しても、バイナリデータとして認識されて正しく検索できません。
そのような場合は zgrepzegrep コマンドを使うと、解凍せずにそのまま文字列を検索できます。

この記事では、zgrepコマンドを使ってgzip圧縮ファイルを検索する方法を解説します。

【この記事でわかること】
・zgrepコマンドで.gzファイルを解凍せずに検索する方法
・zegrepとzfgrepとの違い
・grep・zgrep・zgrepの使い分け
・ローテートされたログファイルを横断検索する実務的な方法

続きを読む "Zip形式で圧縮されたファイルから特定の文字列を含む行を抽出する方法|zgrepとzegrepの使い方"

Linuxの主要なログファイルを確認する方法|/var/log/配下の一覧とjournalctlの使い方

「サーバーで何かエラーが出たけど、どのログを見ればいいかわからない」
「/var/log/の下にファイルがたくさんあって、どれが何のログかわからない」

Linuxサーバーのトラブル調査は、適切なログファイルを見つけることが第一歩です。
ログの場所を知らないままコマンドを打ち続けても、原因にはたどり着けません。

この記事では、/var/log/配下の主要なログファイルの役割と確認方法、
syslog/rsyslogの仕組み、journalctlによるsystemdログの確認まで、
実際のサーバー運用で使う手順を解説します。
【この記事でわかること】
・/var/log/配下の主要ログファイルとその内容
・tail -fでリアルタイムにログを確認する方法
・journalctlコマンドでsystemdログを確認する方法
・ログを素早く絞り込む実務的なコマンドパターン

続きを読む "Linuxの主要なログファイルを確認する方法|/var/log/配下の一覧とjournalctlの使い方"

特定の文字列を含むファイルを検索する(特定のディレクトリを対象)|grep -rの使い方と実務Tips

「特定のディレクトリ内にあるファイルから、特定の文字列を含むファイルだけを検索したい」
「grep -rオプションの使い方がわからない」
Linuxの grep コマンドに -r(recursive)オプションを付けると、指定したディレクトリ以下を再帰的に検索して、特定の文字列を含むファイルとその行を表示できます。

この記事では、grepコマンドでディレクトリを再帰検索する方法と実務で役立つオプションを解説します。

【この記事でわかること】
・grep -rでディレクトリ内を再帰的に検索する基本手順
・-lオプションでファイル名のみ表示する方法
・--excludeオプションで特定ファイルを除外する方法
・大文字・小文字を区別しない検索(-i)との組み合わせ

続きを読む "特定の文字列を含むファイルを検索する(特定のディレクトリを対象)|grep -rの使い方と実務Tips"

SSHのポート番号を変更する方法|sshd_configのPort設定とfirewall-cmdでの開放手順

「SSHのポートをデフォルトの22番から変更したいが、設定を間違えてサーバーにログインできなくなりそうで怖い」「firewall-cmdでポートを開けたのに繋がらない」——SSHのポート変更は、手順を間違えると自分をサーバーからロックアウトしてしまいます。

SSHのデフォルトポート22番は攻撃者がまず最初にスキャンするポートです。変更するだけでブルートフォース攻撃の試行回数を大幅に減らせます。

この記事では、sshd_configでSSHポートを変更する手順をステップごとに解説します。firewall-cmdによるポート開放、SELinuxへの対応、接続確認の方法まで実行例付きでまとめます。RHEL 9.4 / Rocky Linux 9で動作確認済みです。
【この記事でわかること】
・/etc/ssh/sshd_config でSSHポート番号を変更する手順
・firewall-cmdで新ポートを開放し、旧22番を閉じる方法
・SELinuxが有効な環境での semanage による設定追加
・接続確認の手順とロックアウトを防ぐ安全な切り替え方法

続きを読む "SSHのポート番号を変更する方法|sshd_configのPort設定とfirewall-cmdでの開放手順"

Linuxのポート状況を確認する

「Linuxでどのポートが開いているか確認したい」
「ssコマンドとnetstatコマンドの違いがわからない」
Linuxのポート確認には、ssnetstatlsofnmap など、目的に応じて使い分けられる複数のコマンドがあります。

この記事では、Linuxでポートの状況を確認するコマンドの使い方を解説します。接続待ちポートの確認からファイアウォールの設定確認まで、サーバー運用で必要な知識をまとめました。

【この記事でわかること】
・ssコマンドで接続待ちポートを確認する方法
・netstatコマンドでポート状況を確認する方法
・lsofコマンドでプロセスが使用するポートを確認する方法
・firewall-cmdでファイアウォールのポート設定を確認する方法
・nmapで外部からポートが開いているか確認する方法

続きを読む "Linuxのポート状況を確認する"

ファイル内の特定文字で終わる文字列を抽出する方法|grep $(ダラー)の正規表現と活用例

「grepで特定の文字で終わる行だけを抽出したい」
「$記号をgrepで使う方法がわからない」
Linuxの grep コマンドで「特定の文字で終わる行」を抽出するには、正規表現の $(ダラー)記号を使います。
$ は「行の末尾」を意味するアンカーで、ファイル名一覧の絞り込みやログの解析で役立ちます。

この記事では、grep $(ダラー)を使って行末で終わる文字列を抽出する方法を解説します。

【この記事でわかること】
・$記号で行の末尾で終わる文字列を抽出する方法
・^(行頭)と$(行末)を組み合わせた検索パターン
・ファイル拡張子での絞り込みや設定ファイルの解析例
・grepの正規表現で使う主要なアンカー一覧

続きを読む "ファイル内の特定文字で終わる文字列を抽出する方法|grep $(ダラー)の正規表現と活用例"

ファイル内の特定文字から始まる文字列を抽出する方法|grep ^の正規表現と実務活用例

「grepで特定の文字から始まる行だけを抽出したい」
「^記号をgrepで使う方法がわからない」
Linuxの grep コマンドで「特定の文字から始まる行」を抽出するには、正規表現の ^(キャレット)記号を使います。
^ は「行の先頭」を意味するアンカーで、設定ファイルの解析やログの絞り込みで頻繁に使います。

この記事では、grep ^(キャレット)を使って行頭から始まる文字列を抽出する方法を解説します。

【この記事でわかること】
・^記号で行の先頭から始まる文字列を抽出する方法
・-iオプションと組み合わせて大文字・小文字を区別しない検索
・設定ファイルから有効な設定行だけを抽出する実用例
・^と$(行末)を組み合わせた応用パターン

続きを読む "ファイル内の特定文字から始まる文字列を抽出する方法|grep ^の正規表現と実務活用例"

diff3コマンドで3つのファイルの差分を表示する方法|出力の読み方とマージ手順

「3つのファイルの差分を確認したい」
「diffコマンドは2ファイルまでしか比較できないと思っていた」
diff コマンドは通常2ファイルの比較ですが、diff3 コマンドを使えば3つのファイルを同時に比較できます。
ソースコードのマージ作業やコンフリクトの確認など、複数バージョンのファイルを扱う場面で役立ちます。

この記事では、diff3コマンドの基本的な使い方と出力の読み方を解説します。

【この記事でわかること】
・diff3コマンドで3つのファイルを比較する方法
・出力結果の読み方(====記号の意味)
・-Aオプションと-mオプションでマージする方法
・diffとdiff3の使い分け

続きを読む "diff3コマンドで3つのファイルの差分を表示する方法|出力の読み方とマージ手順"

cmpコマンドで2つのファイルを比較する方法|バイト単位の差分確認とスクリプト活用

「2つのファイルが同じ内容かどうか確認したい」
「cmpコマンドとdiffコマンドの違いがよくわからない」
Linuxで2つのファイルを比較するコマンドとして、cmp(compare)があります。
diff が行単位の差分を表示するのに対し、cmp はバイト単位で比較し、最初に異なる箇所だけを簡潔に報告します。

この記事では、cmpコマンドの基本的な使い方と実務での使いどころを解説します。

【この記事でわかること】
・cmpコマンドでファイルの同一性を確認する方法
・差分があった場合にバイト位置と行番号を確認する方法
・-l・-sオプションの使い方
・cmpとdiffの違いと使い分け方

続きを読む "cmpコマンドで2つのファイルを比較する方法|バイト単位の差分確認とスクリプト活用"

cat -nとnlコマンドでファイルに行番号を付けて表示する方法|番号のカスタマイズも

「設定ファイルの○○行目にエラーがあると言われたけど、行番号が表示されなくて探しにくい...」
「cat -nとnlコマンドの違いがよくわからない。どっちを使えばいいの?」

Linuxでファイルを表示するとき、行番号がないと「何行目の話をしているのか」が伝わりません。設定ファイルのレビュー、ログの調査、スクリプトのデバッグなど、行番号が必要になる場面は現場で頻繁に発生します。

この記事では、Linuxでファイルに行番号を付けて表示する方法を解説します。cat -nnlコマンドの違い、less -Nでの閲覧、grep -nとの連携まで、実務で必要になる操作を網羅します。
【この記事でわかること】
・cat -nとnlコマンドで行番号を付けて表示する基本手順
・cat -nとnlの違いと使い分け(空行の扱い・番号のカスタマイズ)
・less -Nでスクロールしながら行番号を確認する方法
・grep -nで検索結果に行番号を表示する方法

続きを読む "cat -nとnlコマンドでファイルに行番号を付けて表示する方法|番号のカスタマイズも"

表形式でテキストファイルの内容を表示する方法|columnコマンドの使い方と-tオプション解説

「Linuxでテキストファイルの内容を整形して表形式で表示したい」
「columnコマンドでどんな整形ができるのか知りたい」
column コマンドを使うと、ファイルの内容や標準入力のテキストを整形して表形式で表示できます。
箇条書きになっているデータを、ターミナルの幅に合わせて自動的に複数列に並べ替えてくれます。

この記事では、columnコマンドの基本的な使い方と実務でよく使うオプションを解説します。

【この記事でわかること】
・columnコマンドでファイルを表形式に整形する基本手順
・-tオプションでTSV/CSV形式のファイルを見やすく整形する方法
・区切り文字を指定する-sオプションの使い方
・パイプと組み合わせてコマンドの出力を整形する方法

続きを読む "表形式でテキストファイルの内容を表示する方法|columnコマンドの使い方と-tオプション解説"

Linuxでディレクトリ内のファイル数をカウントする方法|ls・find・wcと再帰・隠しファイル対応

「このディレクトリにファイルが何個あるか、すぐに知りたい」
「ログファイルが溜まりすぎていないか、数で確認したい」
「サブディレクトリも含めて、ファイル数の全体像を把握したい」

サーバー運用では、ディレクトリ内のファイル数を確認する場面が頻繁にあります。ログのローテーション確認、バックアップの検証、ディスク容量調査の前段階など、用途はさまざまです。

この記事では、Linuxでディレクトリ内のファイル数をカウントする方法を、目的別に解説します。基本の ls | wc -l から、find を使った再帰的カウント、特定の拡張子だけを数える方法、さらにディレクトリごとの内訳表示まで網羅します。
【この記事でわかること】
・ls + wc -lでディレクトリ内のファイル数をカウントする方法
・findコマンドでサブディレクトリも含めて再帰的にカウントする方法
・特定の拡張子のファイルだけを数える方法
・ディレクトリごとにファイル数を内訳表示する方法

続きを読む "Linuxでディレクトリ内のファイル数をカウントする方法|ls・find・wcと再帰・隠しファイル対応"

修正時刻が新しい順にファイルを表示する方法|ls -tオプションと実務での使い方

「Linuxで最近更新したファイルだけを確認したい」
「修正時刻が新しい順にファイルを並べる方法がわからない」
Linuxの ls コマンドには、ファイルを修正時刻の新しい順(降順)に並べる -t オプションがあります。
ログファイルの確認や、最近編集したファイルを素早く見つけたい場面で日常的に使う基本テクニックです。

この記事では、ls -tオプションの使い方と、修正時刻でソートする実践的な方法を解説します。

【この記事でわかること】
・ls -tで修正時刻が新しい順にファイルを表示する方法
・-l・-h・-rなどのオプションとの組み合わせ方
・findコマンドで特定期間内に修正されたファイルを探す方法
・「修正時刻」「アクセス時刻」「変更時刻」の違い

続きを読む "修正時刻が新しい順にファイルを表示する方法|ls -tオプションと実務での使い方"

拡張子ごとにファイルを並べて表示する方法|ls -Xオプションの使い方と実践例

「Linuxで拡張子ごとにファイルを並べて表示したい」
「lsコマンドで拡張子順にソートする方法がわからない」
Linuxの ls コマンドには、ファイルを拡張子順に並べて表示する -X オプション(大文字のX)があります。
ファイル数が多いディレクトリで、種類別にファイルを把握したい場面に役立ちます。

この記事では、ls -Xオプションの使い方と、拡張子でソートする実践的な方法を解説します。

【この記事でわかること】
・ls -Xで拡張子順にファイルを並べる方法
・-lオプションとの組み合わせで詳細情報も表示する方法
・ls以外でファイルを拡張子別にグループ分けする方法
・特定の拡張子のファイルだけを一覧表示する方法

続きを読む "拡張子ごとにファイルを並べて表示する方法|ls -Xオプションの使い方と実践例"

Linuxでファイルサイズが大きい順に表示するコマンド|ls -lSやdu・findの実践例

「ディスク容量がいっぱいで、どのファイルが原因か分からない」
「大きいファイルだけを一覧表示して、不要なものを削除したい」

Linuxサーバーを運用していると、ディスク容量の逼迫は避けて通れない問題です。原因となっている巨大ファイルをすばやく特定できるかどうかで、対処のスピードが大きく変わります。

この記事では、lsコマンドでファイルサイズが大きい順に表示する方法をはじめ、duコマンドでディレクトリごとの容量を調べる方法、findコマンドで特定サイズ以上のファイルだけを検索する方法まで、現場で使える実践テクニックを解説します。

【この記事でわかること】
・ls -lSでファイルサイズが大きい順に表示する方法
・duコマンドでディレクトリごとの容量を調べる方法
・findコマンドで指定サイズ以上のファイルを検索する方法
・ディスク容量逼迫時の調査手順(df→du→find→lsの流れ)

続きを読む "Linuxでファイルサイズが大きい順に表示するコマンド|ls -lSやdu・findの実践例"

ps2pdfコマンドでポストスクリプトファイルをPDF形式に変換する方法|用紙サイズと圧縮オプション

「LinuxでポストスクリプトファイルをPDFに変換したい」
「ps2pdfコマンドの使い方がわからない」
ポストスクリプト(.ps)形式のファイルをPDFに変換するには、ps2pdf コマンドを使います。
Ghostscriptがベースになっており、変換品質・用紙設定・セキュリティ設定など細かい制御も可能です。

この記事では、ps2pdfコマンドの基本的な使い方とよく使うオプションを実コマンド付きで解説します。

【この記事でわかること】
・ps2pdfコマンドのインストール方法
・ポストスクリプトファイルをPDFに変換する基本手順
・用紙サイズ・解像度の指定方法
・変換後のPDFファイルを確認する方法
・よくあるエラーの対処法

続きを読む "ps2pdfコマンドでポストスクリプトファイルをPDF形式に変換する方法|用紙サイズと圧縮オプション"

a2psコマンドでポストスクリプト形式にファイルを変換する方法|基本構文とオプション解説

「Linuxでテキストファイルをポストスクリプト形式に変換したい」
「a2psコマンドの使い方がよくわからない」
ポストスクリプト(PostScript)は印刷業界で長く使われてきたページ記述言語です。
Linuxでは a2ps(Any to PostScript)コマンドを使うと、テキストファイルを手軽にポストスクリプト形式に変換できます。

この記事では、a2psコマンドの基本的な使い方とよく使うオプションを実コマンド付きで解説します。
インストール方法から出力ファイルの指定、用紙サイズや文字コードの設定まで、実務で使える知識をまとめました。

【この記事でわかること】
・a2psコマンドのインストール方法
・テキストファイルをポストスクリプト形式に変換する基本手順
・出力ファイル名の指定方法(-oオプション)
・用紙サイズ・向き・フォントなどの主要オプション
・変換後ファイルの確認方法

続きを読む "a2psコマンドでポストスクリプト形式にファイルを変換する方法|基本構文とオプション解説"

Linuxのファイルシステムの種類と特徴|ext4・xfs・btrfsの違いとマウント方法

「Linuxのディスクをフォーマットしようとしたとき、ext4とxfsとbtrfsの違いが分からず、どれを選べばいいか迷っている」

こういった場面はLinuxサーバーの構築・管理を始めたエンジニアがよく直面します。ファイルシステムの選択を誤ると、後からのパフォーマンス問題やデータ保護の不足につながります。

この記事では、Linuxの主要ファイルシステムであるext4・xfs・btrfsの特徴と違いを比較し、各ファイルシステムのフォーマットとマウント手順を実コマンド付きで解説します。Rocky Linux 9 / RHEL 9 / Ubuntu 24.04 LTS で動作確認済みです。

【この記事でわかること】
・ext4・xfs・btrfsの違いと用途の使い分け方
・mkfsコマンドでフォーマットする手順(ext4/xfs/btrfs対応)
・mountコマンドで一時マウントする方法
・/etc/fstabへのUUID登録と永続マウントの設定方法
・ファイルシステムの確認コマンド(df -hT / lsblk -f)

続きを読む "Linuxのファイルシステムの種類と特徴|ext4・xfs・btrfsの違いとマウント方法"

Linuxで画像ファイル形式を変換する方法|convertコマンドの基本と一括変換スクリプト

「Linuxで画像の形式変換をしたいが、GUIツールなしでコマンドだけでできるのか?」
「大量の画像ファイルをJPGからPNGに一括変換したい」
Linuxには convert コマンド(ImageMagick)があり、コマンドラインだけで画像形式の変換ができます。
シェルスクリプトと組み合わせれば、何百枚もの画像を一括処理することも可能です。

この記事では、convertコマンドによる画像形式変換の基本から一括変換の実践例まで解説します。
インストール方法、基本的な変換コマンド、リサイズとの組み合わせ、よくあるエラーの対処法も網羅しました。

【この記事でわかること】
・ImageMagickのインストール方法(yum/dnf/apt対応)
・convertコマンドで画像形式を変換する基本構文
・JPG・PNG・BMP・TIFF・WebPなど主要形式の変換方法
・シェルスクリプトによる一括変換の実装例
・リサイズや品質指定との組み合わせ方

続きを読む "Linuxで画像ファイル形式を変換する方法|convertコマンドの基本と一括変換スクリプト"

ハイフンやスペースを含むファイルをrmで削除する方法|--オプションや""クォートの使い方

「rm コマンドでファイルを削除しようとしたら、オプションエラーが出て消せない」
「ファイル名にスペースやハイフンが入っていて、どう指定すればいいか分からない」
Linuxでは、ファイル名に特殊な文字(ハイフン、スペース、記号など)が含まれていると、通常の rm コマンドでは削除できないことがあります。

この記事では、通常の方法では削除できないファイルを安全に削除する方法を解説します。ハイフンで始まるファイル、スペースを含むファイル、さらに「Permission denied」や「Directory not empty」など、削除時によくあるエラーの対処法まで、実務で困らない知識をまとめました。

【この記事でわかること】
・ハイフン(-)で始まるファイルを削除する方法(--オプションと./の使い方)
・スペースや記号を含むファイルをクォートやエスケープで削除する方法
・文字化けしたファイルをinode番号で削除する方法
・「Permission denied」や「Directory not empty」エラーの対処法

続きを読む "ハイフンやスペースを含むファイルをrmで削除する方法|--オプションや""クォートの使い方"

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

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

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

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

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

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

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

ファイル名データベースを更新する

「locate コマンドで検索しても最新ファイルが見つからない。データベースを更新する方法は?」

locate コマンドはファイル名データベース(mlocate.db)を参照して高速にファイルを検索します。このデータベースは updatedb コマンドで更新します。

この記事では、updatedb コマンドによるファイル名データベースの更新方法と、自動更新の仕組みを解説します。

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

・updatedb コマンドでファイル名データベースを手動更新できる(root権限が必要)
・データベースは通常 cron で毎日深夜に自動更新されるが、システム停止中は更新されない
・処理に時間がかかるため、バックグラウンド実行(& を付ける)が推奨
・更新後は locate コマンドで新しいファイルが検索できるようになる

続きを読む "ファイル名データベースを更新する"

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

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

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

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

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

LinuxでIPv6アドレスを確認・設定する方法|ip -6 addrとnmcliの設定手順

「サーバーにIPv6アドレスが割り当てられているか確認したい」
「IPv6を無効化したいけど、どの設定ファイルを変更すればいいのかわからない」

最近のLinuxディストリビューションでは、インストール時にIPv6が自動的に有効になっています。しかし、社内ネットワークやレンタルサーバーではIPv6を使わない環境も多く、確認や無効化の手順を知っておく必要があります。

この記事では、LinuxでIPv6アドレスを確認する方法から、IPv6の無効化・有効化、nmcliでの設定方法、トラブル対処まで解説します。

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

・ip -6 addr コマンドでIPv6アドレスを確認できる(ifconfigは非推奨)
・IPv6を恒久的に無効化するには sysctl.conf に net.ipv6.conf.all.disable_ipv6=1 を追記する
・RHEL 7以降は nmcli con modify で IPv6を制御するのが標準的な方法
・無効化前に/etc/hosts等でIPv6依存の設定がないか確認すること

続きを読む "LinuxでIPv6アドレスを確認・設定する方法|ip -6 addrとnmcliの設定手順"

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でも同じ手順で通用する

「dnf installしようとしたら rpmdb open failed と出てパッケージが入らない」
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パッケージのファイルが正常な状態かどうか確認したい」

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

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

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

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

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

所属しているグループ内で一時的にプライマリグループを変更する|newgrp / sg / SGIDで使い分けるグループ切り替え術

この記事のポイント

・newgrpコマンドを使うと、所属しているグループ内で一時的にプライマリグループを変更できる
・プライマリグループの一時的な切り替えはサブシェルとして動作し、exitで元のグループに戻れる
・newgrpはログインし直しと同じ扱いなので、環境変数や作業ディレクトリの挙動に注意が必要
・現代のLinux(RHEL9系・Ubuntu 24.04系)でも newgrp は標準コマンドとしてそのまま動く

ユーザーが複数のグループに所属している場合、通常はプライマリグループの メンバーとしてコマンドを実行します。しかし、プライマリグループ以外の権限を 必要とする処理を実行する場合は、ユーザーが所属しているグループ内で 一時的にプライマリグループを変更できます。 一時的にプライマリグループを変更するには、 newgrpコマンドにグループ名を付けて実行します。 [miyazaki@Tiger ~]$ whoami ←ユーザー名を確認します。 miyazaki [miyazaki@Tiger ~]$ cat /etc/group | grep miyazaki ↑ユーザー「miyazaki」の所属グループを確認します。 nobody:x:99:miyazaki miyazaki:x:601: [miyazaki@Tiger ~]$ newgrp nobody ←グループ「nobody」に変更します。

続きを読む "所属しているグループ内で一時的にプライマリグループを変更する|newgrp / sg / SGIDで使い分けるグループ切り替え術"

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

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

プライマリグループの変更は 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での権限管理が主流、グループパスワードは非推奨

続きを読む "グループパスワードを削除する|gpasswd -r / -R の使い分けと現代運用の判断軸"

グループからメンバーを外す方法|gpasswd -dの使い方と反映確認

「グループからメンバーを外したいけど、コマンドを忘れた」
「gpasswd -d で外したつもりが反映されていない気がする」
Linuxでユーザー権限を管理していると、必ず一度はこの場面にぶつかります。

この記事では、Linuxで既存のグループからメンバー(ユーザー)を外すコマンド gpasswd -d の実践的な使い方を解説します。
root権限と「グループ管理者」権限の違い、外した後に反映を確認する手順、副グループに残ったままになっていた時のトラブル対処までを実例つきでまとめました。

この記事のポイント

gpasswd -d ユーザー名 グループ名 でグループからメンバーを外す
・rootまたは「グループ管理者」だけが実行できる
・外した後は cat /etc/group または id コマンドで必ず反映を確認
・gpasswd -dは「副グループ(補助グループ)」専用。プライマリは usermod で変更する

続きを読む "グループからメンバーを外す方法|gpasswd -dの使い方と反映確認"

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 権限が必要

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

特定のパーミッションのファイルを検索して、パーミッションを変更する

「パーミッションを一括で変更したいが、対象ファイルを間違えて適用してしまわないか心配」

find コマンドの -ok オプションと -exec オプションを組み合わせれば、特定のパーミッションを持つファイルを検索しながら、そのまま chmod で変更できます。-ok を使えば実行前に確認が入るので安心です。

この記事では、find コマンドを使って特定のパーミッションのファイルを検索し、パーミッションを変更する方法を解説します。
【この記事でわかること】
・find の -ok オプションで変更前に1件ずつ確認プロンプトを表示できる
・-exec オプションは確認なしで一括実行するため本番環境では注意が必要
・-perm で検索対象のパーミッションを指定し、chmod で変更先を指定する
・実務では -ok で動作確認してから -exec に切り替えるのがセオリー

続きを読む "特定のパーミッションのファイルを検索して、パーミッションを変更する"

特定のパーミッションのファイルを検索してディレクトリパスを表示する

「パーミッション755のファイルだけを探したいが、どのコマンドを使えばいいかわからない」

Linuxでは find コマンドの -perm オプションを使うと、特定のパーミッションを持つファイルやディレクトリを一覧表示できます。ファイルタイプとの組み合わせで対象を絞り込むことも可能です。

この記事では、-perm オプションを使ったパーミッション指定のファイル検索方法を解説します。
【この記事でわかること】
・find の -perm オプションでパーミッション値を指定してファイルを検索できる
・-type f でファイルのみ、-type d でディレクトリのみに絞り込める
・数値指定(755等)と記号指定(+/-)の2種類の書き方がある
・実務ではセキュリティ監査や不審なファイルの洗い出しに活用される

続きを読む "特定のパーミッションのファイルを検索してディレクトリパスを表示する"

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コマンドでシステムリソースをモニタリングする(リアルタイム)"

Linuxの主要な設定ファイルの場所と内容まとめ|/etcディレクトリの重要ファイル一覧

「Linuxのトラブル対応で設定ファイルを触ろうとしたが、どこに何のファイルがあるかすぐ分からない」

Linuxに慣れていないうちは、設定ファイルの場所を毎回調べながら作業することになります。/etc 配下には数百のファイルが存在しますが、日常的な管理業務で触れるのはその一部です。

この記事では、Linuxサーバーの運用管理で頻繁に使う /etc 配下の重要な設定ファイルを目的別にまとめ、各ファイルの役割・記述形式・実際の確認コマンドを解説します。Rocky Linux 9 / RHEL 9 / Ubuntu 24.04 LTS で動作確認済みです。

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

・Linux設定ファイルはほぼすべて /etc 配下のテキストファイルに集約されている
・/etc/hosts・/etc/fstab・/etc/passwd など運用必須ファイルを網羅
・ネットワーク・ユーザー管理・起動サービスの設定ファイルを目的別に整理
・cat / less / grep で内容確認、vi / nano で編集する基本操作も解説

続きを読む "Linuxの主要な設定ファイルの場所と内容まとめ|/etcディレクトリの重要ファイル一覧"

trコマンドでLinuxのファイル内テキストを大文字・小文字変換する方法|使い方と応用例

ログファイルの文字をすべて小文字に統一したい、設定ファイルを大文字に変換したい----こういった文字変換処理に便利なのが tr(translate)コマンドです。

trコマンドは標準入力から受け取った文字を変換・削除・圧縮して標準出力に送るコマンドです。パイプやリダイレクトと組み合わせて使います。

【この記事でわかること】
・trコマンドで標準入力のテキストの文字変換・削除・圧縮ができる
・tr '[A-Z]' '[a-z]'で大文字を小文字に、tr '[a-z]' '[A-Z]'で小文字を大文字に変換できる
・tr -dで特定の文字を削除、tr -sで連続する同じ文字を1つに圧縮できる
・ファイルへの保存はリダイレクト(>)で別ファイルに出力する(元ファイルへの直接上書き不可)

続きを読む "trコマンドでLinuxのファイル内テキストを大文字・小文字変換する方法|使い方と応用例"

複数ファイルの拡張子を一度に変更する|for文 + mv / rename / find で確実に動く実務テクニック

この記事のポイント

・複数ファイルの拡張子を一度に変更するなら、for文 + mv の組み合わせがどのLinuxでも確実に動く
・renameコマンドはディストリビューションごとに「Perl版」と「util-linux版」があり書式が違うので要注意
・findコマンドと組み合わせるとサブディレクトリ配下も再帰的に変更できる
・誤った一括変更を防ぐには、まず echo を付けて変更内容をプレビューする運用が安全

同じ拡張子のファイルを別の拡張子に一度に変更する場合には、シェルスクリプトで変更可能です。 例えば、「html」という拡張子のファイルを「htm」にする場合にはfor文を使用して下記の様に実行します。 [pakira@Tiger ~]$ touch index.html ←テスト用のhtmlファイルを作成します。 [pakira@Tiger ~]$ touch kouza.html [pakira@Tiger ~]$ touch profile.html [pakira@Tiger ~]$ touch campany.html [pakira@Tiger ~]$ ls  ←テスト用ファイルを表示します。 campany.html index.html kouza.html profile.html [pakira@Tiger ~]$ for name in *.html; do ←拡張子を「.html」から「.htm」に変更します。 > mv $name ${name%.html}.htm; > done [pakira@Tiger ~]$ ls  ←ファイルの拡張子を確認します。 campany.htm index.htm kouza.htm profile.htm

続きを読む "複数ファイルの拡張子を一度に変更する|for文 + mv / rename / find で確実に動く実務テクニック"

Linuxでマウント状況を確認するコマンド|mountとdfとlsblkの見方を解説

「Linuxに新しく追加したディスクがマウントされているか確認したい」
「Linuxの再起動したらマウントが外れてしまった」
サーバーの容量追加や運用管理の現場では、こうしたディスク周りの確認・設定が日常的に発生します。

この記事では、Linuxで現在マウントされているディスクを確認する最適なコマンドと、再起動後も設定を維持するための「/etc/fstab」の書き方を体系的に解説します。手動マウントの手順からfstabのUUID指定、よくあるエラーへの対処まで、現場ですぐに使える実践的な内容です。

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

・df -hTコマンドでマウントポイント・容量・ファイルシステム種別を一覧確認できる
・findmntコマンドでマウント状況をツリー状に表示できる
・/etc/fstabにUUIDで記述することで再起動後も自動マウントを維持できる
・fstab変更後はmount -aで必ずテストしてサーバー起動失敗を防ぐ

マウント中のディスクを確認するコマンド

単に mount コマンドを引数なしで実行すると、システムが裏側で使用している仮想的なファイルシステム(cgroupやtmpfsなど)が大量に表示されてしまい、知りたい情報が埋もれてしまいます。

現代のLinux運用では、以下の2つのコマンドを使い分けるのが一般的です。

続きを読む "Linuxでマウント状況を確認するコマンド|mountとdfとlsblkの見方を解説"

LinuxでCD-ROMをマウントする方法|mountコマンドの手順とアンマウントまで解説

Linuxでは、CD-ROMを使用する前に「マウント」と呼ばれる操作が必要です。Windowsのように自動的にドライブとして認識されるわけではなく、mountコマンドでディレクトリツリーに接続する操作が必要です。

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

・mountコマンドでCD-ROMを/mnt/cdromなどのマウントポイントに接続できる
・CD-ROMのデバイス名は通常/dev/cdromenなどで、マウントポイントは事前に作成が必要
・umountコマンドでマウントを解除でき、/dev/cdromenまたはマウントポイントを指定する
・使用後は必ずumountしてからディスクを取り出す(アンマウントしないとデータ破損の恐れ)

続きを読む "LinuxでCD-ROMをマウントする方法|mountコマンドの手順とアンマウントまで解説"

Linuxの時刻同期を設定・確認する方法|chronyc・ntpstatとズレ発生時の対処

「サーバーの時刻がズレていて、ログの調査ができない」
「chrony と ntp、どっちを使えばいいの?」
Linuxサーバーの時刻同期(NTP)は、システムの安定運用に欠かせない重要な要素です。

この記事では、Linuxで時刻同期のステータスを確認するコマンドを解説します。現代のLinux(RHEL 7/8/9、AlmaLinuxなど)で標準の chrony と、古いシステムで使われる ntp の両方に対応した確認手順をまとめました。

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

・chronyc sourcesコマンドで現在同期中のNTPサーバーを確認できる
・chronyc trackingでシステム時刻のズレ量(fast/slow)を確認できる
・古い環境(CentOS 6以前)ではntpq -pコマンドを使う
・timedatectlでOS全体の時刻同期状態を素早く確認できる

1. 【現代の標準】chronyの同期状態を確認する

CentOS 7やRHEL 7以降、Ubuntu 20.04以降など、近年のLinuxディストリビューションでは chrony(クロニー) が標準のNTPクライアントとして採用されています。

まずchronydの起動状態を確認する

chronyc コマンドを実行する前に、まず chrony のサービス(デーモン)が動いているかを確認しましょう。

# systemctl status chronyd * chronyd.service - NTP client/server Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled) Active: active (running) since Mon 2026-02-24 10:00:00 JST; 3 days ago

Active: active (running) であれば正常です。停止している場合は以下のコマンドで起動してください。

# systemctl start chronyd

続きを読む "Linuxの時刻同期を設定・確認する方法|chronyc・ntpstatとズレ発生時の対処"

/proc/dmaでLinuxのDMAチャンネル情報を確認する方法|Direct Memory Accessの仕組みも解説

サーバーのハードウェア管理をしていると、DMAという用語に出くわすことがあります。現代のサーバーではあまり意識することがなくなりましたが、Linuxサーバー管理の基礎知識として理解しておくと役立ちます。

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

・cat /proc/dmaでシステムのDMAチャンネルの使用状況を確認できる
・DMAはCPUを介さずにメモリとデバイス間でデータ転送を行う仕組み
・現代のPCIe接続デバイスでは/proc/dmaにほぼ表示されなくなっている
・DMAチャンネルの確認はISAバス時代のレガシーハードウェア管理で必要だった

DMA(Direct Memory Access)とは

DMA(ダイレクトメモリアクセス)は、CPUを介さずにメモリとデバイス(ハードディスク・サウンドカードなど)の間でデータを直接転送する仕組みです。

CPUを経由しないことで、CPU負荷を下げながら高速なデータ転送が可能になります。DMAコントローラーが転送要求を受け付け、転送完了後にCPUに割り込みで通知する仕組みになっています。

/proc/dmaファイルとは

/proc/dma は、現在システムで使用されているDMAチャンネルの割り当て情報を表示する仮想ファイルです。morecat コマンドで内容を参照できます。

基本的な使い方

DMAチャンネル情報を表示する

[pakira@Tiger ~]$ more /proc/dma 4: cascade

上記の例では、DMAチャンネル4番が「cascade」(複数のDMAコントローラーを連結するための特殊な用途)として使用されています。

システムによっては以下のような出力になることもあります。

[root@server ~]# cat /proc/dma 1: Sound Blaster8 2: floppy 3: Sound Blaster16 4: cascade

DMAチャンネルの標準的な割り当て

ISAバス時代のDMAチャンネルの標準的な割り当ては以下のとおりです。

DMA 0:未使用(予約)
DMA 1:サウンドカードなど
DMA 2:フロッピーディスクコントローラー
DMA 3:利用可能(ECP パラレルポートなど)
DMA 4:カスケード(2つのDMAコントローラーを接続するための予約)
DMA 5~7:16ビットDMA用(ISA拡張スロット向け)

現代のシステムにおけるDMA

現代のLinuxサーバーでPCIeやUSB接続のデバイスを使用している場合、/proc/dma にはほとんど何も表示されないか「4: cascade」のみが表示されることがほとんどです。

これは、PCIeデバイスがISAのDMAチャンネルを使用しないためです。現代のデバイスは「バスマスタリング」や「DMA Remapping」などより高度な仕組みでCPUを介さずにデータ転送を行っています。

本記事のまとめ

cat /proc/dma:システムで使用中のDMAチャンネルを確認
・DMAはCPUを介さないデータ転送の仕組み(CPU負荷軽減に貢献)
・DMAチャンネル4番の「cascade」は特殊用途で常に予約されている
・現代のPCIeデバイスはISA DMAを使わないため、/proc/dma はほぼ空

続きを読む "/proc/dmaでLinuxのDMAチャンネル情報を確認する方法|Direct Memory Accessの仕組みも解説"

pidofコマンドでLinuxのプロセスIDを素早く取得する方法|psコマンドとの使い分け

プロセスを停止(kill)したり、特定のプロセスを操作する際には、まずそのプロセスのPID(プロセスID)を取得する必要があります。

通常は ps aux | grep プロセス名 で調べることが多いですが、出力が多くて見づらい場合があります。そんなときに便利なのが pidof コマンドです。

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

・pidofコマンドでプロセス名からPID(プロセスID)を素早く取得できる
・psコマンドより出力がシンプルで、スクリプトでの自動化に向いている
・pidofは/sbin/配下にあるため、PATHが通っていない場合はフルパスで実行する
・pgrep -xコマンドも同様の機能を持ち、より高機能な代替として使える

基本的な使い方

1. プロセス名からPIDを取得する

# initプロセスのPIDを表示する(initは必ず1) [root@Tiger ~]# pidof init 1 # httpdのPIDを表示する(複数プロセスがある場合は全て表示) [root@Tiger ~]# pidof httpd 1227 1226 1225 1224 1223 1141

2. フルパスで実行する(PATHが通っていない場合)

pidof/sbin/ ディレクトリに格納されています。一般ユーザー環境などPATHが設定されていない場合はフルパスで指定します。

[root@Tiger ~]# /sbin/pidof postmaster 1276 1275 1274 1273 1189

応用・psコマンドとの使い分け

psコマンドとpidofの違い

ps aux | grep プロセス名:詳細情報(CPU使用率・メモリ・実行時間など)も一緒に確認できる
pidof プロセス名:PIDのみを素早く取得できる。スクリプトでの自動化に向いている

killコマンドと組み合わせる

スクリプトでプロセスを停止する際にpidofと組み合わせて使うことができます。

# httpdを停止する(pidofのPIDをkillに渡す) [root@Tiger ~]# kill $(pidof httpd) # または [root@Tiger ~]# kill `pidof httpd`

pgrepコマンドも同様の機能を持つ

pgrep コマンドはpidofに近い機能を持ちつつ、より柔軟な検索ができます。

# プロセス名でPIDを取得する(pgrepの場合) [root@server ~]# pgrep -x httpd 1141 1223 1224 # プロセス名も一緒に表示する [root@server ~]# pgrep -xa httpd 1141 /usr/sbin/httpd -DFOREGROUND

トラブルシュート

pidofが何も表示しない場合

指定したプロセス名でプロセスが実行されていない場合、pidofは何も表示せずに終了します。ps aux で実際のプロセス名を確認してから再試行してください。

# 実際のプロセス名を確認する [root@Tiger ~]# ps aux | grep apache # "apache2" と表示された場合は pidof apache2 で再試行

本記事のまとめ

pidof プロセス名:プロセス名からPIDを素早く取得する
・複数のプロセスが動いている場合は全PIDがスペース区切りで表示される
・PATHが通っていない場合は /sbin/pidof のフルパスで実行する
kill $(pidof プロセス名) でプロセスをまとめて停止できる
pgrep コマンドもPID取得に使えて、より柔軟な検索が可能

続きを読む "pidofコマンドでLinuxのプロセスIDを素早く取得する方法|psコマンドとの使い分け"

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

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

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

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

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

/etc/host.confで名前解決の参照順を設定する方法|nsswitch.confとの違いも解説

名前解決の設定ファイルを調べると、/etc/nsswitch.conf/etc/host.conf の2種類が出てくることがあります。どちらが使われているのか、違いは何なのか----この記事で整理します。

【この記事でわかること】
・/etc/host.confは古いlibc5向けの名前解決設定ファイルで現在はほぼ使われない
・現代のLinux(glibc使用)では/etc/nsswitch.confが名前解決の設定ファイルとして使われる
・order hosts,bindのように記述し、hostsは/etc/hostsファイル、bindはDNSを意味する
・古いアプリケーション実行時やレガシー環境での参照のために知識として持っておくべき

続きを読む "/etc/host.confで名前解決の参照順を設定する方法|nsswitch.confとの違いも解説"

/etc/nsswitch.confでLinuxの名前解決順序を設定する方法|hostsとDNSの優先順位を変える

ping ホスト名 が通るのに ssh ホスト名 が失敗する」「/etc/hosts に書いたのに反映されない」----こういった名前解決のトラブルは、/etc/nsswitch.conf の設定が影響しているケースがあります。

このファイルでは、ホスト名をIPアドレスに変換する際にどの順番でどの方法を使うかを設定しています。

【この記事でわかること】
・/etc/nsswitch.confのhosts行で名前解決の参照順序を設定できる
・デフォルトはfiles(/etc/hosts)→dns(DNSサーバー)の順で参照される
・LDAPやNISを使う環境では参照項目にldapやnisを追加できる
・現在のLinuxではnsswitch.confが名前解決の設定ファイルとして使われている

続きを読む "/etc/nsswitch.confでLinuxの名前解決順序を設定する方法|hostsとDNSの優先順位を変える"

/etc/protocolsでLinuxのプロトコル番号を確認する方法|IPヘッダーの仕組みと活用例

ファイアウォールの設定やパケットキャプチャの分析をしていると「プロトコル番号6ってなんだ?」という場面に出くわすことがあります。

Linuxでは、プロトコル名とプロトコル番号の対応表を /etc/protocols ファイルで管理しています。このファイルを参照することで、プロトコル番号を素早く調べることができます。

【この記事でわかること】
・/etc/protocolsファイルにプロトコル名とプロトコル番号の対応表が記載されている
・TCP=6、UDP=17、ICMP=1など主要プロトコルの番号を確認できる
・ファイアウォールやパケット解析の際にプロトコル番号の理解が役立つ
・通常は編集不要だが、moreやcatで参照してプロトコル番号を調べられる

続きを読む "/etc/protocolsでLinuxのプロトコル番号を確認する方法|IPヘッダーの仕組みと活用例"

I/Oアドレスの情報を表示する|/proc/ioports と lspci -vv で確認する現代Linuxの実務

この記事のポイント

・/proc/ioports ファイルを参照すれば、現在使われているI/Oアドレスの情報を一覧で表示できる
・PCIデバイス単位で詳細を確認するなら lspci コマンド(特に lspci -vv)が現実的
・現代のLinux(RHEL9・Ubuntu 24.04系)でも /proc/ioports と lspci はそのまま使える
・lsusb / dmesg / journalctl と組み合わせると、デバイス認識トラブルの一次切り分けが速くなる

Linuxシステムでは、入出力デバイスに予約されたCPUのメモリマップを表示出来ます。 情報を表示するには/proc/ioportsファイルを参照します。 参照する場合は、moreやlessコマンドを使用すると良いでしょう。 ■PCIデバイスの情報を表示する ------------------------------------------------------------------------------ $ more /proc/ioports   ←I/Oアドレス情報を表示します。 0000-0cf7 : PCI Bus 0000:00 0000-001f : dma1 0020-0021 : pic1 0040-0043 : timer0 0050-0053 : timer1 0060-0060 : keyboard 0064-0064 : keyboard 0070-0071 : rtc0 0080-008f : dma page reg 00a0-00a1 : pic2 00c0-00df : dma2 (中略) 0d00-feff : PCI Bus 0000:00 1000-103f : 0000:00:07.3 1000-103f : pnp 00:01 1000-1003 : ACPI PM1a_EVT_BLK 1004-1005 : ACPI PM1a_CNT_BLK 1008-100b : ACPI PM_TMR 100c-100f : ACPI GPE0_BLK 1010-1015 : ACPI CPU throttle 1040-104f : 0000:00:07.3 1040-104f : pnp 00:01 1060-107f : pnp 00:0d 1080-10bf : 0000:00:07.7 10c0-10cf : 0000:00:07.1 --続ける--(0%)    ←スペースキーを押すと次ページが表示されます。 ------------------------------------------------------------------------------

続きを読む "I/Oアドレスの情報を表示する|/proc/ioports と lspci -vv で確認する現代Linuxの実務"

lspciコマンドでLinuxのPCIデバイス情報を確認する方法|-vオプションで詳細表示

サーバーに搭載されているネットワークカードやRAIDコントローラーの型番を確認したい、新しく追加したPCIデバイスが正しく認識されているか確認したい——そんなときに使うのが lspci コマンドです。

lspciコマンドはPCIバスに接続されているすべてのデバイスの情報をOSから一覧表示します。物理的にサーバーのケースを開けなくても、搭載されているハードウェアを確認できます。

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

・lspciコマンドでPCIバスに接続されているデバイスの一覧を表示できる
・-vオプションで各デバイスの詳細情報(フラグ・メモリアドレスなど)を表示できる
・ネットワークカードやグラフィックカードの認識確認に日常的に使用する
・lspci -nnでベンダーID・デバイスIDも合わせて確認できる

基本的な使い方

1. PCIデバイスの一覧を表示する

$ su - パスワード: # lspci 00:00.0 Host bridge: Intel Corporation E7230/3000/3010 Memory Controller Hub 00:01.0 PCI bridge: Intel Corporation E7230/3000/3010 PCI Express Root Port 00:1c.0 PCI bridge: Intel Corporation N10/ICH 7 PCI Express Port 1 (rev 01) 00:1d.0 USB Controller: Intel N10/ICH7 Family USB UHCI Controller #1 (rev 01) 00:1d.7 USB Controller: Intel N10/ICH 7 Family USB2 EHCI Controller (rev 01) 00:1f.0 ISA bridge: Intel 82801GB/GR (ICH7 Family) Interface Bridge (rev 01) 00:1f.1 IDE interface: Intel Corporation (ICH7 Family) IDE Controller (rev 01) 00:1f.2 IDE interface: Intel Corporation /ICH7 SATA IDE Controller (rev 01) 00:1f.3 SMBus: Intel Corporation N10/ICH 7 Family SMBus Controller (rev 01) 04:00.0 Ethernet controller: Broadcom NetXtreme Gigabit Ethernet PCI (rev 11) 06:05.0 VGA compatible controller: XGI Inc. Z7/Z9 (XG20)

出力の見方:
・先頭の「00:00.0」などはPCIアドレス(バス:スロット.ファンクション)
・その後にデバイスの種類と名称が表示される

2. -vオプションで詳細情報を表示する

-v オプションを付けると、各デバイスのフラグ・メモリアドレス・割り込み設定などの詳細情報が表示されます。

# lspci -v 00:00.0 Host bridge: Intel Corporation E7230/3000/3010 Memory Controller Hub Subsystem: Dell Unknown device 01b7 Flags: bus master, fast devsel, latency 0 Capabilities: [e0] Vendor Specific Information 00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) Bridge (rev 01) Subsystem: Dell Unknown device 01b7 Flags: bus master, medium devsel, latency 0 Capabilities: [e0] Vendor Specific Information (以下省略)

3. ベンダーIDとデバイスIDも確認する(-nnオプション)

# lspci -nn 04:00.0 Ethernet controller [0200]: Broadcom NetXtreme Gigabit Ethernet [14e4:1681] (rev 11)

[14e4:1681]」がベンダーID(14e4=Broadcom)とデバイスIDです。ドライバーを探す際に役立ちます。

応用・特定デバイスを絞り込む

grepでネットワークカードだけを確認する

# lspci | grep -i ethernet 04:00.0 Ethernet controller: Broadcom NetXtreme Gigabit Ethernet PCI (rev 11)

よく使うgrepキーワード

grep -i ethernet:ネットワークカード
grep -i vga:グラフィックカード
grep -i raid:RAIDコントローラー
grep -i usb:USBコントローラー
grep -i storage:ストレージコントローラー

トラブルシュート

「bash: lspci: command not found」と表示される場合

lspcipciutils パッケージに含まれています。インストールされていない場合は以下でインストールします。

# yum install -y pciutils # CentOS 7以前 # dnf install -y pciutils # CentOS 8以降

本記事のまとめ

lspci:PCIデバイスの一覧表示(要root権限の場合あり)
lspci -v:各デバイスの詳細情報を表示
lspci -nn:ベンダーID・デバイスIDも表示
lspci | grep -i ethernet:特定種類のデバイスを絞り込む
pciutils パッケージに含まれている(未導入の場合はyum/dnfでインストール)

続きを読む "lspciコマンドでLinuxのPCIデバイス情報を確認する方法|-vオプションで詳細表示"

/proc/interruptsでLinuxのIRQ情報を確認する方法|割り込み要求の読み方を解説

サーバーに新しいハードウェアを増設する前や、ハードウェア関連のトラブルを診断する際、現在のIRQ(割り込み要求)の使用状況を確認することが重要です。

LinuxではIRQの情報を /proc/interrupts ファイルから確認できます。

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

・cat /proc/interruptsでシステムのIRQ(割り込み要求)情報を確認できる
・IRQは0~15の16種類があり、デバイスごとに割り当てられている
・機器増設前の事前確認やハードウェアトラブルの診断に活用できる
・IRQの競合(同じIRQ番号を複数デバイスで使用)が問題の原因になることがある

IRQ(割り込み要求)とは

IRQ(Interrupt ReQuest:割り込み要求)は、周辺機器がCPUに処理を要求するための仕組みです。キーボード・マウス・ネットワークカードなどの各デバイスがCPUと通信するために使用します。

IRQは0から15まで16種類用意されており、それぞれ標準的な用途が決まっています。

基本的な使い方

1. /proc/interruptsを表示する

# cat /proc/interrupts CPU0 CPU1 0: 1578631102 0 IO-APIC-edge timer 1: 3 0 IO-APIC-edge i8042 6: 3 0 IO-APIC-edge floppy 8: 3 0 IO-APIC-edge rtc 9: 0 0 IO-APIC-level acpi 12: 4 0 IO-APIC-edge i8042 14: 118 0 IO-APIC-edge ide0 50: 41424552 0 IO-APIC-level ehci_hcd:usb1, uhci_hcd:usb2, ata_piix 169: 19056578 0 IO-APIC-level eth0 177: 0 0 IO-APIC-level uhci_hcd:usb3 185: 0 0 IO-APIC-level uhci_hcd:usb4 NMI: 0 0 LOC: 1576647381 1576668242 ERR: 0 MIS: 0

出力の見方:
・1列目:IRQ番号
・2列目以降(CPU0、CPU1):各CPUでの割り込み処理回数(カウンター)
・割り込みコントローラーの種類(IO-APIC-edge、IO-APIC-levelなど)
・最後の列:デバイス名(timer、i8042=キーボードコントローラー、eth0=ネットワークカードなど)

2. 特定デバイスのIRQを確認する(grepで絞り込む)

# ネットワークカード(eth0)のIRQを確認する # cat /proc/interrupts | grep eth0 169: 19056578 0 IO-APIC-level eth0

主なIRQ番号の用途

IRQには以下のような標準的な割り当てがあります。

IRQ 0:システムタイマー
IRQ 1:キーボードコントローラー(i8042)
IRQ 3:シリアルポートCOM2
IRQ 4:シリアルポートCOM1
IRQ 6:フロッピーディスクコントローラー
IRQ 8:リアルタイムクロック(RTC)
IRQ 14:IDE(プライマリ)コントローラー
IRQ 15:IDE(セカンダリ)コントローラー

応用・割り込みカウンターの推移を監視する

watch コマンドと組み合わせることで、リアルタイムにIRQの割り込み回数の増減を監視できます。

# 2秒ごとに /proc/interrupts を更新表示する # watch -n 2 cat /proc/interrupts

割り込み回数が急激に増加しているデバイスがあれば、そのデバイスに問題が発生している可能性があります。

本記事のまとめ

cat /proc/interrupts:IRQ番号・割り込み処理回数・デバイス名を一覧表示
・IRQは0~15の16種類があり、デバイスごとに標準的な割り当てがある
grep デバイス名 で特定デバイスのIRQを素早く確認できる
watch -n 2 cat /proc/interrupts でリアルタイム監視が可能

続きを読む "/proc/interruptsでLinuxのIRQ情報を確認する方法|割り込み要求の読み方を解説"

/proc/scsi/scsiでSCSIデバイス情報を確認する方法|ホストアダプタの接続状況を調べる

サーバーに搭載されているSCSIカードのメーカーや型番、接続状況をOSから確認したいとき、物理的にケースを開けて確認する必要はありません。

Linuxでは /proc/scsi/ ディレクトリ内のファイルを参照することで、システムから安全にSCSIデバイスの情報を取得できます。

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

・cat /proc/scsi/scsiでSCSIホストアダプタのメーカー・型番・接続状況を確認できる
・/proc/scsiディレクトリにはSCSIに関する様々な情報が格納されている
・ケースを開けずにシステムから安全にハードウェア情報を取得できる
・lsscsiコマンドでより見やすいSCSIデバイス一覧を表示することもできる

/proc/scsi/scsiファイルとは

/proc/scsi/scsi は、カーネルが認識しているSCSIデバイスの情報を提供する仮想ファイルです。このファイルを cat コマンドで表示することで、SCSIホストアダプタの接続状況を確認できます。

基本的な使い方

1. SCSIホストアダプタの状況を確認する

[root@Tiger ~]# cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: Maxtor 6L160M0 Rev: BACE Type: Direct-Access ANSI SCSI revision: 05

出力の見方:
Host: scsi0:SCSIホストアダプタの番号(0番目)
Channel:チャンネル番号
Id:SCSIデバイスID
Lun:論理ユニット番号
Vendor / Model:デバイスのメーカー・型番
Type:デバイスの種類(Direct-Access=ハードディスク)

2. /proc/scsiディレクトリの内容を確認する

[root@Tiger ~]# ls /proc/scsi/ scsi sg

sg ディレクトリにはSCSIジェネリックデバイスの情報が格納されています。

応用・lsscsiコマンドを使う方法

より見やすい一覧表示が必要な場合は lsscsi コマンドが便利です。lsscsi がインストールされていない場合は yum または dnf でインストールします。

# lsscsiをインストールする [root@server ~]# yum install -y lsscsi # CentOS 6/7 [root@server ~]# dnf install -y lsscsi # CentOS 8以降 # SCSIデバイス一覧を表示する [root@server ~]# lsscsi [0:0:0:0] disk ATA Maxtor 6L160M0 BACE /dev/sda [1:0:0:0] cd/dvd SONY DVD-ROM DDU1615 D01S /dev/sr0

トラブルシュート

「cat: /proc/scsi/scsi: No such file or directory」が出る場合

/proc/scsi/scsi が存在しない場合、SCSIコントローラーがカーネルに認識されていないか、SCSIデバイスが接続されていません。dmesg | grep -i scsi でカーネルのSCSI認識状況を確認してください。

本記事のまとめ

cat /proc/scsi/scsi:SCSIホストアダプタのメーカー・型番・接続状況を表示
・ケースを開けずOSから安全にハードウェア情報を取得できる
lsscsi コマンドでより見やすい一覧表示が可能
・SCSIが認識されていない場合は dmesg | grep -i scsi で確認する

続きを読む "/proc/scsi/scsiでSCSIデバイス情報を確認する方法|ホストアダプタの接続状況を調べる"

ファイル名に日付を付けてリネームする方法|date +%Y%m%dとmv・cpの実践例

「設定ファイルをバックアップしたいけど、ファイル名に日付を付けるコマンドが思い出せない」
「mv で日付付きにリネームしたら、`date` の展開がうまくいかなかった」
Linuxサーバーを運用していると、必ず一度はこの場面にぶつかります。

この記事では、Linuxで date コマンドと mvcp を組み合わせて、ファイル名に日付を付けてリネームする実践的な手順を解説します。
バッククォートと $() の使い分け、年月日時分秒まで含めるフォーマット、運用ルールとしての書き戻し手順、よくある落とし穴までを一通りまとめました。

この記事のポイント

mv file.txt file.txt_$(date +%Y%m%d) で日付付きファイル名にリネームできる
date +%Y%m%d は「20111217」形式、+%Y%m%d_%H%M%S なら秒まで一意化
・バッククォート ` と $() はどちらでも動くが、現代のシェルでは $() 推奨
・設定ファイル変更前のバックアップ運用ルールとしてセットで覚えておく

続きを読む "ファイル名に日付を付けてリネームする方法|date +%Y%m%dとmv・cpの実践例"

Linuxのロードアベレージを確認・理解する方法|uptimeとwの出力と高負荷時の原因特定

「サーバーが重くなっているが、どのコマンドでロードアベレージを確認すればいいか分からない」「uptimeの出力に並んでいる3つの数字の意味が理解できていない」

こういった疑問はLinuxサーバーの運用管理を始めたエンジニアによく見られます。ロードアベレージは CPU 使用率とは別の指標で、仕組みを知らないまま見ても正しい判断ができません。

この記事では、uptimeコマンドと /proc/loadavg を使ったロードアベレージの確認方法から、数値の読み方・高負荷時の原因特定・対処法まで実サーバーの出力例を交えながら解説します。Rocky Linux 9 / RHEL 9 / Ubuntu 24.04 LTS で動作確認済みです。

【この記事でわかること】
・uptimeの3つの数値が何を意味するかわかる
・ロードアベレージの適正値をコア数で判断できる
・高負荷の原因をtop/vmstat/iostatで特定できる
・D状態プロセスとI/O待ちの関係が理解できる

続きを読む "Linuxのロードアベレージを確認・理解する方法|uptimeとwの出力と高負荷時の原因特定"

Linuxのrsyslogでログ出力先とレベルを設定する方法|/etc/rsyslog.confの書き方を解説

「どのプロセスのログがどのファイルに出力されているのか把握できていない」「特定のサービスのエラーだけを別ファイルに記録したい」

こういった悩みを解決するのが /etc/rsyslog.conf の設定です。Linuxのログ管理は rsyslog(または syslog)デーモンが担っており、どのログをどこに出力するかをこのファイルで細かく制御できます。

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

・/etc/rsyslog.confでログのファシリティ・プライオリティ・出力先を設定できる
・ファシリティはログのカテゴリ(kern/mail/cronなど)を意味する
・プライオリティはログの重要度(debug/info/warning/err/critなど)を意味する
・設定変更後はrsyslogサービスの再起動が必要

rsyslog.confの基本構造

/etc/rsyslog.conf の設定は「セレクタ(ファシリティ.プライオリティ)」と「アクション(出力先)」の組み合わせで記述します。

[root@Tiger ~]# vi /etc/rsyslog.conf #### RULES #### # *.info以上のレベルを /var/log/messages に記録(mail,authpriv,cronを除く) *.info;mail.none;authpriv.none;cron.none /var/log/messages # 認証メッセージはアクセス制限されたファイルに記録 authpriv.* /var/log/secure # メールメッセージを記録(先頭の-はディスク書き込みを非同期にする意味) mail.* -/var/log/maillog # cronのメッセージを記録 cron.* /var/log/cron # 全員に緊急メッセージを通知 *.emerg * # ブートメッセージを記録 local7.* /var/log/boot.log

ファシリティ(ログのカテゴリ)

ファシリティはログを出力するプロセスやカテゴリを表します。

auth / authpriv:認証メッセージ(sshなど)
cron:cronデーモンのメッセージ
daemon:各種デーモンのメッセージ
kern:カーネルメッセージ
mail:メール関連メッセージ
syslog:rsyslog自身のメッセージ
local0 ~ local7:独自アプリケーション用の汎用ファシリティ
*:すべてのファシリティ

プライオリティ(ログの重要度)

プライオリティは重要度の低い順に以下のとおりです。

debug:デバッグ情報
info:通常の情報
notice:通知
warning:警告
err:エラー
crit:致命的な問題
alert:すぐに修正すべき問題
emerg:システム不能の非常事態

プライオリティを指定すると、そのレベル以上のすべてのメッセージが対象になります。特定レベルのみを対象にするには = を使います(例:=debug)。none を指定するとそのファシリティを除外できます。

設定変更の手順

1. rsyslog.confを編集する

[root@Tiger ~]# vi /etc/rsyslog.conf

2. rsyslogを再起動して設定を反映する

# CentOS 6系 [root@Tiger ~]# /etc/rc.d/init.d/rsyslog restart システムロガーを停止中: [ OK ] システムロガーを起動中: [ OK ] # CentOS 7以降 [root@server ~]# systemctl restart rsyslog

応用・カスタム設定の例

特定アプリのエラーだけを別ファイルに記録する

# /etc/rsyslog.conf に追記する # local0ファシリティのerr以上を独自ファイルに記録 local0.err /var/log/myapp-error.log

ログを別サーバーに転送する

アクションに @ホスト名(UDP)または @@ホスト名(TCP)を指定することで、別サーバーにログを転送できます。

# 全てのログをUDPで別サーバーへ転送 *.* @192.168.0.200

本記事のまとめ

/etc/rsyslog.conf でログの出力先・ファシリティ・プライオリティを設定する
・設定書式は「ファシリティ.プライオリティ 出力先」
none で特定ファシリティを除外、=プライオリティ で特定レベルのみを対象にする
・変更後は systemctl restart rsyslog(CentOS 7以降)で反映する

続きを読む "Linuxのrsyslogでログ出力先とレベルを設定する方法|/etc/rsyslog.confの書き方を解説"

Linuxのホスト名をファイルで永続変更する方法|/etc/sysconfig/networkとhostsの設定手順

サーバーのホスト名を変更するには、コマンドで一時的に変更する方法と、設定ファイルを編集して永続的に変更する方法の2種類があります。

運用環境では再起動後も設定を維持するため、ファイルを直接編集して永続的に変更する方法が一般的です。この記事では、ファイル編集によるホスト名の永続変更手順を解説します。

【この記事でわかること】
・/etc/sysconfig/networkのHOSTNAMEを編集してホスト名を永続的に変更できる
・/etc/hostsも合わせて編集しないと名前解決が正しく動作しない
・ファイル変更はシステム再起動後に反映される(ネットワーク再起動では不十分)
・CentOS 7以降はhostnamectlコマンドで即時変更も可能

続きを読む "Linuxのホスト名をファイルで永続変更する方法|/etc/sysconfig/networkとhostsの設定手順"

dmesgコマンドでLinuxの起動時ログを確認する方法|grepで情報を絞り込む実例付き

Linuxが起動するとき、カーネルはメモリ・CPU・ストレージ・ネットワークカードなど、あらゆるハードウェアの認識状況をリングバッファ(カーネルの内部メモリ)に記録します。

この記録を読み出すのが dmesg コマンドです。新しいハードウェアを追加した際や、起動時にエラーが発生した際の原因調査に不可欠なコマンドです。

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

・dmesgコマンドで起動時のカーネルログ(/var/log/dmesg)を確認できる
・grep・lessと組み合わせることで必要な情報だけを素早く抽出できる
・ハードウェアの認識状況やエラーの有無をdmesgで確認するのが現場の定番
・CentOS 7以降ではjournalctlも合わせて使うと効果的

dmesgコマンドとは

dmesg コマンドは、カーネルのリングバッファに記録されたメッセージを表示します。このリングバッファの内容は /var/log/dmesg ファイルにも保存されていますが、dmesgコマンドを使う方が確実に最新情報を取得できます。

基本的な使い方

1. dmesgの基本実行

[root@Tiger ~]# dmesg Initializing cgroup subsys cpuset Initializing cgroup subsys cpu Linux version 2.6.32-279.el6.i686 (mockbuild@c6b9.bsys.dev.centos.org) ... KERNEL supported cpus: Intel GenuineIntel AMD AuthenticAMD BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 000000000009f800 (usable) 〈以下省略〉

情報量が非常に多いため、そのまま流し読みするのは実用的ではありません。以下のように絞り込んで使うのが現場の定番です。

2. lessでページング表示する

[root@Tiger ~]# dmesg | less

Space で次のページ、q で終了します。

3. grepで特定キーワードを抽出する

CPUやメモリ、特定のデバイスに関する情報だけを取り出したい場合は grep と組み合わせます。

# CPU情報だけを表示する [root@Tiger ~]# dmesg | grep CPU Transmeta TransmetaCPU SMP: Allowing 1 CPUs, 0 hotplug CPUs Initializing CPU#0 CPU0: Intel(R) Core(TM) i5 CPU M 520 @ 2.40GHz stepping 02 # メモリ情報を表示する [root@Tiger ~]# dmesg | grep -i memory # ネットワークカードの認識状況を確認する [root@Tiger ~]# dmesg | grep -i eth

応用・よく使う絞り込み例

エラーや警告メッセージを確認する

起動時に問題が発生していないかを確認する際は、エラーや警告メッセージを優先して確認します。

# エラーメッセージを確認する [root@Tiger ~]# dmesg | grep -iE "error|fail|warn"

ストレージデバイスの認識状況を確認する

新しいHDD・SSDを追加した際の認識状況を確認できます。

# SATAデバイスの認識状況 [root@Tiger ~]# dmesg | grep -i sda [ 2.345678] sd 0:0:0:0: [sda] 976773168 512-byte logical blocks: (500 GB/465 GiB) [ 2.345900] sd 0:0:0:0: [sda] Write Protect is off

タイムスタンプ付きで表示する(CentOS 7以降)

CentOS 7/RHEL 7以降では -T オプションで人間が読みやすい形式のタイムスタンプを付与できます。

[root@server ~]# dmesg -T | tail -20 [Tue Apr 7 10:30:01 2026] usb 1-1: new high-speed USB device number 3 using xhci_hcd [Tue Apr 7 10:30:01 2026] usb 1-1: New USB device found, idVendor=0781, idProduct=5567

トラブルシュート

「dmesg: read kernel buffer failed: Operation not permitted」が出る場合

CentOS 7.6以降やRHEL 8以降では、一般ユーザーはdmesgを実行できなくなった場合があります。

# root権限で実行するか、sysctl設定を変更する [root@server ~]# dmesg # または $ sudo dmesg

本記事のまとめ

dmesg:カーネルのリングバッファに記録された起動時ログを表示
dmesg | less:ページング表示で読みやすく
dmesg | grep CPU:特定キーワードで絞り込む
dmesg | grep -iE "error|fail|warn":エラー・警告を抽出
・CentOS 7以降では dmesg -T でタイムスタンプ付き表示が可能

続きを読む "dmesgコマンドでLinuxの起動時ログを確認する方法|grepで情報を絞り込む実例付き"

lastコマンドでLinuxのログイン履歴を確認する方法|lastbで失敗ログインとwtmpの見方も

「このサーバー、いつ誰がログインしたか分からなくて不安だ」「不正アクセスの痕跡を調べたいが、どのファイルを見ればいいか分からない」——サーバー管理をしていると、こういった場面が必ずあります。

Linuxのログイン履歴は、バイナリ形式のファイルに記録されているため、catやlessでは読めません。専用のlastコマンドを使う必要があります。

この記事では、lastコマンドでLinuxのログイン履歴を確認する方法を解説します。lastbによるログイン失敗履歴の確認、/var/log/wtmpファイルの仕組み、実務でのセキュリティ監査への活用まで、実行例付きでまとめます。

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

・last コマンドで /var/log/wtmp のログイン履歴を読める(バイナリなのでcatは不可)
・lastb コマンドで /var/log/btmp のログイン失敗履歴を確認できる
・-n オプションで表示件数、-F で完全な日時、-i でIPアドレスを確認できる
・不正アクセス調査では lastb と /var/log/secure の両方を確認するのが鉄則

続きを読む "lastコマンドでLinuxのログイン履歴を確認する方法|lastbで失敗ログインとwtmpの見方も"

ユーザーがログインに失敗した記録を確認する|lastb・faillogでブルートフォース痕跡を追う方法

「サーバーに誰かが何度もログインを試みている気がするが、痕跡を確認する方法がわからない」
誰かが間違ったパスワードでSSH接続を試みた記録、いわゆる「ログイン失敗ログ」はLinuxでは専用ファイル(/var/log/btmp)に蓄積されています。テキストエディタやtail/catでは中身が読めないため、初心者がつまづきやすい部分です。

この記事では、ユーザーがログインに失敗した記録を確認する方法を、lastbコマンドとfaillogコマンドの使い分けや、btmp/wtmp/lastlogの違い、SSHブルートフォース攻撃を検知する実務手順まで含めて解説します。

この記事のポイント

・ログイン失敗記録は /var/log/btmp に保存される
・確認には lastb コマンドを root 権限で実行する
・faillog はユーザーごとの失敗回数とロックアウト管理に使う
・ブルートフォース対策には fail2ban との併用が定石

続きを読む "ユーザーがログインに失敗した記録を確認する|lastb・faillogでブルートフォース痕跡を追う方法"

lastlogコマンドで最終ログイン記録を確認する方法|ユーザー別の確認と活用例

サーバー管理をしていると「このユーザー、本当に最近ログインしているのか?」「不審なアカウントが使われていないか確認したい」という場面が出てきます。

Linuxでは、各ユーザーの最終ログイン時刻を記録した /var/log/lastlog ファイルが存在します。このファイルはバイナリ形式のため、catless では読めません。専用の lastlog コマンドを使って参照します。

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

・lastlogコマンドで全ユーザーの最終ログイン時刻を一覧表示できる
・-uオプションで特定ユーザーの最終ログインだけを絞り込める
・/var/log/lastlogはバイナリ形式のためcatコマンドでは読めない
・セキュリティ監査でlastlogを使う実務的な手順を解説

lastlogコマンドとは

lastlog コマンドは、/var/log/lastlog ファイルに記録された「ユーザーごとの最終ログイン情報」を読み取って表示します。/var/log/wtmp(ログイン履歴)とは異なり、あくまでも「最後にログインした記録のみ」を保持する点が特徴です。

基本的な使い方

1. 全ユーザーの最終ログインを確認する

引数なしで実行すると、システム上のすべてのユーザーとその最終ログイン時刻が表示されます。

[root@Tiger ~]# lastlog ユーザ名 ポート 場所 最近のログイン root tty1 金 8月 24 13:45:27 +0900 2012 bin **一度もログインしていません** daemon **一度もログインしていません** adm **一度もログインしていません** lp **一度もログインしていません** sync **一度もログインしていません** shutdown **一度もログインしていません** 〈中略〉 sshd **一度もログインしていません** tcpdump **一度もログインしていません** pakira pts/0 192.168.0.162 水 10月 10 12:21:19 +0900 2012

**一度もログインしていません**」と表示されているユーザーは、システムアカウントなどログインが想定されていないアカウントです。これらが突然ログイン履歴を持っていたら、権限昇格攻撃の可能性があります。

2. 特定ユーザーのみを確認する(-uオプション)

特定のユーザーの最終ログインだけを確認したい場合は、-u オプションでユーザー名を指定します。

[root@Tiger ~]# lastlog -u pakira ユーザ名 ポート 場所 最近のログイン pakira pts/0 192.168.0.162 水 10月 10 12:21:19 +0900 2012

3. 一定期間ログインしていないユーザーを確認する(-bオプション)

-b 日数 を指定すると、指定した日数より前にログインしたユーザー(長期間ログインしていないユーザー)のみ表示できます。

# 90日以上ログインしていないユーザーを表示する [root@Tiger ~]# lastlog -b 90

休眠アカウントのリストアップや定期的なユーザー棚卸しに活用できます。

応用・セキュリティ監査での実務活用

lastlogとlastコマンドの違い

混同されやすいコマンドとの違いを整理しておきます。

lastlog:ユーザーごとの「最終ログイン時刻のみ」を保持(/var/log/lastlog参照)
last:ログイン・ログアウトの全履歴を保持(/var/log/wtmp参照)
lastb:ログイン失敗の履歴(/var/log/btmp参照)

セキュリティ監査では、3つのコマンドを組み合わせて調査するのが現場の定番手順です。

不審なシステムアカウントのログインを検出する

本来ログインしないはずの bindaemon などのシステムアカウントに最終ログイン時刻が記録されていた場合、セキュリティインシデントの可能性があります。

# ログイン記録があるユーザーのみ一覧表示する [root@Tiger ~]# lastlog | grep -v "**一度もログインしていません**"

トラブルシュート

「/var/log/lastlog が存在しない」場合

/var/log/lastlog が存在しない場合、lastlogコマンドはエラーを表示します。ファイルが削除されている場合は空ファイルを作成することで記録が再開されます(過去の記録は失われます)。

# lastlogファイルを新規作成する(過去の記録は復元不可) [root@Tiger ~]# touch /var/log/lastlog [root@Tiger ~]# chmod 644 /var/log/lastlog

本記事のまとめ

lastlog:全ユーザーの最終ログイン時刻を表示(/var/log/lastlog参照)
lastlog -u ユーザー名:特定ユーザーの最終ログインを確認
lastlog -b 日数:長期間ログインしていないユーザーを抽出
・システムアカウントへの不審なログインはセキュリティインシデントの兆候
/var/log/lastlog はバイナリ形式のため cat では読めない

続きを読む "lastlogコマンドで最終ログイン記録を確認する方法|ユーザー別の確認と活用例"

セキュリティ関連のログを表示する

「不正アクセスの痕跡やSSHの認証失敗を確認したい」
Linuxのセキュリティ関連のログは /var/log/secure(または /var/log/auth.log)に記録されています。

この記事では、セキュリティログの確認方法と、不審なログの読み方を解説します。
【この記事でわかること】
・/var/log/secure(CentOS/RHEL)または /var/log/auth.log(Ubuntu/Debian)にSSH認証やsudoのログが記録される
・tail -f /var/log/secure でセキュリティログをリアルタイム監視できる
・grep "Failed password" /var/log/secure で認証失敗の試行を一覧抽出できる
・journalctl -u sshd でRHEL 7以降のSSHセキュリティログを確認できる

続きを読む "セキュリティ関連のログを表示する"

tail -fでログをリアルタイム監視する方法|-F追跡・grepフィルタ・journalctl -f併用

「ログファイルをリアルタイムで監視したいけど、どうやって確認すればいいのか分からない」

Linuxサーバーで障害やエラーが発生したとき、ログファイルをリアルタイムに追跡できるかどうかで、原因特定のスピードが大きく変わります。catコマンドで毎回ファイルを開き直しているようでは、刻々と書き込まれるログを追いかけることはできません。

この記事では、tail -fコマンドによるリアルタイムログ監視の基本から、複数ファイルの同時監視、grepとの組み合わせによるフィルタリング、さらにログが流れない時のトラブルシュートまで、現場で使える実践テクニックを解説します。

【この記事でわかること】
・tail -fとは? ログをリアルタイムで追跡する仕組み
・基本的な使い方
・実務で使うtail -fの応用テクニック
・主要なログファイルの一覧と用途

tail -fとは? ログをリアルタイムで追跡する仕組み

tailコマンドは、ファイルの末尾を表示するコマンドです。ここに-fオプション(follow)を付けると、ファイルの末尾を表示した後も終了せず、新しく追記された内容をリアルタイムで画面に出力し続けます。

仕組みとしては、tailがファイルの末尾を監視し続け、書き込みが行われるたびに追加分を表示するという動作です。syslogやrsyslog、journaldなどのログデーモンがファイルに1行書き込むたびに、その内容が即座に画面に表示されます。

ログ監視を終了するにはCtrl+Cを押してください。Linuxに慣れていない方がよくやるのがCtrl+Zで停止してしまうケースですが、これはプロセスを一時停止しただけでバックグラウンドに残り続けるため、必ずCtrl+Cで終了してください。

基本的な使い方

1. /var/log/messagesをリアルタイムで監視する

もっとも基本的な使い方です。システムの汎用ログファイルである/var/log/messagesをリアルタイムで監視します。

# /var/log/messagesをリアルタイムで監視する $ sudo tail -f /var/log/messages Mar 30 10:15:01 server01 systemd: Started Session 145 of user root. Mar 30 10:15:03 server01 kernel: TCP: request_sock_TCP: Possible SYN flooding on port 80. Mar 30 10:15:05 server01 sshd[12345]: Accepted publickey for admin from 192.168.1.10 port 55432 Mar 30 10:15:10 server01 crond[6789]: (root) CMD (/usr/local/bin/backup.sh)

実行すると、まずファイル末尾の10行が表示され、その後は新しいログが書き込まれるたびに画面に追加されていきます。

※ /var/log/messages はroot権限でないと読めない場合が多いため、sudoを付けて実行してください。

2. 表示行数を指定して監視を開始する

デフォルトでは末尾10行から表示が始まりますが、-nオプションで表示開始行数を変更できます。

# 末尾30行を表示してからリアルタイム監視を開始する $ sudo tail -n 30 -f /var/log/messages # 末尾0行(過去のログを表示せず)でリアルタイム監視を開始する $ sudo tail -n 0 -f /var/log/messages

障害対応で「今この瞬間から」のログだけを見たい場合は-n 0が便利です。過去のログを遡りたい場合は-n 100のように大きめの数字を指定してください。

3. Webサーバーのアクセスログを監視する

Apache HTTP ServerやNginxのアクセスログ・エラーログの監視は、サーバー運用でもっとも頻繁に行う作業のひとつです。

# Apacheのアクセスログをリアルタイムで監視する $ sudo tail -f /var/log/httpd/access_log # Apacheのエラーログをリアルタイムで監視する $ sudo tail -f /var/log/httpd/error_log # Nginxのアクセスログをリアルタイムで監視する $ sudo tail -f /var/log/nginx/access.log

リリース直後のアクセス状況の確認や、特定のエラーが発生しているかどうかの調査に使えます。

実務で使うtail -fの応用テクニック

1. grepと組み合わせて特定のログだけ表示する

ログファイルには大量の情報が流れてきます。特定のキーワードに絞って監視したい場合は、パイプでgrepに渡します。

# "error"を含む行だけをリアルタイムで監視する $ sudo tail -f /var/log/messages | grep -i "error" # 特定のIPアドレスからのアクセスだけを監視する $ sudo tail -f /var/log/httpd/access_log | grep "192.168.1.100" # SSHのログイン試行だけを監視する $ sudo tail -f /var/log/secure | grep "sshd"

grep -iを使うと大文字・小文字を区別せずにマッチするため、ERRORもerrorもErrorも拾えます。障害対応時はgrep -i "error\|fail\|denied"のように複数キーワードをまとめて指定すると効率的です。

2. 複数のログファイルを同時に監視する

tail -fはファイルを複数指定することで、同時に監視できます。

# messagesとsecureを同時に監視する $ sudo tail -f /var/log/messages /var/log/secure ==> /var/log/messages <== Mar 30 10:20:01 server01 systemd: Started Session 146 of user root. ==> /var/log/secure <== Mar 30 10:20:05 server01 sshd[12500]: Failed password for invalid user test from 10.0.0.5 port 43210

ファイル間で切り替わるたびに==> ファイル名 <==というヘッダーが表示されるため、どのファイルのログかが一目で判別できます。

3. tail -Fでログローテーション後も追跡を続ける

ログファイルは定期的にローテーション(logrotateによるファイル切り替え)が行われます。tail -fは元のファイル記述子(inode)を追跡するため、ローテーション後の新しいファイルを自動追跡しません。

-Fオプション(大文字)を使うと、ファイル名を基準に追跡するため、ログローテーションが発生しても新しいファイルに自動で切り替わります。

# ログローテーション後も追跡を続ける(-Fオプション) $ sudo tail -F /var/log/messages # -Fは --follow=name --retry と同じ意味 $ sudo tail --follow=name --retry /var/log/messages

長時間のログ監視や、cronで定期実行する監視スクリプトでは、-fではなく-Fを使うのが実務の鉄則です。

4. lessの+Fモードでログを前後にスクロールする

tail -fはリアルタイム監視に特化していますが、「少し前のログに戻りたい」という場面では不便です。そんなときはless +Fを使ってください。

# less +Fでリアルタイム監視を開始する $ sudo less +F /var/log/messages

リアルタイム監視中:tail -fと同じ動作でログが流れる
Ctrl+Cを押す:通常のlessモードに切り替わり、上下スクロールや検索(/キーワード)ができる
Shift+Fを押す:再びリアルタイム監視モードに戻る

障害対応中に「あのエラーメッセージ、何行か前に見えた気がする」というとき、tail -fでは戻れませんが、less +Fなら一時停止して確認できます。

主要なログファイルの一覧と用途

tail -fで監視するにも、どのログファイルに何が記録されているかを知らなければ始まりません。主要なログファイルを把握しておきましょう。

ログファイル 記録される内容
/var/log/messages システム全般の汎用ログ(カーネル、デーモン、サービスの起動停止など)
/var/log/secure 認証関連(SSH、sudo、suなどのログイン・認証成功/失敗)
/var/log/cron cronジョブの実行記録
/var/log/maillog メール送受信の記録(Postfix、Sendmailなど)
/var/log/httpd/access_log Apache HTTP Serverのアクセスログ
/var/log/httpd/error_log Apache HTTP Serverのエラーログ
/var/log/nginx/access.log Nginxのアクセスログ
/var/log/boot.log OS起動時のサービス起動ログ
/var/log/dmesg カーネルメッセージ(ハードウェア認識、ドライバ読み込みなど)

ディストリビューションによっては/var/log/messagesの代わりに/var/log/syslogが使われます(Ubuntu/Debianなど)。自分の環境のログ構成はls -la /var/log/で確認してください。

「tail -fでログが流れない」時のトラブルシュート

1. ログファイルへの書き込みが止まっている

tail -fは「ファイルに追記があれば表示する」という仕組みのため、そもそもログが書き込まれていなければ何も表示されません。

# rsyslogが動いているか確認する $ systemctl status rsyslog # rsyslogが停止していた場合は起動する $ sudo systemctl start rsyslog

rsyslog(またはsyslog-ng)が停止していると、/var/log/messages等への書き込みが行われません。まずログデーモンの稼働状態を確認してください。

2. ログローテーションでファイルが切り替わった

tail -f(小文字f)はinodeを追跡するため、logrotateでファイルが切り替わると、古いファイル(リネームされたファイル)を見続けてしまいます。

# ファイルのinode番号を確認する $ ls -i /var/log/messages 12345678 /var/log/messages # ログローテーションが実行されたか確認する $ ls -la /var/log/messages* -rw------- 1 root root 1234 Mar 30 10:30 /var/log/messages -rw------- 1 root root 985432 Mar 30 04:02 /var/log/messages-20260330

対策は前述のとおり、tail -F(大文字F)を使うことです。長時間監視する場合は常に-Fを使う習慣をつけてください。

3. パーミッション不足で読み取れない

ログファイルのパーミッションによっては、一般ユーザーでは読み取れない場合があります。

# パーミッションを確認する $ ls -la /var/log/secure -rw------- 1 root root 54321 Mar 30 10:30 /var/log/secure # 一般ユーザーで実行するとPermission deniedになる $ tail -f /var/log/secure tail: cannot open '/var/log/secure' for reading: Permission denied # sudoを付けて実行する $ sudo tail -f /var/log/secure

/var/log/secureや/var/log/cronなどはroot所有でパーミッションが600(rw-------)に設定されていることが多いため、sudoを付けて実行してください。

4. journaldのみでファイル出力されていない

CentOS 7以降やRHEL 8以降では、systemd-journaldがログを管理しています。rsyslogが併用されていない環境では、/var/log/messagesにログが出力されないことがあります。

# journaldでリアルタイムにログを確認する(tail -fの代替) $ sudo journalctl -f # 特定のサービスのログだけをリアルタイムで確認する $ sudo journalctl -u sshd -f # 優先度がerr以上のログだけをリアルタイムで確認する $ sudo journalctl -p err -f

journalctl -ftail -f /var/log/messagesの代替として使えます。systemdを採用しているディストリビューションでは、journalctlも併せて覚えておくと対応の幅が広がります。

本記事のまとめ

tail -fによるリアルタイムログ監視は、Linuxサーバー運用の基本中の基本です。ここで紹介した内容を一覧にまとめます。

やりたいこと コマンド
ログをリアルタイムで監視する sudo tail -f /var/log/messages
末尾N行から監視を開始する sudo tail -n 30 -f /var/log/messages
特定キーワードだけ監視する sudo tail -f /var/log/messages | grep -i "error"
複数ファイルを同時に監視する sudo tail -f /var/log/messages /var/log/secure
ログローテーション後も追跡する sudo tail -F /var/log/messages
前後スクロールしながら監視する sudo less +F /var/log/messages
journaldでリアルタイム監視する sudo journalctl -f
特定サービスのログだけ監視する sudo journalctl -u sshd -f

ログ監視の「型」を身につけて、障害対応に自信を持ちませんか?

tail -fの使い方ひとつとっても、現場では「どのログを見るべきか」「何を基準にフィルタするか」の判断力が問われます。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

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

rsyslogを起動、停止するには

「rsyslogを起動・停止・再起動するにはどうすればいいのか」
Linuxのログ管理を担う rsyslog は、サーバー運用中に再起動が必要なシーンが多くあります。

この記事では、rsyslogのステータス確認・起動・停止・再起動の各コマンドを、CentOS 6以前(SysVinit)とCentOS 7以降(systemd)の両方で解説します。設定ファイル(/etc/rsyslog.conf)の読み方・リモートへのログ転送・カスタム設定例・トラブルシュートまで実践的にまとめています。

この記事のポイント

・systemctl start/stop/restart rsyslog でCentOS 7以降のrsyslogを起動・停止・再起動できる
・systemctl status rsyslog でrsyslogの現在の稼働状態を確認できる
・/etc/rsyslog.conf のファシリティ.プライオリティ書式でログの出力先を制御できる
・rsyslogd -N1 で設定ファイルの構文チェックを素早く実行できる

続きを読む "rsyslogを起動、停止するには"

サービスの状態を把握する|systemctl statusとjournalctl -uで現場の原因を切り分ける

この記事のポイント

・現代のRHEL7+/Ubuntu系では systemctl status サービス名 が標準
・直前のログを併せて確認するなら journalctl -u サービス名 -n 50 が定番
・SysV init時代の service コマンドや /etc/init.d/サービス名 status も互換維持で動作
・自動起動の有無は systemctl is-enabled サービス名 で確認できる

「サービスが止まっているのか、それともクラッシュしたのか、どう見分ければいいんですか?」
セミナーで頻繁に受ける質問です。

Linuxサーバーで何かトラブルが起きたとき、最初にやることは「対象サービスの状態を把握する」です。状態を正しく読めれば、再起動するべきか、設定ミスを疑うべきか、ログを掘るべきか、判断の方向性が決まります。

この記事では、20年以上Linuxサーバーを運用してきた経験から、サービスの状態を把握するための実務コマンドを、SysV init時代の service コマンドから現代の systemctl まで、世代を横断して解説します。RHEL 9 / Rocky Linux 9 / Ubuntu 22.04・24.04 LTSで動作確認済みです。

続きを読む "サービスの状態を把握する|systemctl statusとjournalctl -uで現場の原因を切り分ける"

Linuxでパケットをキャプチャ(ダンプ)する

「ネットワークの通信内容を確認したい」「特定のホスト宛てのパケットだけを見たい」
そんなときに使うのが tcpdump コマンドです。

tcpdump はLinuxでネットワークパケットをキャプチャ(ダンプ)するためのコマンドです。
ファイアウォールの動作確認、通信障害の調査、セキュリティ監査など、現場で幅広く使われます。

この記事では、tcpdump の基本的な使い方から、フィルタリング・ファイル保存まで解説します。
【この記事でわかること】
・tcpdump -i eth0 でネットワークインターフェースを指定してパケットをキャプチャできる
・dst 192.168.0.x や port 80 などのフィルタで必要なパケットだけを絞り込める
・tcpdump -w capture.pcap でキャプチャ結果をpcap形式で保存し、Wiresharkで解析できる
・tcpdump -r capture.pcap で保存したキャプチャファイルを後から再表示できる

続きを読む "Linuxでパケットをキャプチャ(ダンプ)する"

コマンドでIPアドレスを設定するには

「コマンド一発でIPアドレスを変更したい。でも再起動すると元に戻るって本当?」
そのとおりです。ip addr add などのコマンドでIPアドレスを設定しても、再起動後は元の設定に戻ります。

この記事では、コマンドで一時的にIPアドレスを設定する方法と、現代の標準である ip コマンドの使い方を解説します。
恒久的に設定するには設定ファイルの編集が必要です(後半で案内します)。
【この記事でわかること】
・ip addr add 192.168.0.x/24 dev eth0 でIPアドレスを一時的に追加できる(再起動すると元に戻る)
・ip addr del でコマンドで設定したIPアドレスを削除できる
・ip addr show で現在のIPアドレス設定を確認できる
・RHEL 7以降では ifconfig は非推奨。ip コマンドへの移行が標準となっている
・恒久的にIPを固定するには設定ファイル(ifcfg または nmcli)での設定が必要

続きを読む "コマンドでIPアドレスを設定するには"

LinuxのDNS設定方法|resolv.confが元に戻る原因とnmcliの手順

「/etc/resolv.conf を編集してDNSを設定したのに、サーバーを再起動したら元に戻ってしまった...」
現代のLinuxを触り始めたエンジニアが、かなりの確率でハマるネットワーク設定の罠です。

この記事では、LinuxにおけるDNSサーバー(参照先)の設定・変更方法を解説します。古い記事にある「設定ファイルを直接書き換える方法」が現代では非推奨となっている理由と、最新の環境(AlmaLinux 9やRHEL 9など)で再起動しても消えない正しいDNS設定の手順を現場目線でまとめました。

「設定したはずなのに反映されない...」というトラブルの原因と対処法もあわせて解説していますので、ぜひ最後まで読んでみてください。

【この記事でわかること】
・なぜ /etc/resolv.conf を直接編集してはいけないのか?
・現代の標準「nmcli」コマンドでDNSを恒久設定する
・設定後のDNS動作確認コマンド(dig・nslookup・nmcli)
・DHCP環境でDNSを固定する方法(ipv4.ignore-auto-dns...

続きを読む "LinuxのDNS設定方法|resolv.confが元に戻る原因とnmcliの手順"

CentOS6の起動時に詳細情報を表示する

「CentOS 6の起動時にスプラッシュ画面が表示されるが、詳細なブートメッセージを確認したい」
そんなときは、起動中に特定のキーを押すだけで詳細情報に切り替えられます。

この記事では、CentOS 6の起動時に詳細情報(ブートメッセージ)を表示する方法と、grub.confで恒久的に変更する手順を解説します。
【この記事でわかること】
・CentOS6でrhgbとquietを削除するとブート時の詳細ログが表示される
・/boot/grub/grub.confのkernel行のオプションを編集して設定する
・詳細モードにするとサービス起動状態をOK/FAILEDで確認できる

続きを読む "CentOS6の起動時に詳細情報を表示する"

rootパスワードを忘れた場合の再設定方法|GRUB2でRHEL9/AlmaLinux/Ubuntu対応

「rootパスワードを忘れて本番サーバーに入れない…」
「シングルユーザーモードのやり方が古いままで通用しない」

rootパスワードを忘れても、物理アクセス(またはコンソールアクセス)さえあれば、Linuxを特殊な起動モードで立ち上げてpasswdコマンドで再設定できます。
ただし、CentOS6時代の手順(init=/bin/bash)はGRUB2・systemdを使う現代のディストロ(RHEL7/8/9, AlmaLinux, Rocky Linux, Ubuntu 20.04/22.04/24.04)では通用しません。

この記事では、GRUB2のカーネルパラメータ編集による現代的なroot再設定手順を、RHEL系(rd.break方式)とUbuntu系(init=/bin/bash方式)の両方で解説し、SELinux再ラベル付け、暗号化ディスク、クラウドVMでの注意点までを現役サーバー管理者目線でまとめます。

この記事のポイント

・rootパスワードはGRUB2カーネル編集→特殊モード起動→passwd再設定で復旧できる
・RHEL/AlmaLinux/Rocky系は rd.break、Ubuntu系は init=/bin/bash が定石
・SELinux有効環境では /.autorelabel が必須、忘れるとログイン不能
・クラウドVM・暗号化ディスク・Secure Bootは別アプローチが必要

続きを読む "rootパスワードを忘れた場合の再設定方法|GRUB2でRHEL9/AlmaLinux/Ubuntu対応"

Linuxをシングルユーザーモードで起動する|CentOS 6 / RHEL 9世代別のレスキューモード手順とパスワード復旧

この記事のポイント

・シングルユーザーモードはrootで自動ログイン・最小デーモンの障害復旧用モード
・GRUB起動メニューでカーネル行を編集して single もしくは systemd.unit=rescue.target を渡す
・パスワード忘れ復旧・fsck手動実行・破損ファイル修復が主な用途
・CentOS 6 / RHEL 7 / Rocky Linux 9 で起動手順が違うので世代別に押さえる

「rootパスワードを忘れた」「起動途中で止まってログインできない」
こんな緊急事態のとき、最後の頼みの綱になるのがシングルユーザーモードです。最小限のデーモンだけを起動し、rootアカウントでパスワードなしにシステムへ入れるレスキューモードで、Linuxサーバー管理者が必ず一度は使う機能です。

この記事では、Linuxをシングルユーザーモードで起動する方法を、CentOS 6世代の操作手順(既存資産)に加え、RHEL 7以降のsystemd時代のrescue.target / emergency.targetの操作も含めて解説します。

続きを読む "Linuxをシングルユーザーモードで起動する|CentOS 6 / RHEL 9世代別のレスキューモード手順とパスワード復旧"

Linuxをレスキューモードで起動する

「設定ファイルを書き間違えてLinuxが起動しなくなった……」
「パスワードを忘れてログインできなくなった……」

そんなときに使うのが レスキューモード です。
レスキューモードで起動すれば、通常は起動できないシステムにもアクセスして設定ファイルの修正やパスワードリセットが行えます。

この記事では、CentOS 6のレスキューモードの起動手順を画像つきで解説します。
【この記事でわかること】
・レスキューモードはCentOSインストールDVDのbootメニューから起動できる
・chroot /mnt/sysimageでインストール済みシステムのコマンドを実行できる
・パスワードリセットや設定ファイル修正などの復旧作業が可能

続きを読む "Linuxをレスキューモードで起動する"

インストール時にディスプレイの解像度を変更するには|boot resolution・inst.resolution・vga=モードの使い分け

「Linuxをインストールしようとしたら画面の解像度が低すぎて、ウィザードの『次へ』ボタンが画面外に出てクリックできない」
グラフィカルインストーラの想定解像度に対し、古いノートPCや仮想マシン、KVMコンソール接続などで画面が小さすぎると、マウスで進めなくなり手詰まりになります。

この記事では、Linuxインストール時にディスプレイの解像度を変更する方法を、ブートオプションでresolution指定する手順・テキストモードへの切替・GRUBブートパラメータ編集・最近のディストリビューションでの代替策まで含めて解説します。

この記事のポイント

・boot: linux resolution=横x縦 で解像度を指定する(CentOS6・RHEL6世代)
・新しい世代はGRUB編集でvga=やinst.resolution=を渡す
・どうしても通らない時はインストーラをテキストモードに切替
・Tab/eキーでブートパラメータを編集できる

続きを読む "インストール時にディスプレイの解像度を変更するには|boot resolution・inst.resolution・vga=モードの使い分け"

CentOS6でブートオプション画面を表示する

「Linuxのインストール時に特定のオプションを指定したいが、ブートオプション画面の出し方がわからない」
インストール初期のブートプロセスでブートオプション画面を表示させる手順は、見慣れないと戸惑いやすい部分です。

この記事では、CentOS 6のインストール時にブートオプション画面を表示する手順と、主なブートオプションの使い方を解説します。
【この記事でわかること】
・CentOS6の起動時にeキーを押すとブートオプション編集画面を表示できる
・grubからrunlevelやrdinit等のカーネルパラメータを変更できる
・シングルユーザーモード起動はbroken=1やinit=/bin/bashで実現できる

続きを読む "CentOS6でブートオプション画面を表示する"

インストールログを確認する

「Linuxのインストール後に、何がインストールされたか確認したい」
そんなときに役立つのが、インストールログファイルです。

CentOS 6以前では /root/install.log に、RHEL 7 / CentOS 7以降では /var/log/anaconda/ ディレクトリにインストールログが保存されます。

この記事では、各バージョンのインストールログの場所と確認方法を解説します。
【この記事でわかること】
・インストールログは /var/log/yum.log や /var/log/dnf.log で確認できる
・yum history や dnf history でトランザクション履歴を管理できる
・rpm -qa --last でパッケージのインストール日時を確認できる

続きを読む "インストールログを確認する"

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モジュールを一覧表示する方法|バージョン確認やインストールも"

リダイレクトの使い方|>・>>・<・2>&1・/dev/nullの全パターン実践例

「コマンドの出力結果をファイルに保存したい」「エラーメッセージだけ別のファイルに記録したい」
Linuxの現場でよく出てくる要件です。

これを実現するのがリダイレクト(リダイレクション)です。
リダイレクトを使いこなすことで、コマンドの入力元・出力先を自由に変更でき、
ログ収集・バッチ処理・シェルスクリプトの自動化が格段に楽になります。

この記事では、標準出力・標準エラー・標準入力の3つのストリームの概念から始まり、
`>`/`>>`/`<`/`2>`/`2>&1` 全パターンの実践例、
`/dev/null` の活用法、ヒアドキュメントまで体系的に解説します。

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

・> は上書き、>> は追記、< はファイルから入力(標準入力の切り替え)
・2> でエラー出力のみをファイルに保存、2>&1 で標準出力+エラーを一緒にリダイレクト
・> /dev/null 2>&1 で全出力を破棄(cronジョブ等でよく使われる)
・ヒアドキュメント(<

続きを読む "リダイレクトの使い方|>・>>・<・2>&1・/dev/nullの全パターン実践例"

bashの設定ファイル完全解説|/etc/profile・~/.bash_profile・~/.bashrcの違いと使い分け

「シェルを起動するたびにエイリアスを設定し直している」「環境変数が毎回リセットされてしまう」という経験はありませんか?
bashの設定ファイルを正しく使えば、こうした手間は一切なくなります。

この記事では、bashの設定ファイル/etc/profile~/.bash_profile~/.bashrc~/.bash_logout)の役割・違い・読み込み順序を体系的に解説します。
ログインシェルと非ログインシェルの違い、sourceコマンドの使い方まで、現場で必要な知識を網羅しています。

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

・ログインシェルでは/etc/profile→~/.bash_profileの順に読み込まれる
・非ログインシェル(新しいターミナルを開く)では~/.bashrcだけが読まれる
・エイリアス・関数は~/.bashrcに書く。環境変数は~/.bash_profileに書く
・設定変更後はsource ~/.bashrcで即座に反映できる

続きを読む "bashの設定ファイル完全解説|/etc/profile・~/.bash_profile・~/.bashrcの違いと使い分け"

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

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

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

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

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

RPMパッケージをインストールする

「rpmコマンドでパッケージをインストールしようとしたら、警告メッセージが出た……これは無視していいの?」
現場でよくある疑問です。

rpm -ivh コマンドを使えばRPMパッケージをインストールできます。GPG署名の警告が出ても対処法さえ知っていれば慌てる必要はありません。

この記事では、rpm -ivh の基本的な使い方から、GPG警告の意味と対処法まで解説します。
【この記事でわかること】
・rpm -ivh パッケージ名.rpm でRPMパッケージをインストールできる(-i=インストール -v=詳細表示 -h=進捗表示)
・インストール前に rpm -ivh --test で依存関係を事前確認するのが現場の鉄則
・GPG署名の「NOKEY」警告は公開鍵が未インポートのサイン。rpm --import でキーを取得して解消できる
・インストール後は rpm -q パッケージ名 で正しく導入されたか確認できる

続きを読む "RPMパッケージをインストールする"

RPMパッケージのインストールテストを行う

「rpmコマンドでパッケージをインストールしようとしたら、依存関係のエラーが出て失敗した……」
そんな経験はありませんか。

rpmコマンドには --test オプションがあり、実際にインストールせずに「インストールが成功するかどうか」を事前確認できます。

この記事では、rpm --test の使い方から、依存エラー・競合エラーの対処法まで、現場で役立つ実践的な手順を解説します。
【この記事でわかること】
・rpm -ivh --test でインストールを実行せずに依存関係エラーや競合エラーを事前確認できる
・--test の結果が成功でも、実際のインストールに必ず成功するとは限らない
・依存パッケージが不足している場合は yum/dnf を使った解決が現場の定番
・rpm -e --test で削除時の依存関係破損も事前チェックできる

続きを読む "RPMパッケージのインストールテストを行う"

RPMパッケージがインストールされたディレクトリを表示する(rpm -ql)

「このパッケージの設定ファイルはどこにあるのか」「インストールしたパッケージがどのファイルを配置したかを確認したい」という場面は、Linuxサーバー管理でよくある。

rpm -qlコマンドを使うと、指定したパッケージがインストールしたファイルの一覧とそのパスをすべて表示できる。設定ファイルの場所を特定したり、不要なパッケージを削除する前にどのファイルが消えるかを確認したりするときに役立つ。

本記事ではrpm -qlの基本的な使い方と、関連オプションとの組み合わせを解説する。

【この記事でわかること】
・rpm -ql の基本的な使い方と出力の読み方
・設定ファイルだけを確認する -c オプション
・ドキュメントファイルを確認する -d オプション
・ファイルから所属パッケージを調べる -qf の使い方

続きを読む "RPMパッケージがインストールされたディレクトリを表示する(rpm -ql)"

RPMパッケージの情報を表示する(rpm -qi)

「このパッケージが何のために入っているのかわからない」「インストール済みのパッケージのバージョンや説明を確認したい」という場面は、Red Hat系のLinuxを使っていればよくある。

rpm -qiコマンドを使うと、インストール済みのRPMパッケージの詳細情報(バージョン・リリース・説明文・インストール日時など)を表示できる。パッケージの用途を把握したいときや、脆弱性情報と照らし合わせてバージョンを確認したいときに役立つ。

本記事ではrpm -qiの基本的な使い方と、関連するrpmオプションの使い分けを解説する。

【この記事でわかること】
・rpm -qi の基本的な使い方と出力の読み方
・-q・-i・-l・-a オプションの組み合わせ方
・パッケージ名の確認方法
・インストール状態を確認する実務的な活用法

続きを読む "RPMパッケージの情報を表示する(rpm -qi)"

特定のファイルシステムを検査する(fsck /dev/sdaN)

「複数のパーティションの中で特定のパーティションだけに問題がありそうだ」「/dev/sdb1だけを対象にfsckを実行したい」という場面では、デバイスを指定したfsckの実行が必要になる。

fsck /dev/sdaNのようにデバイス名を引数として指定することで、特定のパーティションだけを対象にファイルシステムの検査ができる。また-tオプションでファイルシステムタイプを指定するとより的確な検査が可能だ。

本記事では特定パーティションへのfsck実行方法と、ファイルシステムタイプ指定の手順を解説する。

【この記事でわかること】
・特定パーティションを指定して fsck を実行する方法
・-t オプションでファイルシステムタイプを指定する方法
・アンマウントの手順と確認方法
・自動修復と確認モードの使い分け

続きを読む "特定のファイルシステムを検査する(fsck /dev/sdaN)"

ファイルシステムを検査する(fsck)

「サーバーが突然クラッシュして再起動したところ、ファイルシステムにエラーが出ている」「不正なシャットダウンの後でディスクの状態を確認したい」という状況に直面することがある。

そのような場面で使うのがfsckコマンドだ。fsckはファイルシステムの整合性を検査し、異常があれば内容に応じたエラーコードを返す。正常な場合はファイル数やブロック使用状況も表示する。

本記事ではfsckの基本的な使い方から、実行時の重要な注意点、オプションの使い分けまでを解説する。

【この記事でわかること】
・fsck の基本的な使い方と出力の読み方
・実行前に必ずアンマウントが必要な理由
・返り値(終了コード)の意味
・fsck の主要なオプション一覧

続きを読む "ファイルシステムを検査する(fsck)"

fdiskコマンドでパーティションを管理する方法|lsblkでの確認やGPT対応も

「ディスクのパーティション構成を確認したいけど、どうやればいいの?」
「fdiskを使ってみたけど、GPTには対応していないって表示される」
「2TB以上のディスクはfdiskで扱えないの?」
サーバーの構築やディスク増設で、パーティションの確認・操作が必要になる場面は少なくありません。

この記事では、fdisk コマンドを中心に、パーティション管理の実践的な手順を解説します。
lsblkblkid によるディスク情報の確認から、fdisk の対話モードでの操作、GPTディスクに対応した gdiskparted の使い分け、アライメント確認・スクリプト自動化・パーティション拡張といった実務Tips、トラブルシュートまで、現場で必要な知識をまとめました。RHEL 9 / Rocky Linux 9で動作確認済みです。

この記事のポイント

・fdisk -l でディスクとパーティション情報を一覧確認できる
・fdiskの操作はwを押すまで書き込まれない(途中でqで取り消し可能)
・2TB以上のディスクにはfdiskではなくpartedまたはgdiskを使う
・パーティション作成後はmkfsでフォーマットしてからマウントする
・partedはコマンド実行と同時にディスクに即時反映される(fdiskと異なり取り消し不可)

続きを読む "fdiskコマンドでパーティションを管理する方法|lsblkでの確認やGPT対応も"

パーティションテーブルを表示する(fdisk -l)

「このサーバーのディスクはどのようにパーティション分割されているのか確認したい」「新しいディスクを追加したが、どのデバイス名で認識されているか知りたい」という場面でよく使われるのがfdisk -lだ。

fdiskコマンドの-lオプションを使うと、システムに接続されているすべてのディスクのパーティションテーブル情報を表示できる。root権限が必要だが、確認だけなら破壊的な操作は一切発生しない安全なコマンドだ。

本記事ではfdisk -lの使い方と、出力の読み方、-uオプションとの組み合わせを解説する。

【この記事でわかること】
・fdisk -l の基本的な使い方と出力の読み方
・-u オプションでセクター単位表示に切り替える方法
・特定のデバイスのパーティション情報を確認する方法
・lsblk との使い分け

続きを読む "パーティションテーブルを表示する(fdisk -l)"

システム終了時に接続ユーザにメッセージを送る|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)

「○分後にシャットダウンするようスケジュールしたいが、正確な時刻がわからない」「作業終了の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)"

起動ディスクを作成する(dd)

「サーバーが起動しなくなった場合に備えて、起動ディスクを準備しておきたい」「ddコマンドでブートUSBを作成するにはどうすればいいのか」という疑問を持つ方は多い。

Linuxではddコマンドを使ってISOイメージをUSBメモリやフロッピーディスクに書き込み、起動ディスク(ブートメディア)を作成できる。障害時のリカバリに欠かせないスキルだ。

本記事ではddコマンドによる起動ディスク作成の手順と、注意点を解説する。

【この記事でわかること】
・dd コマンドの基本構文と主要なオプション
・ISOイメージをUSBに書き込む手順
・dd 実行時の注意点とデバイス指定のリスク
・起動ディスクが必要な場面と準備の考え方

続きを読む "起動ディスクを作成する(dd)"

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 単位表示にできる

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

vmstatコマンドでCPU・メモリの負荷を確認する方法|出力の読み方と高負荷の切り分け

「サーバーが重いけど、topだけでは原因が特定できない」
「vmstatコマンドを実行してみたけど、数字が並んでいてどこを確認すればいいのか分からない」
Linuxサーバーの運用で、CPU・メモリ・ディスクI/Oの状態をまとめて確認したい場面は多いはずです。

この記事では、Linuxの vmstat コマンドを使ってシステムの負荷状況を診断する実践的な手順を解説します。
出力の各列(procs・memory・swap・io・system・cpu)の読み方から、継続監視(vmstat 1 5)、-s・-d・-p・-tオプションの活用、top・free・iostat・sarとの使い分け、さらに高負荷時の切り分け手順まで、現場で必要な知識をまとめました。

実行環境:RHEL 9.4 / AlmaLinux 9 / Ubuntu 24.04 LTSで動作確認済み

この記事のポイント

・vmstat 1 5 でCPU・メモリ・I/Oの状態をリアルタイム監視できる
・r列(ランキュー)がCPUコア数超えで危険、si/soが0以外ならメモリ不足のサイン
・高負荷時にCPU・メモリ・ディスクI/Oのどれが原因か切り分けられる
・vmstatの弱点(過去データ・ネットワーク)をsarで補完する方法がわかる

続きを読む "vmstatコマンドでCPU・メモリの負荷を確認する方法|出力の読み方と高負荷の切り分け"

CPUの情報を表示する

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

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

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

プロンプトの表示を変更するには

ユーザがLinuxにログインすると、シェルは「$」や「#」などの
プロンプトを表示して、ユーザーからの指示を待ちます。

ログインして↓のように表示されるのがプロンプトです。

[pakira@Tiger ~]$

プロンプトはシェルによって表示が若干異なりますが、bashのプロンプト表示は、
「$」が一般ユーザー、「#」がスーパーユーザ(root)として表示します。

また、「$」や「#」以外にもホスト名やユーザ名、カレントディレクトリなども表示でき、
これらの設定はPS1という環境変数によって設定さています。

この環境変数PS1の値を変更すれば、オリジナルのプロンプトを
表示させることができ、その設定にはexportコマンドを使用します。

設定値には、以下の様な特殊な文字が設定出来ます。

\d : 日付
\h : ホスト名(ドメイン名なし)
\H : ホスト名(ドメイン名あり)
\s : シェルの名前
\t : 時間(24時間制 HH:MM:SS形式)
\T : 時間(12時間制 HH:MM:SS形式)
\@ : 時間(12時間制 HH:MM AM/PM形式)
\u : ユーザ名
\w : カレントディレクトリ
\W : カレントディレクトリのベース名
\! : コマンドの履歴番号を表示
\# : コマンドのコマンド番号
\$ : rootなら#、それ以外のユーザなら$を表示
\\ : バックスラッシュ

※カレントディレクトリとは、現在作業中のディレクトリを指します。
 カレント(current)とは「現在の」という意味です。

※「\」は使っているコンピュータによって「\」(バックスラッシュ)で
 表示されるものがあります。それは表示に使うフォントで割り当てられている
 文字が違うだけでデータ的には同じになります。

 Linuxでキーボードから¥記号を入力するとバックスラッシュになる

※Linuxは英字の大文字、小文字を区別します。
 つまり、hとHは別文字として扱われるので注意してください。


▼ 現在の環境変数PS1の値を表示する
----------------------------------------------------------------------
[pakira@Tiger ~]$ echo "$PS1"
[\u@\h \W]\$
↑ユーザ名、ホスト名(ドメイン名なし)、
 カレントディレクトリのベース名が設定されています。
----------------------------------------------------------------------


▼ シェルプロンプトの表示形式を変更する
----------------------------------------------------------------------
[pakira@Tiger ~]$ export PS1="[\u@\t \w]\$ " ←最後は半角スペースを入れる
[pakira@03:48:13 ~]$
↑ユーザ名、時間(24時間制 HH:MM:SS形式)、
 カレントディレクトリのベース名が設定されました。
----------------------------------------------------------------------

ただし、これらの設定はログインし直すと元に戻ってしまうので、
設定を再ログインしても反映させるには、ユーザのホームディレクトリにある
「.bashrc」ファイルに設定を記述する必要があります。


▼ 再ログインしてもシェルプロンプトの表示形式を保持する
----------------------------------------------------------------------
[pakira@03:50:26 ~]$ pwd
/home/pakira     ←ユーザのホームディレクトリであることを確認する
[pakira@03:50:26 ~]$ ls -la ←「.」で始まる隠しファイルを表示するには
                オプション「a」を付けてlsコマンドを実行する
合計 68
drwx------ 3 pakira pakira 4096 4月 29 03:50 .
drwxr-xr-x 4 root root 4096 1月 28 21:23 ..
-rw------- 1 pakira pakira 67 4月 26 17:10 .bash_history
-rw-r--r-- 1 pakira pakira 33 1月 8 11:43 .bash_logout
-rw-r--r-- 1 pakira pakira 176 1月 8 11:43 .bash_profile
-rw-r--r-- 1 pakira pakira 124 1月 8 11:43 .bashrc  ←編集するファイル
drwxr-xr-x 4 pakira pakira 4096 1月 8 11:43 .mozilla
-rw------- 1 pakira pakira 629 4月 29 03:50 .viminfo
-rw-r--r-- 1 pakira pakira 658 1月 8 11:43 .zshrc

[pakira@03:53:51 ~]$ vi .bashrc ←エディタで編集します。

export PS1="[\u@\t \w]\$ " ←「.bashrc」ファイルに追記する

編集を保存すると、再ログインしてもシェルプロンプトの表示形式は
そのままに反映されます。

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はインストール時にデフォルトゲートウェイ(ルータ)の設定を行いますが、 ネットワークの構成変更に伴い、デフォルトゲートウェイを変更する必要が 生じる場合があります。 また、インストール時に設定したデフォルトゲートウェイが 実は誤りだった場合も正しいものに変更する必要があります。 私が主催してる「Linuxサーバー構築講座」でも、 希に誤った設定をして、正しいものに修正するには どうすれば良いのかという質問を頂く事があります。 Linuxサーバー構築講座 https://www.linuxmaster.jp/2009/12/post-4.html Linuxに触れたばかりの初心者の方には、まずは慣れてもらう事が 先決であるため、インストールからやり直してもらうことにしていますが、 ある程度慣れてきた時には、今日紹介する方法を使用して デフォルトゲートウェイの設定すると良いでしょう。
【この記事でわかること】
・route add default gw IPアドレス コマンドでデフォルトゲートウェイを一時的に設定できる
・設定は再起動すると消えるため、永続化するには /etc/sysconfig/network などに記述する
・nmcli や nmtui を使うと NetworkManager 経由で永続的なゲートウェイ設定ができる
・ip route add default via IPアドレス も同様の操作ができる(iproute2)

続きを読む "デフォルトゲートウェイ(ルータ)を設定する"

pingコマンドでサーバーの死活確認をする方法|-c回数指定・-Wタイムアウト・応答なし対処

「サーバーにアクセスできない」「ネットワークがつながらない」----こんな障害に直面したとき、真っ先に打つコマンドが ping です。

しかし、ただ ping を打って「応答が返ってこない」で終わっていませんか? 応答がない原因は、相手サーバーのダウン、経路の問題、ファイアウォールによるICMPブロックなど多岐にわたります。原因を切り分けられなければ、復旧に無駄な時間を費やすことになります。

この記事では、pingコマンドの基本から、回数指定・タイムアウト・パケットサイズ変更といった実践オプション、さらに「応答がない時にどう原因を切り分けるか」というトラブルシュートの手順まで、現場目線で解説します。

【この記事でわかること】
・pingコマンドの基本的な使い方とWindowsとの違い
・回数指定・送信間隔・タイムアウトなど実践的なオプション
・MTUサイズ確認による経路の詳細診断方法
・応答がないときのネットワーク障害の体系的な切り分け手順
・エラーメッセージの意味とファイアウォール・ICMPブロックへの対処

続きを読む "pingコマンドでサーバーの死活確認をする方法|-c回数指定・-Wタイムアウト・応答なし対処"

FTPコマンドで複数ファイルをまとめてダウンロードする

「FTPサーバーからファイルを落としてきてと言われたけど、コマンドを忘れてしまった...」
「FTPコマンドで複数ファイルを一気にダウンロード・アップロードしたい」
ファイル転送の現場では、いまだに従来のFTPコマンドを使用する場面に直面することがあります。

この記事では、Linuxにおける ftp コマンドの基本的な使い方を体系的に解説します。サーバーへの接続から、単一・複数ファイルのダウンロード(get/mget)とアップロード(put/mput)の手順まで、現場ですぐに使える内容をまとめました。

1. FTPサーバーに接続・ログインする

まずは、対象のFTPサーバーに接続します。

$ ftp 192.168.1.100

※IPアドレスまたはホスト名を指定します。

接続が成功すると、ユーザー名とパスワードの入力が求められます。

Name (192.168.1.100:root): user_name ←ユーザー名を入力 331 Please specify the password. Password: ←パスワードを入力(画面には表示されません) 230 Login successful. ftp>

ログインに成功すると、プロンプトが ftp> に変わり、FTPコマンドの受付状態になります。
【この記事でわかること】
・mget コマンドにワイルドカードを使うと複数ファイルを一括ダウンロードできる
・mget *.txt のように拡張子を指定してファイルを絞り込んでダウンロードできる
・prompt コマンドで確認プロンプトを OFF にすると自動で全ファイルをダウンロードできる
・lcd コマンドでローカルのダウンロード先ディレクトリをあらかじめ指定しておける

続きを読む "FTPコマンドで複数ファイルをまとめてダウンロードする"

MySQLのrootパスワードを忘れた場合の対処について

MySQLはオープンソースのデータベースソフトになります。 無料で利用できるデータベースソフトとしてPostgreSQLがありますが、 それと人気を二分するデータベースソフトです。 人気の理由は高性能且つ高速で、しかも操作が比較的簡単な上、 Movable TypeやXoopsなど多くのウェブサイト構築ソフトウェアが サポートしているためです。またMySQLを利用する事でLAMP環境が 構築出来ます。 ※LAMPとはLinux、Apache、 MySQL、 PHPの略称 今回はそのMySQL専用のrootパスワードを忘れてしまった場合の 対処方法をご紹介します。
【この記事でわかること】
・MySQL を --skip-grant-tables オプションで起動することで認証をバイパスできる
・ALTER USER または UPDATE mysql.user でパスワードを変更し、flush privileges を実行する
・5.7 以降は authentication_plugin が caching_sha2_password に変わった点に注意が必要
・パスワード変更後は必ず通常モードで再起動して接続確認を行う

続きを読む "MySQLのrootパスワードを忘れた場合の対処について"

IPアドレスからドメイン名を調べるには

IPアドレスからドメイン名を調べるには ドメイン名からIPアドレスを得る事を正引き名前解決と言いますが、 今回はその逆、IPアドレスからドメイン名を調べる方法になります。 これは正引き名前解決に対して、逆引き名前解決と言いますので 覚えておいてください。 この処理はDNSサーバーに対してクラインとから問い合わせを行ない それに対する返答を受け取る事で結果が表示されます。 基本動作としては「正引き名前解決」と同じ処理になりますが、 問い合わせに使う情報、表示される結果が逆になります。 IPアドレスからドメイン名への対応はPTRレコードと呼ばれ、 このレコード上では、192.168.1.1というIPアドレスは、 1.1.168.192.in-addr.arpa.(IPアドレスの逆順.in-addr.arpa.) という形式で記述されます。 これはドメイン名同様にIPアドレスも階層構造を持った名前として 認識し、正引き名前解決と同じプロセスで逆引き名前解決が行なわれる ようにするためです。 ちなみに名前解決はhostコマンド、nslookupコマンドを使用します。 hostコマンドはnslookupコマンドに代わるものとして開発され、 現在においては、hostコマンドを使用する事が推奨されています。 (正引き名前解決に使用したdigコマンドと同じ扱いですね。) 文法 host IPアドレス nslookup -type=ptr IPアドレス
【この記事でわかること】
・nslookup コマンドでIPアドレスを引数に渡すと逆引きDNSを実行できる
・dig -x IPアドレス コマンドでも逆引きが行え、詳細なDNS応答を確認できる
・host IPアドレス コマンドでも同様に逆引き結果を取得できる
・PTRレコードが設定されていない場合はドメイン名が返らない

続きを読む "IPアドレスからドメイン名を調べるには"

ドメイン名からメールサーバーを調べるには

ドメイン名からメールサーバーを調べるには

あるドメイン内でメールサーバーとして稼働しているホストを調べるには、
そのドメインに設定されたMX(Mail Exchanger)レコードを調べると良いでしょう。

MXレコードとは前回ちょっと紹介したAレコードと同様、ドメイン情報を
構成する要素のひとつになります。

例えば、hogehoge.comというドメインの中でメールサーバーがmail1.hogehoge.com
というホスト名だった場合、pakira@hogehoge.com のようなメールアドレスに
メールが配送されるためには、このメールサーバーがhogehoge.comドメインの
MXレコードに指定されている必要があります。

MXレコードは、ドメイン名とそのドメインのメールサーバーのホストの
対応関係を記述したものになります。自分宛のメールが届かないような時は、
ドメインのMXレコードに正しくメールサーバーが指定されているか確認を
する必要があります。


文法

dig (調べるレコードの種類) (ドメイン名)
nslookup -type=(調べるレコードの種類) ドメイン名

続きを読む "ドメイン名からメールサーバーを調べるには"

Linuxでポートの使用状況を確認するコマンド|ss・lsof・netstatの使い分け

「サービスが起動しているはずなのに、なぜかポートにアクセスできない」
「どのポートがどのプロセスで使われているかを一目で確認したい」

Linuxサーバーのトラブル対応で、ポートの状態確認は最初にやるべき基本操作の一つです。

この記事では、sslsofnetstat の3つのコマンドを使ってLinuxのポート使用状況を確認する方法を解説します。
各コマンドの特徴と現場での使い分け基準まで順番にまとめました。

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

・ss -tlnp でLISTEN中のポートとプロセスを確認できる(現在の推奨)
・lsof -i :ポート番号 で特定ポートを使用しているプロセスを特定できる
・netstat は古いコマンドだが既存サーバーでは今も使われている
・ss・lsof・netstat の使い分けの基準を現場目線で解説

続きを読む "Linuxでポートの使用状況を確認するコマンド|ss・lsof・netstatの使い分け"

Linuxのネットワーク環境を確認するためには

「Linuxをインストールしたのにネットワークに繋がらない」
「IPアドレスは設定したはずなのに、なぜかpingが通らない」

Linuxサーバーの構築で、ネットワーク設定は最初にぶつかる壁の一つです。

この記事では、Linuxのネットワーク環境を確認するために使うコマンドを順番に解説します。
IPアドレスの確認から、ルーティング・DNS・疎通確認まで、現場でよく使うコマンドをまとめました。
【この記事でわかること】
・ip addr show でIPアドレスとネットワークインターフェースを確認できる
・ip route show でルーティングテーブルを確認できる
・cat /etc/resolv.conf でDNS設定を確認できる
・ping・traceroute・ss で疎通・ルート・ポートの確認が可能

続きを読む "Linuxのネットワーク環境を確認するためには"

MIMEでエンコードされたテキストを読めるように変換する

「メールのSubjectが意味不明な文字の羅列になっていて読めない」
「MIMEエンコードされたテキストを通常の文字に変換したい」

電子メールでは日本語などのマルチバイト文字をASCII形式で送るために「MIMEエンコード」が使われています。

この記事では、nkf コマンドを使ってMIMEエンコードされたテキストを読める形式に変換する方法を解説します。
Base64形式とQuoted-Printable形式の違い、メールヘッダの解読方法まで順番にまとめました。

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

・nkf -m でMIMEエンコード(Base64・QP形式)のテキストをデコードできる
・nkf -M でテキストをMIMEエンコードできる
・メールのSubjectやFromの日本語化けも同様の方法で解読できる
・perl の Encode モジュールを使った方法も紹介

続きを読む "MIMEでエンコードされたテキストを読めるように変換する"

テキストを他のOSとの間でやりとりできるように変換する

「Windowsで作ったテキストファイルをLinuxで開くと文字化けする」
「メールで受け取ったファイルの文字コードを変換したい」

WindowsとLinuxでは、デフォルトの文字コードや改行コードが異なるため、そのままではファイルが正しく表示されないことがあります。

この記事では、nkf(Network Kanji Filter)コマンドを使って、文字コードと改行コードを変換する方法を解説します。
Shift-JIS・EUC-JP・UTF-8の相互変換と、改行コード(CRLF↔LF)の変換まで順番にまとめました。

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

・nkf -e ファイル名 でEUC-JPに変換して表示できる
・nkf -w ファイル名 でUTF-8に変換できる
・nkf -s ファイル名 でShift-JISに変換できる
・nkf -Lu で改行コードをLF(Linux形式)に変換できる

続きを読む "テキストを他のOSとの間でやりとりできるように変換する"

vi/vimのコマンドモードとインサートモードを切り替える方法|ESC・i・a・o操作と保存・終了まで

「viを起動したけど、文字が入力できない」「どうやって保存して終了するの?」
vi/vimを初めて使ったとき、多くの方がこの壁にぶつかります。

viには「コマンドモード」と「インサートモード」の2つのモードがあり、
この切り替えを理解しないと、文字入力も保存も終了もできません。

この記事では、vi/vimのモード切り替えの仕組みから、
基本操作(i・a・o・ESC)、保存・終了(:wq・:q!)まで、
ひととおりの操作を実際のコマンド例で解説します。

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

・vi/vimには「コマンドモード」と「インサートモード」の2種類がある
・インサートモードへの切り替えはi・a・o・Oキーで行う
・ESCキーでコマンドモードに戻り、:wqで保存終了・:q!で破棄終了できる
・現在のモードはvimの画面下部の表示(-- INSERT --など)で確認できる

続きを読む "vi/vimのコマンドモードとインサートモードを切り替える方法|ESC・i・a・o操作と保存・終了まで"

viコマンドで文字列を検索する方法|n/Nで次へ移動・置換・ハイライト消去まで

「膨大なログファイルや設定ファイルを開いたものの、目当ての行が全く見つからない...」
「検索して黄色くハイライトされた色を消す方法が分からない」
Linuxを触り始めたばかりの方が、vi(vim)エディタで必ず直面する悩みです。

この記事では、Linuxの標準エディタであるvi(vim)で文字列を検索・置換する実践的なコマンドを解説します。基本的な検索から、次の候補への移動、ハイライトの消し方まで、現場のエンジニアが息をするように使っている必須の操作手順をまとめました。

1. viエディタでの基本的な検索コマンド(/ と ?)

viエディタで検索を行うには、必ず「コマンドモード(文字入力ができない状態)」になっている必要があります。もし文字入力中(挿入モード)であれば、一度 Esc キーを押してください。

下方向(ファイルの終わりに向かって)検索する

現在のカーソル位置から下に向かって検索するには、/(スラッシュ) を入力してから検索したい文字列を打ち込み、Enter を押します。

/error

これで、ファイル内にある「error」という文字列がハイライトされ、カーソルが移動します。

上方向(ファイルの先頭に向かって)検索する

逆に、現在のカーソル位置から上に向かって検索したい場合は、?(ハテナ) を使います。ログファイルの末尾から過去に遡ってエラーを探す際などによく使います。

?warning

【この記事でわかること】
・/パターン/ で文字列を検索し、n/N キーで次・前の一致箇所へ移動できる
・:s/旧文字列/新文字列/g でカーソル行の全置換、:%s で全行一括置換が行える
・:noh コマンドでハイライトを消去できる(hlsearch オプションが有効な場合)
・g/ で行全体を対象にした grep 的な検索も vi 単体で実行できる

続きを読む "viコマンドで文字列を検索する方法|n/Nで次へ移動・置換・ハイライト消去まで"

tar.gz形式のファイルを解凍、展開するには

「tar.gz ファイルの解凍コマンドをいつも忘れてしまう」
「解凍先のディレクトリを指定して展開したい」

Linuxではソフトウェアのインストールやバックアップ管理でtar.gzファイルを扱うことが多く、
解凍コマンドは確実に覚えておきたい操作の一つです。

この記事では、tar コマンドを使ってtar.gz形式のファイルを解凍・展開する方法を解説します。
展開先の指定、展開前の内容確認など、よく使うパターンも合わせて説明します。
【この記事でわかること】
・tar xzf ファイル名.tar.gz で tar.gz を解凍・展開できる
・-v オプションで展開されるファイル名を表示できる
・-C ディレクトリ名 で展開先ディレクトリを指定できる
・tar tzf ファイル名.tar.gz で展開前にファイル一覧を確認できる

続きを読む "tar.gz形式のファイルを解凍、展開するには"

BZIP2形式でファイルを圧縮・解凍するには

「gzip より高い圧縮率でファイルを圧縮したい」
「.bz2 ファイルの解凍方法がわからない」

BZIP2はGZIPより高い圧縮率を持つ圧縮形式で、サイズの大きいファイルを圧縮するのに向いています。

この記事では、bzip2 コマンドを使ってBZIP2形式でファイルを圧縮・解凍する方法を解説します。
GZIPとの使い分けの基準まで順番にまとめました。
【この記事でわかること】
・bzip2 ファイル名 でファイルを圧縮して .bz2 ファイルを作成できる
・bunzip2 ファイル名.bz2 または bzip2 -d で解凍できる
・bzip2 はgzipより圧縮率が高いが処理速度は遅い
・bzip2 -k で元ファイルを残したまま圧縮できる

続きを読む "BZIP2形式でファイルを圧縮・解凍するには"

ファイルをGZIP形式で圧縮する

「ファイルをgzipで圧縮したいが、コマンドの使い方がわからない」
「.gz ファイルを解凍する方法が知りたい」

GZIP形式はLinuxで最もよく使われる圧縮方式の一つです。
ログファイルの管理やファイル転送の効率化など、現場で毎日使う機会があります。

この記事では、gzip コマンドを使ってファイルを圧縮・解凍する方法を解説します。
基本的な圧縮・解凍から、よく使うオプションまで順番にまとめました。
【この記事でわかること】
・gzip ファイル名 でファイルを圧縮して .gz ファイルを作成できる
・gunzip ファイル名.gz または gzip -d で .gz ファイルを解凍できる
・gzip -k で元ファイルを残したまま圧縮できる
・gzip -l で圧縮ファイルの情報(圧縮率など)を確認できる

続きを読む "ファイルをGZIP形式で圧縮する"

24時間以内に修正されたファイルを検索する

「サーバーのファイルが知らないうちに変更されていたかもしれない」
「直近24時間以内に変更されたファイルだけを一覧表示したい」

Linuxサーバーの管理で、ファイルの変更履歴を確認するのは重要なセキュリティ確認作業です。

この記事では、find コマンドの -mtime オプションを使って24時間以内に変更されたファイルを検索する方法を解説します。
時間単位で検索する -mmin、変更日時でファイルを比較する -newer まで順番にまとめました。
【この記事でわかること】
・find パス -mtime -1 で24時間以内に変更されたファイルを検索できる
・-mtime -1 は「1日未満」、-mtime 1 は「1日以上2日未満」を意味する
・find パス -mmin -60 で60分以内に変更されたファイルを検索できる
・find パス -newer 参照ファイル で特定ファイルより新しいファイルを検索できる

続きを読む "24時間以内に修正されたファイルを検索する"

ファイルを文字列検索するには

「大量のログファイルから特定のエラーメッセージを素早く見つけたい」
「複数のファイルをまたいで文字列を検索したい」

Linuxのログ調査や設定ファイルの確認で、文字列検索は毎日必ず使う操作です。

この記事では、grep コマンドを使ってファイルから文字列を検索する方法を解説します。
基本的な使い方から、再帰検索・正規表現・よく使うオプションまで順番にまとめました。
【この記事でわかること】
・grep 文字列 ファイル名 でファイル内の文字列を検索できる
・-r オプションでディレクトリ配下を再帰検索できる
・-n で行番号付き表示、-l でファイル名のみ表示できる
・-i で大文字小文字を区別しない検索が可能

続きを読む "ファイルを文字列検索するには"

確認しながらファイルを削除する

「rm コマンドで誤って大切なファイルを削除してしまった」
「削除の前に確認を求めるようにしたいが、方法がわからない」

Linuxのファイル削除は一度実行すると元に戻せません。そのため、削除前の確認は重要な習慣です。

この記事では、rm -i コマンドを使って確認しながらファイルを削除する方法を解説します。
-I オプションとの違い、エイリアス設定による自動化まで順番にまとめました。
【この記事でわかること】
・rm -i ファイル名 でファイルを削除する前に確認プロンプトが表示される
・rm -I は3ファイル以上または再帰削除時のみ確認するため、より実用的
・rm -r でディレクトリごと削除できる(要注意)
・alias rm='rm -i' で常に確認付き削除にできる

続きを読む "確認しながらファイルを削除する"

他のユーザにファイルを見せないようにする

「他のユーザーに見られたくないファイルを作成した」
「Linuxのファイルパーミッションで、どうすれば他のユーザーからアクセスできないようにできるか?」

この記事では、chmod コマンドを使ってファイルのアクセス権限を変更し、他のユーザーに見せないようにする方法を実行例付きで解説します。

【この記事でわかること】
・chmodコマンドでファイルの権限を600に変更して他ユーザーに見せない方法
・Linuxのパーミッション(owner/group/other)の仕組みと数値表記の読み方
・chmod 700でディレクトリごとアクセスを拒否する方法
・実務でよく使うパーミッション設定パターンのまとめ

続きを読む "他のユーザにファイルを見せないようにする"

ファイルの内容を8進数や16進数で表示するには

テキストファイルの内容は catpg コマンドで確認できますが、内部ではバイナリデータとして保存されています。

この記事では、od コマンドで8進数、hexdump コマンドで16進数としてファイルの内容を表示する方法を解説します。
文字コードや改行コードの確認・バイナリ解析に活用できます。

【この記事でわかること】
・odコマンドでファイルの内容を8進数(オクタル)で表示する方法
・hexdumpコマンドでファイルの内容を16進数で表示する方法
・od -c でASCII文字として読み取り可能な形式で表示する方法
・バイナリファイルの文字コードや改行コードを確認する実用的な活用法

続きを読む "ファイルの内容を8進数や16進数で表示するには"

touchコマンドでファイルのタイムスタンプを変更する方法|-t/-r/-d オプションと新規ファイル作成

「ls -l で表示されるファイルの日時を変更したいのに、やり方がわからない」
「バックアップファイルのタイムスタンプを元のファイルに合わせたい」
「スクリプトでファイルを作成するとき、日付を意図的にずらしたい」

こんな場面で使うのが touch コマンドです。

この記事では、touchコマンドでファイルのタイムスタンプ(修正日時)を変更する方法を解説します。
基本的な -t オプションから、別ファイルに日時を合わせる -r オプション、文字列形式で指定できる -d オプション、新規ファイル作成への応用、よくあるエラーの対処法まで順番にまとめました。
【この記事でわかること】
・touch -t CCYYMMDDhhmm ファイル名 で任意の日時にタイムスタンプを変更できる
・touch -r 参照ファイル 対象ファイル で別ファイルに日時を揃えることができる
・touch ファイル名 だけで空ファイルの新規作成も可能
・他ユーザー所有ファイルへの変更は root権限(sudo)が必要になる

続きを読む "touchコマンドでファイルのタイムスタンプを変更する方法|-t/-r/-d オプションと新規ファイル作成"

ファイルの内容を行番号付きで表示する

「cat コマンドでファイルを表示すると、行数が多くて目的の行がすぐに見つからない」
「エラーログの何行目に問題があるか、ひと目で確認したい」

そんなときに役立つのが、行番号を付けてファイルを表示する方法です。

この記事では、cat -n コマンドを使ってファイルの内容を行番号付きで表示する方法を解説します。
空行の扱いが異なる -b オプション、nl コマンドや less -N との使い分けまで、現場でよく使うパターンを順番にまとめました。
【この記事でわかること】
・cat -n ファイル名 で全行に行番号を付けて表示できる
・cat -b ファイル名 で空行を除いた行番号表示ができる
・nl コマンドでも行番号付き表示が可能(デフォルトで空行は除外)
・less -N で大きなファイルをスクロールしながら行番号確認できる

続きを読む "ファイルの内容を行番号付きで表示する"

ファイルを誰でも書き込めるが、所有者しかファイルを削除できないディレクトリを作成する(スティッキービット)

「/tmp ディレクトリには誰でも書き込めるのに、他人のファイルは削除できない」
「複数ユーザーで共有するディレクトリを、誰でも書き込めるが自分のファイルだけ削除できる設定にしたい」

この動作を実現するのが スティッキービット(sticky bit)です。

この記事では、スティッキービットの仕組みと設定方法を解説します。
chmod での設定方法、ls -l での確認方法、実際の動作確認まで順番にまとめました。
【この記事でわかること】
・スティッキービットを設定すると、所有者以外はそのディレクトリ内のファイルを削除できない
・chmod +t ディレクトリ名 または chmod 1777 ディレクトリ名 で設定できる
・ls -l でパーミッションの末尾が t(または T)と表示される
・/tmp ディレクトリにはデフォルトでスティッキービットが設定されている

続きを読む "ファイルを誰でも書き込めるが、所有者しかファイルを削除できないディレクトリを作成する(スティッキービット)"

ディレクトリ内のファイルの所有権を別ユーザに変更する

「ディレクトリごと別のユーザーに所有権を移したい」
「chown -R を実行しようとして、本当に安全か不安になった」

サーバー移行やユーザー変更の際に必ずと言っていいほど直面する操作です。

この記事では、chown -R コマンドを使ってディレクトリ配下のファイルの所有権を一括変更する方法を解説します。
安全な実行手順と -R オプションの危険性についても合わせて説明します。
【この記事でわかること】
・chown -R ユーザー名 ディレクトリ名 でディレクトリ配下の所有権を一括変更できる
・chown はroot権限(sudo)が必要
・-R オプションは再帰的に処理するため、対象を慎重に確認してから実行する
・chown ユーザー名:グループ名 で所有者とグループを同時に変更できる

続きを読む "ディレクトリ内のファイルの所有権を別ユーザに変更する"

ファイル・ディレクトリの所有権を変更する

「ファイルの所有者を変更したいのに、やり方がわからない」
「chown コマンドで所有者とグループを同時に変更する書き方が知りたい」

Linuxサーバーの管理では、ファイルやディレクトリの所有権変更は日常的な作業です。

この記事では、chown コマンドを使ってファイル・ディレクトリの所有権を変更する方法を解説します。
基本的な所有者変更から、グループのみの変更、よくある「Permission denied」エラーの対処まで順番にまとめました。
【この記事でわかること】
・chown ユーザー名 ファイル名 でファイルの所有者を変更できる
・chown ユーザー名:グループ名 ファイル名 で所有者とグループを同時変更できる
・chown :グループ名 ファイル名 でグループのみを変更できる
・chown はroot権限(sudo)が必要

続きを読む "ファイル・ディレクトリの所有権を変更する"

ファイル、ディレクトリのデフォルトパーミッションを変更する

「新しく作ったファイルのパーミッションが毎回 644 になるけど、なぜ?」
「ディレクトリを作ると自動的に 755 になる仕組みが知りたい」

この動作を制御しているのが umask(ユーマスク)コマンドです。

この記事では、umask の仕組みとデフォルトパーミッションの変更方法を解説します。
数値の読み方から、設定の永続化、現場での標準設定まで順番にまとめました。
【この記事でわかること】
・umask コマンドで現在のデフォルトパーミッションマスクを確認できる
・umask の数値は「許可しないビット」を表す(ファイルは666-umask、ディレクトリは777-umask)
・umask 022 が現場標準(ファイル=644、ディレクトリ=755)
・~/.bashrc に umask を記述すると設定を永続化できる

続きを読む "ファイル、ディレクトリのデフォルトパーミッションを変更する"

Linuxの環境変数を確認・設定する方法|printenv・env・exportコマンドの使い分け

「Linuxの環境変数を確認したいが、printenvとenvとexportの違いがよく分からない」
「シェルスクリプトで変数を設定したのに、子プロセスで参照できない」
環境変数はLinuxコマンド操作やシェルスクリプトの根幹をなす仕組みです。理解が浅いまま使うと、設定したはずの変数が効かない、パスが通らないというトラブルの原因になります。

この記事では、Linuxの環境変数を確認・設定するためのprintenvenvexportコマンドの使い分けを解説します。
ローカル変数と環境変数の違い、.bashrcへの永続的な設定方法、シェルスクリプト内での活用法まで、現場で必要な知識をまとめました。
【この記事でわかること】
・printenv・env・exportコマンドの違いと使い分けを実務視点で解説
・exportコマンドで環境変数を設定し、子プロセスへ引き継ぐ方法
・~/.bashrc や /etc/profile.d/ を使って環境変数を永続化する手順
・PATHやPS1などよく使われる環境変数の意味と変更方法

続きを読む "Linuxの環境変数を確認・設定する方法|printenv・env・exportコマンドの使い分け"

lastコマンドでログイン履歴を確認する方法|lastb・lastlogやセキュリティ調査も

「誰かが勝手にサーバーにログインしていないか確認したい」
「不正アクセスの調査で、過去のログイン履歴を一覧で見たいけど、どのコマンドを使えばいいの?」

Linuxサーバーは複数のユーザーが同時にログインして利用します。セキュリティ管理の観点から、「誰が」「いつ」「どこから」ログインしたかを把握しておくことは非常に重要です。

この記事では、lastコマンドでユーザーのログイン履歴を確認する方法を解説します。基本的な使い方から、lastb(ログイン失敗履歴)、lastlog(最終ログイン日時)の使い分け、不正アクセス調査の実務Tipsまで網羅します。
【この記事でわかること】
・lastコマンドでLinuxサーバーのログイン履歴を一覧表示する方法
・lastbコマンドでログイン失敗の履歴を確認してセキュリティ調査に活用
・lastlogコマンドで全ユーザーの最終ログイン日時を一覧で確認する方法
・last/lastb出力の各フィールド(ユーザー名・端末・IPアドレス・日時)の読み方
・不審なアクセスを発見した際の調査フローと対処手順

続きを読む "lastコマンドでログイン履歴を確認する方法|lastb・lastlogやセキュリティ調査も"

dmesgコマンドでカーネルメッセージを確認する方法|-Tや-lの使い方とエラー対処も

「dmesgで何かエラーが出ていたはずだけど、どう調べればいいか分からない」
「サーバーが突然不安定になったけど、原因の手がかりをどこから探せばいいのか」
Linuxサーバーの運用で、ハードウェアやカーネルレベルの問題を調査する場面は必ず訪れます。

この記事では、Linuxの dmesg コマンドの基本的な使い方から、-T による人間が読めるタイムスタンプ表示、-l によるログレベル指定、--follow によるリアルタイム監視、さらに journalctl -k との使い分けや、ディスク障害・OOM Killer・NIC認識の実務での調査方法まで解説します。
RHEL 9.4 / Ubuntu 24.04 LTS で動作確認済みです。

この記事のポイント

・dmesg はカーネルのリングバッファからメッセージを表示するコマンド
・dmesg -T で人間が読める日時形式のタイムスタンプを表示できる
・dmesg -l err,warn でエラーと警告だけに絞り込める
・ディスク障害やOOM Killerの原因特定に欠かせない実務ツール

続きを読む "dmesgコマンドでカーネルメッセージを確認する方法|-Tや-lの使い方とエラー対処も"

LANカードの設定確認

Linuxサーバーのネットワーク設定を確認したいとき、コマンドを使う方法と設定ファイルを直接確認する方法があります。

この記事では、LANカード(NIC)に設定されたIPアドレス・ネットマスク・ゲートウェイなどの設定内容を確認する方法を解説します。
古いCentOS 7の方法から、RHEL 8以降でのNetworkManager方式まで説明します。

【この記事でわかること】
・ifcfg-eth0設定ファイルで静的IPアドレスの設定内容を確認する方法
・RHEL 8以降でのネットワーク設定ファイルの場所の変更(NetworkManager)
・ip aコマンドとifconfigコマンドでNICの設定を確認する方法
・nmcli device showコマンドでLANカードの詳細設定を確認する方法

続きを読む "LANカードの設定確認"

ユーザーを削除する

「ユーザーを削除したいが、ホームディレクトリも一緒に消えるか心配」
「userdelコマンドを実行したのに、ファイルが残ってしまった」

この記事では、userdel コマンドの基本から、ホームディレクトリの削除・残留ファイルのクリーンアップまで実行例付きで解説します。

【この記事でわかること】
・userdelコマンドでLinuxユーザーを削除する基本手順
・userdel -r オプションでホームディレクトリも一緒に削除する方法
・削除前に確認すべきこと(実行中プロセス・所有ファイルの確認)
・削除後の残留ファイルを find コマンドで確認・クリーンアップする方法

続きを読む "ユーザーを削除する"

ユーザーの設定を変更する

「ユーザーを作成した後からUIDやグループを変更したい」
「usermodコマンドのオプションが多くて、どれを使えばいいか分からない」

この記事では、usermod コマンドを使ってLinuxユーザーの各種設定を変更する方法を実行例付きで解説します。
CentOS 7 / RHEL 9で動作確認済みです。

【この記事でわかること】
・usermodコマンドでLinuxユーザーのUID・GID・ホームディレクトリを変更する方法
・usermod -gオプションでプライマリグループを変更する手順
・usermod -Gオプションでサブグループ(補助グループ)を追加・変更する方法
・usermod -lオプションでユーザー名を変更する方法と注意点

続きを読む "ユーザーの設定を変更する"

Linuxでユーザーの所属グループを確認する方法|groupsとidコマンドの違いと使い分け

Linuxでユーザーの所属グループを確認したいとき、どのコマンドを使えばよいか迷うことがあります。

この記事では、groupsidgetent コマンドの使い方と出力の違いを実行例付きで解説します。
グループの「確認方法」を扱います。グループの追加・変更は usermod コマンドで行います。

【この記事でわかること】
・groupsコマンドでLinuxユーザーが所属するグループを確認する基本手順
・idコマンドでUID・GID・所属グループをまとめて一括確認する方法
・getentコマンドでグループの全メンバーを一覧表示する方法
・groupsコマンドとidコマンドの出力の違いと使い分けのポイント

続きを読む "Linuxでユーザーの所属グループを確認する方法|groupsとidコマンドの違いと使い分け"

Apacheをインストールする方法|RHEL9・Rocky9・AlmaLinux9・Ubuntu24.04対応【dnf/apt/ソース両対応】

「Apacheをサーバーにインストールしたいけど、dnfで入れるのかソースからビルドするのか迷っている」
「公式リポジトリのhttpdとソースインストールで、運用面でどう違うのか知りたい」

ApacheはWebサーバーの代表格として、いまも世界中の本番環境で稼働しているソフトウェアです。インストール方法はいくつかあり、現代ではdnf/aptによるパッケージインストールが主流ですが、最新版を即座に取り込みたい場合や、構成を細かく制御したい場合はソースからのビルドも選択肢になります。

この記事では、Apacheをインストールする方法を、RHEL9 / Rocky Linux 9 / AlmaLinux 9 / Ubuntu 24.04 LTSのパッケージ方式と、ソースコードからのビルド方式の両方で解説します。実機での出力例も含めて、現場で迷わない選択基準まで網羅します。

この記事のポイント

・RHEL9系は dnf install httpd、Ubuntu系は apt install apache2 で導入できる
・公開サーバーでパッケージが追従していない脆弱性対応が必要な時はソースインストールも選択肢
・サービス名がRHEL系=httpd、Debian系=apache2と異なる点に注意
・ファイアウォール(firewalld/ufw)で80/443を開けないと外部から接続できない

続きを読む "Apacheをインストールする方法|RHEL9・Rocky9・AlmaLinux9・Ubuntu24.04対応【dnf/apt/ソース両対応】"

LinuxでIPアドレスを確認する方法|ip aの出力の読み方・NIC状態・hostname -Iの使い分け

「このサーバーのIPアドレス、何だっけ?」
「ifconfig を打ったら command not found と言われた」
Linuxサーバーの構築や障害対応で、自分のサーバーのIPアドレスを確認する場面は日常的に発生します。

この記事では、LinuxでIPアドレスを確認する実践的なコマンドを解説します。現代の標準である ip コマンドを中心に、hostname -Inmcli、旧来の ifconfig まで、環境に応じた使い分けと実行例をまとめました。

1. 【結論】現場で使うIPアドレス確認コマンド一覧

LinuxでIPアドレスを確認する代表的なコマンドは以下の4つです。

コマンド 特徴 対応環境
ip a 現代の標準。最も確実 RHEL 7以降 / Ubuntu 16.04以降
hostname -I IPアドレスだけをシンプルに表示 ほぼすべてのディストリビューション
nmcli device show ゲートウェイやDNSも同時に確認 NetworkManager導入環境
ifconfig 旧来のコマンド(非推奨) CentOS 6以前 / 別途インストール
迷ったら ip a を使ってください。現在のLinuxディストリビューションではほぼ確実に使えます。
【この記事でわかること】
・ip aコマンドでLinuxサーバーのIPアドレスを確認する基本手順
・ip aの出力結果の読み方(inet/inet6、インターフェース名の意味)
・ifconfigが「command not found」になる理由とip aへの移行方法
・複数NICがある環境での特定インターフェースの確認方法
・NMCLIコマンドでネットワーク設定の詳細を確認する方法

続きを読む "LinuxでIPアドレスを確認する方法|ip aの出力の読み方・NIC状態・hostname -Iの使い分け"

RPMパッケージの確認コマンドまとめ(一覧・バージョン・逆引きなど)

RPMパッケージの確認はLinuxサーバーを管理するうえでとても大切な作業の一つです。
「このサーバーにApacheは入ってる?バージョンは?」
「このファイルどのパッケージのもの?」など
サーバー管理や障害対応の現場では、こうした確認が日常的に発生します。

この記事では rpmコマンドを使ったパッケージ確認の全手順を、コマンド例とともに体系的に解説します。一覧表示から絞り込み、バージョン確認、ファイル逆引きまで、今日から使える内容です。

続きを読む "RPMパッケージの確認コマンドまとめ(一覧・バージョン・逆引きなど)"

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

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

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

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

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

dfコマンドでディスク容量を確認する方法|-h人間可読・iノード枯渇・duとの違い

Linuxのハードディスク情報を確認するには「dfコマンド」を使用します。dfコマンドはハードディスクの使用容量、空き容量、使用状況の割合などが表示されます。 Linuxではハードディスクをデバイスファイルと呼ばれる特殊なファイルとして扱います。IDEドライブの場合、Linuxシステム上/dev/hda(プライマリスターのハードディスク)、/dev/hdb(プライマリースレーブのハードディスク)などという名前を持っています。 dfコマンドの結果はこれらのファイル名も表示されるので、複数のハードディスクを使用していても区別して利用状況を確認することができます。

続きを読む "dfコマンドでディスク容量を確認する方法|-h人間可読・iノード枯渇・duとの違い"

ユーザーを作成する

「Linuxでユーザーを新規追加したいが、どのコマンドを使えばいいか分からない」
「useraddでユーザーを作成したが、ログインできない」

この記事では、useradd コマンドを使ってLinuxユーザーを新規作成する方法を実行例付きで解説します。
パスワード設定・ホームディレクトリ確認など、作成後の確認手順も合わせて説明します。

【この記事でわかること】
・useraddコマンドでLinuxユーザーを新規作成する基本手順
・useradd後にpasswdコマンドでパスワードを設定する方法
・ホームディレクトリの自動作成と/etc/passwdへの登録を確認する方法
・useradd -m, -g, -s などのオプションで作成時に詳細設定する方法

続きを読む "ユーザーを作成する"

起動時のメッセージを確認する

Linuxは起動時にデバイスの初期化やサービス起動の際にさまざまなメッセージを出力しますが、画面に高速に流れるため確認が難しいです。

この記事では、dmesg コマンドと /var/log/dmesg ファイルを使って起動時のメッセージを確認する方法を解説します。
ハードウェアエラーの調査や、デバイス認識の確認にも活用できます。

【この記事でわかること】
・dmesgコマンドでLinux起動時のカーネルメッセージを確認する方法
・/var/log/dmesg ファイルとdmesgコマンドの違いと使い分け
・dmesg | grep でハードウェアエラーやデバイス認識を絞り込む方法
・dmesg -T で人間が読みやすいタイムスタンプ付きで表示する方法

続きを読む "起動時のメッセージを確認する"

Linux起動時にコマンドやプログラムを自動実行させる

「Linuxの起動時に特定のスクリプトやコマンドを自動で実行させたい」
「rc.localに書いたのに起動時に実行されない」

この記事では、/etc/rc.d/rc.local ファイルを使って起動時にコマンドやスクリプトを自動実行させる方法を解説します。
CentOS 7以降での注意点(実行権限の付与)も合わせて説明します。

【この記事でわかること】
・/etc/rc.d/rc.localファイルにコマンドを記述して起動時に自動実行させる方法
・CentOS 7以降でrc.localを有効化するためにchmod 755が必要な理由
・systemdを使ったサービス自動起動(systemctl enable)との使い分け
・rc.localの実行ログを確認してエラーを調査する方法

続きを読む "Linux起動時にコマンドやプログラムを自動実行させる"

起動時に「LI」とだけ表示され停止してしまう

Linuxの起動時に「LI」とだけ表示されて停止してしまう——このトラブルはLILOブートローダーとBIOSの互換性問題が原因です。

この記事では、「LI」停止の原因と対処方法を解説します。
合わせて、LILOがMBRにインストールされている場合のアンインストール方法も紹介します。

【この記事でわかること】
・起動時に「LI」で停止する原因はBIOSの1024シリンダ制限(8.4GBの壁)
・GRUBに変更することで1024シリンダ制限を回避できる
・/bootパーティションを1024シリンダ以内に作成することで回避できる
・LILOがMBRにある場合のWindowsも含めた起動不能問題と対処方法

続きを読む "起動時に「LI」とだけ表示され停止してしまう"

passwdコマンドでLinuxのパスワードを変更する方法|ロック・有効期限の設定も

「Linuxでパスワードを変更したいが、passwdコマンドの使い方がよくわからない」
「rootで他のユーザーのパスワードを変更する方法を知りたい」

この記事では、passwd コマンドの基本的な使い方から、ロック・有効期限の設定まで実行例付きで解説します。
CentOS 7 / RHEL 9で動作確認済みです。

【この記事でわかること】
・passwdコマンドでLinuxユーザーのパスワードを変更する基本手順
・rootユーザーによる他ユーザーのパスワード強制変更の方法
・--lock / --unlock オプションでアカウントのロック・解除ができる
・--expire でパスワードの有効期限を即時切れにする運用方法

続きを読む "passwdコマンドでLinuxのパスワードを変更する方法|ロック・有効期限の設定も"

useraddコマンドでユーザーを追加する方法|オプションやsudo権限の付与も

「Linuxでユーザーを追加したいけど、コマンドがよくわからない」
「useraddで追加したはずなのに、ログインできない」
サーバー管理の基本であるユーザー管理は、手順を間違えるとセキュリティ事故に直結します。特に、ユーザーを追加した直後にパスワードを設定し忘れたり、不要な権限を与えてしまったりするトラブルは、現場で非常に多く見かけます。

この記事では、Linuxでユーザーを追加する useradd コマンド の実践的な使い方を解説します。
基本的なユーザー追加から、ホームディレクトリやシェルの指定、グループの設定、sudo権限の付与、アカウントのロック/アンロック、グループ管理コマンド(groupadd・groupmod・groupdel)まで、実務で必要なノウハウをすべて網羅しました。

useradd コマンドは root ユーザー、または sudo を付けた状態で実行する必要があります。一般ユーザーで実行すると「Permission denied」エラーになります。

この記事のポイント

・useradd でユーザーを追加した後、必ず passwd でパスワードを設定しないとログインできない
・-m でホームディレクトリ作成、-s でログインシェル指定(/sbin/nologin でログイン禁止)
・usermod -aG wheel で sudo 権限を付与(-a を忘れると既存グループが全削除される)
・usermod -L でアカウントをロック、-U でアンロック(退職者対応に必須)
・サービス専用ユーザーは useradd -s /sbin/nologin -M で作成するのがセキュリティの鉄則

続きを読む "useraddコマンドでユーザーを追加する方法|オプションやsudo権限の付与も"

viewコマンドでファイルを読み取り専用で開く方法|vim -Rとの違いと安全な閲覧手順

「設定ファイルの中身を確認したいだけなのに、手が滑って上書きしてしまった」
Linuxの現場では、/etc配下の設定ファイルやログファイルを「見るだけ」のつもりがviで開いて誤編集してしまう事故が後を絶ちません。

この記事では、viewコマンドの基本から応用までを解説します。
viewコマンドは vi -R(vim -R)と同等の読み取り専用モードでファイルを開くコマンドで、誤編集を防ぎつつviの全機能(検索・移動)をそのまま使えます。
RHEL 9.4 / CentOS 7で動作確認済みの実行例付きです。

viewコマンドとは? viとの違いを理解する

viewコマンドは、ファイルを読み取り専用モードで開くコマンドです。
内部的には vi -R と同じ動作をするため、viのすべての操作(検索、カーソル移動、ヤンク等)がそのまま使えます。

ただし、通常の :w による書き込みはブロックされます。
これにより「見るだけのつもりが誤って編集・保存してしまった」という事故を未然に防げます。

1. viewコマンドの基本構文

# viewコマンドの基本構文 view ファイル名

viと同じ感覚で使えますが、画面下部に「[readonly]」と表示されるのが特徴です。

2. vi -R との関係

viewコマンドと vi -R は完全に同じ動作をします。

# 以下の2つは同じ動作 view /etc/httpd/conf/httpd.conf vi -R /etc/httpd/conf/httpd.conf

どちらを使っても構いませんが、viewの方がタイプ数が少なく、読み取り専用であることが名前から明確です。
現場ではviewコマンドの方がよく使われます。

viewコマンドの基本的な使い方

1. ファイルを読み取り専用で開く

実際にviewコマンドで /var/log/messages を開いてみます。
messagesファイルはroot権限が必要なため、suコマンドでrootになってから実行しています。

$ su - Password: # view /var/log/messages ar 16 12:14:01 dolphin syslogd 1.4.1: restart. Mar 16 12:14:01 dolphin syslog: syslogd startup succeeded Mar 16 12:14:01 dolphin syslog: klogd startup succeeded Mar 16 12:14:02 dolphin kernel: klogd 1.4.1, log source = /proc/kmsg started. Mar 16 12:14:02 dolphin kernel: Linux version 2.6.9-1.667 (bhcompile@tweety.build.redhat.com)

root権限が不要なファイルであれば、一般ユーザーのままviewコマンドを実行できます。

2. view中の基本操作

viewで開いたファイル内では、viと同じキー操作が使えます。

/ + 文字列:前方検索(nで次の候補、Nで前の候補)
? + 文字列:後方検索
:noh:検索ハイライトを消す
G:ファイル末尾に移動
gg:ファイル先頭に移動
:set number:行番号を表示
:q:viewを終了

またページ送り・カーソル移動のショートカットも覚えておくと便利です。

操作 キー
1画面下にスクロール Ctrl + f
1画面上にスクロール Ctrl + b
半画面下にスクロール Ctrl + d
ファイルの先頭へ移動 gg
ファイルの末尾へ移動 G
指定行へ移動(例: 50行目) :50
検索や移動はviそのものなので、lessやmoreでは不便に感じる複雑なファイル閲覧に威力を発揮します。

3. 設定ファイルの安全な閲覧

viewコマンドが最も役立つのは、本番サーバーの設定ファイルを確認するときです。

# Apache設定ファイルを安全に閲覧 view /etc/httpd/conf/httpd.conf # SSH設定ファイルを安全に閲覧 view /etc/ssh/sshd_config # ネットワーク設定を安全に閲覧(RHEL 9) view /etc/NetworkManager/system-connections/ens160.nmconnection

viで開くと、うっかりInsertモードに入って文字を入力してしまうことがあります。
viewなら「:w」で保存しようとしてもブロックされるため、安心してファイルの中身を確認できます。

応用・実務で使えるviewコマンドのTips

1. w!による強制書き込み(緊急時の保険)

viewコマンドで開いたファイルでも、:w!(感嘆符付き)を使えば強制的に書き込むことができます。

# viewで開いたファイルに強制書き込み :w! # 別名で保存する場合 :w! /tmp/backup_httpd.conf

「読み取り専用で開いたけど、やはり少し修正が必要だった」という場面で、ファイルを開き直す手間が省けます。
ただし、本番環境で :w! を安易に使うのは要注意です。読み取り専用で開いた意味がなくなります。設定ファイルを書き換える際は必ず事前にバックアップを取る習慣をつけてください(例:cp /etc/httpd/conf/httpd.conf /tmp/httpd.conf.bak)。

2. 特定の行に直接ジャンプして開く

設定ファイルのエラーメッセージで「行番号」が示された場合、その行をすぐに確認できます。

# 行番号付きで表示する(view起動後に実行) :set number # 特定の行に直接ジャンプして開く(例: 120行目) view +120 /etc/httpd/conf/httpd.conf

3. 複数ファイルをviewで順番に開く

viewコマンドでも、viと同様に複数ファイルを引数に指定できます。

# 複数の設定ファイルを順番に閲覧 view /etc/httpd/conf/httpd.conf /etc/httpd/conf.d/ssl.conf # :n で次のファイルに移動 # :N で前のファイルに戻る

設定ファイルを比較しながら確認したいときに便利です。

4. viewとless/more/catの使い分け

ファイルを「見るだけ」のコマンドは、view以外にもless・more・catがあります。
現場での使い分けの目安は以下のとおりです。

コマンド 特徴 向いている場面
view ファイル名 viの操作で閲覧。行番号表示や正規表現検索が可能 設定ファイルの詳細確認。vi操作に慣れている人
less ファイル名 軽量なページャ。前後スクロール可能 ログファイルの閲覧。サッと確認したいとき
more ファイル名 前方スクロールのみ。後方に戻れない パイプの出力を順に確認するとき
cat ファイル名 ファイル全体を一括出力 短いファイルの内容確認
view:vi操作に慣れている人向け。検索・行番号表示・特定行へのジャンプが自在
less:大きなログファイルの閲覧向け。Fキーで tail -f 相当のリアルタイム監視もできる
more:シンプルにページ送りで読むだけ。スクリプト内での使用に向く
cat:短いファイルをターミナルに直接出力したいとき

viの操作に慣れているエンジニアなら、viewコマンドが最も効率的です。
lessは cat /var/log/messages | less のようにパイプで使えるのが強みですが、viewにはパイプからの入力はできません。

viewコマンドのトラブルシュート

1. 「E45: \\\\'readonly\\\\' option is set」が表示される

viewで開いたファイルに対して :w を実行すると、このエラーが表示されます。

E45: 'readonly' option is set (add ! to override)

これはviewコマンドの正常な動作です。
書き込みが本当に必要な場合は :w! で強制保存するか、:q! で終了してviで開き直してください。

2. 「E21: Cannot make changes, 'modifiable' is off」が表示される

viewで開いたファイルを編集しようとすると、このエラーが表示されることもあります。これも正常な動作です。

どうしても編集が必要になった場合は、以下の方法があります。

# 方法1: viewを終了してviで開き直す(推奨) :q vi /etc/httpd/conf/httpd.conf # 方法2: view内で読み取り専用を解除する(緊急時のみ) :set noreadonly :set modifiable

方法2は緊急時に使えますが、基本的にはviewを終了して vi で開き直す方法1を推奨します。
「意図的にviに切り替えた」という操作として記録が残り、チーム作業でも誤解が生じません。

3. viewコマンドが見つからない場合

最小構成のLinuxインストールでは、vim-minimalしか入っていないことがあります。

# viewコマンドの場所を確認 $ which view /usr/bin/view # viewが見つからない場合はvim-enhancedをインストール # RHEL 9 / Rocky Linux 9 $ sudo dnf install vim-enhanced # CentOS 7 $ sudo yum install vim-enhanced

vim-enhancedをインストールすると、viewコマンドも使えるようになります。

4. 「Permission denied」でファイルが開けない

viewは読み取り専用モードですが、ファイル自体の読み取り権限がなければ開けません。

# 権限エラーが出る場合 $ view /etc/shadow "/etc/shadow" [Permission denied] # sudoを付けて実行 $ sudo view /etc/shadow

/var/log/messages や /etc/shadow など、root権限が必要なファイルは sudo view で開いてください。

本記事のまとめ

viewコマンドは「ファイルを安全に閲覧する」ためのシンプルかつ実用的なコマンドです。
viの全機能を使いながら誤編集を防げるため、本番サーバーの設定確認には欠かせません。

やりたいこと コマンド
ファイルを読み取り専用で開く view ファイル名
vi -Rで読み取り専用にする vi -R ファイル名
読み取り専用を解除して強制保存 :w!
特定の行にジャンプして開く view +行番号 ファイル名
別名で保存する :w! /tmp/backup.conf
複数ファイルを順番に閲覧する view ファイル1 ファイル2
viewを終了する :q

【この記事でわかること】
・viewコマンドはvi -Rと同じ読み取り専用モードでファイルを開く
・設定ファイルの安全な閲覧に最適(誤って :w しても保存されない)
・:w! で強制書き込みも可能(緊急時の保険)
・less/more/catとの使い分けを実務視点で解説

続きを読む "viewコマンドでファイルを読み取り専用で開く方法|vim -Rとの違いと安全な閲覧手順"

sedコマンドで文字列を置換する方法|-iの一括置換やファイル編集も

「設定ファイルの中の文字列を一括で書き換えたいけど、viで1つずつ修正するのは時間がかかりすぎる」
「sedコマンドの書き方が複雑で、毎回ネットで調べてしまう」
サーバーの構築や設定変更で、設定ファイルの特定の文字列をまとめて置換したい場面は頻繁に発生します。
20年以上サーバーを運用してきた現場では、sedなしの設定変更作業は考えられないほど頻繁に使うコマンドです。

この記事では、テキストを加工する sed(セド)コマンド の実践的な使い方を解説します。
基本的な文字列置換から、ファイルを直接書き換える -i オプション、複数の置換ルールを一括実行する -e / -f オプション、正規表現を使った高度な置換、findxargs との組み合わせによる複数ファイルの一括置換まで、RHEL 9.4 / Ubuntu 24.04 LTS で動作確認した実務手順を実行例付きでまとめました。

この記事のポイント

・ sed 's/old/new/g' で行内の全マッチを一括置換できる(RHEL 9.4 で動作確認済み)
・ -i オプションでファイルを直接上書き保存できる(-i.bak でバックアップ付き)
・ -e / -f と正規表現・後方参照で複数の置換ルールを一括実行できる
・ find / xargs と組み合わせると複数ファイルの一括置換も安全に行える

続きを読む "sedコマンドで文字列を置換する方法|-iの一括置換やファイル編集も"

CentOS7でSELinuxを無効化する方法|getenforce・setenforce・config設定まで

「Apacheを起動したのに接続できない」「ファイルを作成したのに権限エラーが出る」——こういったトラブルの原因がSELinuxだったというケースは、Linuxサーバー管理者なら一度は経験しているはずです。

SELinuxはサーバーのセキュリティを強化する重要な機能ですが、設定が複雑なため、開発環境や検証環境では一時的に無効化したい場面もあります。

この記事では、SELinuxの現在の状態を確認する方法と、一時的・恒久的に無効化する手順を、CentOS7とRHEL9/Rocky Linux9の両方に対応して解説します。

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

getenforce コマンドで現在のSELinuxの動作モードを確認できる
・一時的な無効化は setenforce 0(再起動すると元に戻る)
・恒久的な無効化は /etc/selinux/config の SELINUX=disabled に変更して再起動
・本番サーバーでの無効化は推奨しない。Permissiveモードで影響調査してから判断する


【この記事でわかること】
・SELinuxの動作状態をgetenforceコマンドで確認する方法
・setenforceコマンドで一時的にSELinuxを無効化・許可モードに変更する方法
・/etc/selinux/configファイルを編集して恒久的に無効化する方法
・SELinuxが原因の権限エラーをaudit2allowやsealertで調査するヒント
・無効化前に知っておくべきSELinuxのセキュリティ上の注意点

続きを読む "CentOS7でSELinuxを無効化する方法|getenforce・setenforce・config設定まで"

dfコマンドでディスク容量を確認する方法|-h人間可読・iノード枯渇・duとの違い

「サーバーのディスク容量が足りなくなっているかもしれないけど、どうやって確認すればいいの?」
「dfコマンドを実行したけど、tmpfsが大量に並んで肝心のディスク情報が見づらい」
Linuxサーバーの運用で、こうした場面に遭遇したことはないでしょうか。ディスク容量の問題を放置すると、サービス停止やデータ消失にまで発展するため、日常的な確認作業が欠かせません。

この記事では、Linuxの df コマンドを使ってディスク容量や使用率を確認する実践的な手順を解説します。
基本的なオプション(-h・-T・-i)の使い方から、tmpfsを除外して見やすくする方法、dfとduの違い、iノード枯渇への対処、ディスク使用率の自動監視スクリプトまで、現場で必要な知識をまとめました。

実行環境:RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済み

この記事のポイント

・df -h でパーティションごとの空き容量を人間が読みやすい形式で確認できる
・df -T でファイルシステムの種類(xfs・ext4など)を表示できる
・df -i でiノード使用率を確認し、容量はあるのに書き込めない原因を特定できる
・duコマンドと組み合わせて「どのディレクトリが容量を食っているか」を調べる


続きを読む "dfコマンドでディスク容量を確認する方法|-h人間可読・iノード枯渇・duとの違い"

killコマンドでプロセスを強制終了する方法|kill -9やkillall・pkillの使い分けも

「暴走したプロセスを止めたいのに、killコマンドを打っても終了しない」
「kill -9 で強制終了していいのか、毎回不安になる」
サーバー運用の現場では、応答しなくなったプロセスを安全に停止させる必要がある場面に必ず遭遇します。

この記事では、プロセスにシグナルを送る kill(キル)コマンド の実践的な使い方を解説します。
SIGTERM と SIGKILL の違いから、プロセス名で終了できる killall / pkill、子プロセスごと止める setsid の併用、ゾンビプロセスへの対処、timeout コマンドと組み合わせた2段階の自動終了まで、現場で20年以上サーバーを運用してきた経験から、安全にプロセスを管理するためのノウハウをまとめました。

この記事のポイント

・kill PID は SIGTERM(後始末あり)、kill -9 PID は SIGKILL(強制)
・停止の鉄則は「SIGTERM → 数秒待つ → 残っていたらSIGKILL」の2段階
・killall や pkill は一括終了できる分、実行前に pgrep で必ず対象確認
・子プロセスごと止めるには setsid、時間制限には timeout --kill-after が鉄板

続きを読む "killコマンドでプロセスを強制終了する方法|kill -9やkillall・pkillの使い分けも"

pingコマンドの使い方|疎通確認の基本からオプション・トラブル対処まで

「サーバーにつながらない」「ネットワークが通っているか確認したい」
こうしたトラブルの初動で最初に使うのが、pingコマンドです。

ただし、pingが通らないからといって「サーバーが落ちている」と即断するのは危険です。近年はセキュリティの観点からICMPパケットへの応答を意図的にブロックしている環境が多く、pingが通らなくてもサービスは正常に動いていることがよくあります。

この記事では、pingコマンドの基本的な使い方からオプション指定、結果の読み方(TTL・パケットロス率の解釈)、「pingが通らない」ときの原因切り分けと実務的な代替確認手段まで、現場で必要な知識をまとめて解説します。

この記事のポイント

・LinuxのpingはWindowsと違い、-cで回数を指定しないと止まらない
・パケットロスは統計行の「X% packet loss」とicmp_seqの欠番で確認する
・応答なし ≠ サーバー障害。ICMPブロック・ファイアウォール・ルーティングの順で切り分ける
・ICMPブロック環境では curl・nc・telnet でTCPレベルの疎通確認ができる

続きを読む "pingコマンドの使い方|疎通確認の基本からオプション・トラブル対処まで"

diffコマンドでファイルを比較する方法|unified形式やディレクトリ比較も

「設定ファイルを変更したけど、どこを変えたか分からなくなった」
「本番サーバーにデプロイする前に、設定ファイルの差分を確認したい」

Linuxでサーバーを管理していると、設定ファイルの変更箇所を正確に把握する場面が頻繁にあります。

この記事では、diffコマンドの基本から、実務で最も使われるunified形式(-u)やディレクトリ比較(-r)、パッチの作成・適用まで、現場で必要な使い方をすべて解説します。動作確認環境は RHEL 9.4 / Rocky Linux 9.4 です。

この記事のポイント

・diff ファイル1 ファイル2 で2つのファイルの差分を表示できる
・diff -u で unified 形式の見やすい差分出力が得られる
・diff -r でディレクトリ同士を再帰的に比較できる
・patchコマンドと組み合わせて差分を適用できる

続きを読む "diffコマンドでファイルを比較する方法|unified形式やディレクトリ比較も"

sortコマンドでテキストを並び替える方法|数値ソートやフィールド指定も

「sortコマンドで並び替えたら、数値の順番がおかしい」
「CSVの特定の列でソートしたいけど、やり方がわからない」

LinuxのsortコマンドはCoreutils(GNU sort)に含まれており、RHEL 9 / Ubuntu 24.04 LTS標準搭載のテキスト処理ユーティリティです。ログ解析、設定ファイルの確認、データの集計など、サーバー管理のあらゆる場面で使います。

この記事では、sortコマンドの基本から、数値ソート・フィールド指定・重複削除まで、実務で必要になるオプションをすべて解説します。「100が2より前に来る」という初心者がハマりやすい落とし穴と、その対処法もしっかり押さえましょう。

この記事のポイント

・sort はテキストを行単位で並び替える基本コマンド
・数値ソートは -n、降順は -r、列指定は -k と -t で行う
・-V でバージョン番号順、-u で重複排除も1コマンドで完結する
・uniq と組み合わせれば、ログのIP集計もワンライナーで処理できる

続きを読む "sortコマンドでテキストを並び替える方法|数値ソートやフィールド指定も"

tailコマンドでログ監視する方法|tail -fの使い方やgrep連携も

「tail -f でログを監視したいけど、画面が流れていくだけで必要な情報を見つけられない」
「tail コマンドでファイルの末尾を表示できるのは知っているけど、オプションの使い分けが曖昧」
Linuxサーバーの運用保守で、ログファイルをリアルタイムに監視する場面は毎日のように訪れます。

この記事では、Linuxの tail コマンドの基本的な使い方から、実務で最も重要な tail -f によるリアルタイム監視、grep との組み合わせによる特定ログの抽出、ログローテーションに対応する -F オプション(大文字)の使い分け、nohup を使ったバックグラウンド長時間監視、さらに journalctl -f との使い分けまでを解説します。RHEL 9 / AlmaLinux 9 / Ubuntu 24.04 LTS で動作確認済みです。

この記事のポイント

・tail -f はログをリアルタイム監視する運用保守の基本コマンド
・ログローテーションに対応するには -F(大文字)を使うのが鉄則
・grep や journalctl と組み合わせれば、必要な情報だけを絞り込める
・nohup で tail -F をバックグラウンド実行すれば、ターミナルを閉じても長時間監視が継続できる

続きを読む "tailコマンドでログ監視する方法|tail -fの使い方やgrep連携も"

mvコマンドでファイルを移動・リネームする方法|上書き防止や一括変更も

「あのファイル、どこに置いたっけ?」と思ったら気づいた。移動したつもりが、コピーして元ファイルが残っていた。
「ディレクトリ名を変えたいけど、移動先を別途作るのが面倒」
Linuxでファイルやディレクトリを移動・リネームするには mv(move)コマンドを使います。

この記事では、mv コマンド の実践的な使い方を解説します。
cp との仕組みの違い(inode付け替えで瞬時に移動する仕組み)から、上書き防止オプション(-i / -n)、バックアップ付きの安全な移動(-b / -S)、find との組み合わせによる条件付き一括移動まで網羅しました。

この記事のポイント

・mv は移動(元ファイルが消える)とリネーム(名前変更)の両方に使えるコマンド
・同一ファイルシステム内の移動は inode の付け替えだけで完了するため、数GBでも一瞬
・-i で上書き確認、-n で上書き禁止、-b と -S で拡張子指定付き自動バックアップが設定できる
・find との組み合わせで更新日時・サイズなど条件付き一括移動が可能

続きを読む "mvコマンドでファイルを移動・リネームする方法|上書き防止や一括変更も"

lsコマンドのオプション一覧|Linux基本コマンドリファレンス

「lsコマンドのオプションが多すぎて、どれを使えばいいのか分からない」
「-lと-aは知っているけど、他のオプションはほとんど使ったことがない」
Linuxを使い始めたばかりの方から、実務でサーバーを運用している方まで、lsコマンドのオプションで悩む場面は意外と多いものです。

この記事では、ls コマンドの主要オプションを用途別に整理して解説します。
基本の -l-a から、実務で重宝する -h-R-F-i-d まで、実行例付きで一通りカバーしました。

【この記事でわかること】
・lsコマンドのオプションを用途別に一覧で確認できる
・-l, -a, -h など実務でよく使うオプションを実行例付きで解説
・ディレクトリ確認(-d)・再帰表示(-R)・タイプ識別(-F)の使い方
・ls -l の出力結果(パーミッション・所有者・サイズ)の正しい読み方
・実務でよく使うオプション組み合わせパターン(ls -la, ls -lh など)

続きを読む "lsコマンドのオプション一覧|Linux基本コマンドリファレンス"

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