Linuxtips

HOME > Linuxtips

Linuxtips:記事リスト

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

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ファシリティ・プライオリティの指定、シェルスクリプトとの組み合わせ、リモートホストへのログ転送まで、実務で即使える内容を網羅します。

この記事のポイント

・logger コマンドでシェルから /var/log/messages(syslog)に直接書き込める
・-t でタグを付けるとスクリプト名で絞り込み検索できる
・-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って何を指定すれば目的のログが出てくるの?」

こうした疑問を持つ方は多いと思います。Linuxの監査ログ(auditd)は、セキュリティインシデントの追跡・コンプライアンス対応・権限変更の追跡など、現場で欠かせない仕組みです。しかし、膨大なログの中から必要な情報を絞り込む方法を知らないと、あっという間に作業が行き詰まります。

この記事では、ausearchコマンドを使った監査ログの検索方法と、集計レポートを生成するaureportコマンドの使い方を実践的に解説します。RHEL 9 / AlmaLinux 9での動作確認済みです。

この記事のポイント

・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 / Ubuntu 24.04 LTS で動作確認済みです。

この記事では、sarコマンドの基本的な使い方から、実務で役立つ過去データの読み方、よくあるトラブルの対処法まで解説します。

この記事のポイント

・sar -u でCPU使用率を時系列で確認できる
・sar -f /var/log/sa/saXX で過去の統計データを参照できる
・sysstatパッケージのインストールとcron設定が前提条件
・実務では「遅かった時間帯」に絞り込む -s/-e オプションが便利

続きを読む "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コマンドで標準入力からコマンドを一括実行する方法|findとの組み合わせや並列処理も

「findで検索したファイルに対して、まとめてコマンドを実行したい」 「パイプで渡した結果を1つずつ処理するシェルスクリプトを書くのが面倒だ」 サーバー運用で大量のファイルを扱う場面では、こうした悩みがつきものです。そこで活躍するのが xargs(エックスアーグズ)コマンドです。 この記事では、xargs の基本的な使い方から、find との組み合わせ、ファイル名にスペースを含む場合の安全な処理、並列実行による高速化、そして実務で役立つワンライナーまで、現場で必要になるノウハウをまとめて解説します。 RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済みです。

この記事のポイント

・xargs は標準入力を引数に変換してコマンドを一括実行する
・find -print0 | xargs -0 でスペース入りファイルも安全に処理
・-P オプションで複数プロセスの並列実行ができる
・-I {} で引数の挿入位置を自由に指定できる

続きを読む "xargsコマンドで標準入力からコマンドを一括実行する方法|findとの組み合わせや並列処理も"

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コマンドでブロックデバイスを一覧表示する方法|ディスク構成やパーティション確認も"

ipコマンドでネットワーク設定を確認・変更する方法|ifconfigとの違いやアドレス追加も

「ネットワークの設定を変えようとしたら ifconfig が動かない。ip コマンドって何?」
そんな疑問を持ったことはありませんか?
RHEL 8 以降の環境では ifconfig がデフォルトで入っていないことがあり、
代わりに ip コマンドを使うことが当たり前になっています。

この記事では、ip コマンドの実践的な使い方を解説します。
IPアドレスの確認・追加・削除から、ルーティングの操作、リンク(NIC)の有効化・無効化まで、
現場でよく使う操作をひとまとめにカバーします。
動作確認環境:RHEL 9.4 / Ubuntu 24.04 LTS

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

・ip コマンドは ifconfig の後継で RHEL 8以降は標準
・ip addr でIPアドレスの確認・追加・削除ができる
・ip route でルーティングテーブルの確認と変更が可能
・追加した設定は再起動で消えるためnmcliで永続化が必要

続きを読む "ipコマンドでネットワーク設定を確認・変更する方法|ifconfigとの違いやアドレス追加も"

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

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

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

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

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

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

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

Linuxでユーザーのパスワードを変更する方法|passwdとgpasswdコマンドの使い分け

「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コマンドの使い分け"

lsofコマンドでプロセスが使用中のファイルを確認する方法|ポートやネットワーク接続の調査も

「lsofコマンドを使いたいけど、出力が多すぎて何を確認すればいいか分からない」
「device is busyでumountできない。どのプロセスがファイルを掴んでいるの?」
サーバー運用で「このファイルは誰が使っている?」「このポートを掴んでいるプロセスは?」と調べたい場面は頻繁に訪れます。

この記事では、lsof コマンドの実践的な使い方を解説します。
ファイルを開いているプロセスの特定、特定ユーザーやPIDの絞り込み、ネットワーク接続・ポートの調査から、「device is busy」「Permission denied」のトラブルシュートまで、現場で必要になる操作を網羅しました。
※ 動作確認環境:RHEL 9.4 / Ubuntu 24.04 LTS

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

・lsof はLinuxで開いているファイルを一覧表示するコマンド
・lsof -i :ポート番号 で特定ポートの使用プロセスを即座に特定できる
・lsof | grep deleted で削除済みなのにディスクを消費しているファイルを発見できる
・「device is busy」はlsofでプロセスを特定してから安全に対処する

続きを読む "lsofコマンドでプロセスが使用中のファイルを確認する方法|ポートやネットワーク接続の調査も"

Linuxログの調査をする方法|/var/log/の読み方からgrep・journalctlの検索テクニックまで

「ログを調べたいけど、/var/log/ の中にファイルが大量にあって、どれを見ればいいのか分からない」
「messagesやsecureの中身をgrepで探しても、量が多すぎて目的の情報にたどり着けない」
Linuxサーバーのトラブル対応で最初にやるべきことは、ログの調査です。しかし、ログファイルの種類や調査手法を体系的に理解していないと、無駄に時間を消費してしまいます。

この記事では、Linuxログの調査に必要な知識を網羅的に解説します。主要ログファイルの役割と読み方、grepjournalctl を使った効率的な検索テクニック、日時範囲での絞り込み、さらに「ログが出力されない」「ログが肥大化している」「cronジョブが動いているか確認できない」といった現場で頻出するトラブルの対処法までをカバーしています。
RHEL 9 / CentOS 7 / Rocky Linux 9 / Ubuntu 24.04 LTSで動作確認しています。

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

・/var/log/ 配下の主要ログファイルの役割と使い分けを解説
・grep -i / -C / zgrep でログを効率的に検索するテクニック
・journalctl --since/--until で日時範囲を絞り込む方法
・/var/log/cron でcronジョブの実行確認・REPLACE履歴の調べ方
・「ログが出ない」「肥大化」等のトラブルシュート手順

続きを読む "Linuxログの調査をする方法|/var/log/の読み方からgrep・journalctlの検索テクニックまで"

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 ループとの使い分けにも触れているので、用途に応じて最適な方法を選べるようになるはずです。

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

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

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

Linuxでファイルに行番号を付けて表示する方法|cat -nとnlコマンドの使い分け

「設定ファイルの○○行目にエラーがあると言われたけど、行番号が表示されなくて探しにくい...」
「cat -nとnlコマンドの違いがよくわからない。どっちを使えばいいの?」

Linuxでファイルを表示するとき、行番号がないと「何行目の話をしているのか」が伝わりません。
設定ファイルのレビュー、ログの調査、スクリプトのデバッグなど、行番号が必要になる場面は現場で頻繁に発生します。

この記事では、Linuxでファイルに行番号を付けて表示する方法を解説します。
cat -nnlコマンドの違い、less -Nでの閲覧、grep -nとの連携まで、実務で必要になる操作を網羅します。
【この記事でわかること】
cat -n で全行に、cat -b で空行を除いた行に番号を付ける方法
nl コマンドでゼロ埋め・開始番号指定など柔軟に行番号を制御する方法
less -N で長いファイルをスクロールしながら行番号付きで確認する方法
grep -n で特定の文字列がある行番号を瞬時に特定する方法
cat -nnl の使い分け基準

続きを読む "Linuxでファイルに行番号を付けて表示する方法|cat -nとnlコマンドの使い分け"

tail -fコマンドでログをリアルタイムに監視する方法|grepフィルタやローテーション対策も

「ログファイルをリアルタイムで監視したいけど、どうやって確認すればいいのか分からない」

Linuxサーバーで障害やエラーが発生したとき、ログファイルをリアルタイムに追跡できるかどうかで、原因特定のスピードが大きく変わります。
catコマンドで毎回ファイルを開き直しているようでは、刻々と書き込まれるログを追いかけることはできません。

この記事では、tail -fコマンドによるリアルタイムログ監視の基本から、複数ファイルの同時監視、grepとの組み合わせによるフィルタリング、さらにログが流れない時のトラブルシュートまで、現場で使える実践テクニックを解説します。
【この記事でわかること】
tail -f でログファイルをリアルタイムに追跡する仕組みと基本的な使い方
grep との組み合わせで特定キーワードのログだけを絞り込む方法
・複数ログファイルを同時に監視する方法
tail -F(大文字)でログローテーション後も追跡し続ける方法
・「ログが流れない」時の原因別トラブルシュート手順

続きを読む "tail -fコマンドでログをリアルタイムに監視する方法|grepフィルタやローテーション対策も"

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で属性確認と実務活用も"

ディレクトリ内のファイル数をカウントする方法|ls・wc・findコマンドの使い分け

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

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

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

続きを読む "ディレクトリ内のファイル数をカウントする方法|ls・wc・findコマンドの使い分け"

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が使えない…」
「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の見方やポート確認も"

xargsコマンドの使い方|find連携やパイプで引数を渡す実践例

「findで見つけたファイルを一括で削除したいけど、パイプでうまく渡せない」
「xargsコマンドの存在は知っているけど、使い方がよくわからない」

Linuxでコマンドを組み合わせるとき、パイプ( | )だけでは引数を渡せない場面があります。そんなときに活躍するのが xargs コマンドです。標準入力から受け取ったデータを、別のコマンドの引数として渡してくれます。

この記事では、xargsコマンドの基本から、findとの連携・ファイル名にスペースを含む場合の安全な処理・並列実行まで、実務で必要になる使い方をすべて解説します。コマンドを組み合わせる力が格段に上がるので、しっかり押さえておきましょう。

【この記事でわかること】
・xargsが必要な理由とパイプだけでは解決できない問題
・基本構文と find との連携方法(-print0 / -0 の安全な使い方)
・-n/-I/-p/-t オプションの使い方と実務での活用シーン
・-P オプションによる並列実行で処理を高速化する方法
・「Argument list too long」など典型的なエラーの対処法

続きを読む "xargsコマンドの使い方|find連携やパイプで引数を渡す実践例"

awkコマンドの使い方|パターン検索やフィールド抽出の実践例

「ログファイルから特定のフィールドだけ抜き出したい」「CSVの特定列だけ表示したい」
こうした場面で真っ先に頼りになるのが、awkコマンドです。

この記事では、awkコマンドの基本構文からフィールド抽出、パターンマッチ、パイプとの組み合わせまで、実務で使える実践的な使い方を解説します。
初心者がつまずきやすいポイントやトラブル対処も網羅しているので、ぜひ最後まで読んでみてください。

【この記事でわかること】
・awkコマンドの基本構文とフィールド抽出の仕組み
・-F オプションで区切り文字を指定してCSV/passwdを処理する方法
・パターンマッチと数値条件で行を絞り込む方法
・BEGIN/ENDブロックと組み込み変数(NR・NF・OFS)の使い方
・パイプとの組み合わせや「syntax error」が出た時の対処法

続きを読む "awkコマンドの使い方|パターン検索やフィールド抽出の実践例"

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.d/ に設定ファイルを置くだけで独自ログも管理できる
・logrotate -d でドライランし、実際の動作を事前確認できる
・dateextを使うとローテーション後のファイル名に日付が付き管理しやすい

続きを読む "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 を付けないと再起動で設定が消えることとその対処法
・ポート開放は --add-port、サービス追加は --add-service の使い方
・ゾーンでNIC単位のアクセス制御を柔軟に設計する方法
・よくあるエラー(ポートが開かない・設定が消える)の原因と対処法

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

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

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

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

この記事では、SSH経由でファイルを安全に転送する scp コマンドの使い方を解説します。ローカル→リモート・リモート→ローカルの基本転送から、ディレクトリごとの転送、ポート指定、圧縮転送、rsyncとの使い分けまで網羅しました。
【この記事でわかること】
・scpコマンドの基本構文と「ローカル→リモート」「リモート→ローカル」の転送方法
・-rオプションでディレクトリごと・-Cオプションで圧縮転送する方法
・秘密鍵指定(-i)とポート指定(-P)で鍵認証環境でも確実に転送する手順
・Permission deniedやHost key verificationなどよくあるエラーの原因と対処法
・rsyncとscpの使い分け基準(差分同期が必要かどうか)

続きを読む "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ログの確認・検索・管理方法"

rsyncコマンドの使い方|バックアップ・リモート同期・差分転送まで

「rsyncでリモートサーバーにバックアップを取りたいけど、オプションが多くて何を指定すればいいかわからない」
「--deleteを使ったら余計なファイルまで消えてしまいそうで怖い」

rsyncはLinuxでファイルの同期やバックアップを行う定番コマンドです。cpやscpと違い、差分だけを転送するため高速で、リモートサーバーとの同期にも対応しています。
この記事では、rsyncの基本操作から--dry-runによる事前確認、除外パターン、crontabとの連携まで、実務で必要な使い方を網羅します。

【この記事でわかること】
・rsyncがcp/scpより優れている理由(差分転送・同期の仕組み)
・基本的なローカル同期とSSH経由のリモートバックアップの方法
・--dry-runで事前確認してから安全に実行する手順
・--exclude/-deleteなど実務で使うオプションの使い方
・crontabと組み合わせた定期バックアップの自動化方法

続きを読む "rsyncコマンドの使い方|バックアップ・リモート同期・差分転送まで"

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の確認と停止(ファイアウォール)"

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のログを確認する方法|/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の書き方"

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でアクセス制限設定を行う"

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つの手順"

MySQLのユーザー一覧と権限を確認するコマンド|SELECT user・SHOW GRANTSの使い方

「MySQLのユーザーが増えてきて、誰がどのデータベースにアクセスできるのか把握できなくなってきた」
MySQLを運用していると、ユーザー管理が複雑になりがちです。

この記事では、MySQLのユーザー一覧を確認する SELECT user と、権限を確認する SHOW GRANTS の実践的な使い方を解説します。
ユーザーの作成・権限付与・削除まで、現場で使う操作をひととおりカバーします。

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

・MySQLのユーザー一覧は SELECT User, Host FROM mysql.user; で確認できる
・ユーザーの権限確認は SHOW GRANTS FOR 'ユーザー'@'ホスト'; を使う
・Host列の % は全ホスト許可を意味し、セキュリティ上の注意が必要
・MariaDB(RHEL/CentOS 7以降のデフォルト)でもSQL文は基本同じ

続きを読む "MySQLのユーザー一覧と権限を確認するコマンド|SELECT user・SHOW GRANTSの使い方"

CentOS7のホスト名設定|hostnamectlとnmcliコマンドの使い方

「CentOS7でホスト名を変更したいが、何のコマンドを使えばいいか分からない」
「nmcliとhostnamectlのどちらを使うべきか迷っている」

CentOS7以降では、ホスト名の管理方法がCentOS6から変わりました。hostnamectlnmcliを使うのが標準的なやり方です。

この記事では、CentOS7でのホスト名確認・変更方法を、hostnamectlとnmcliそれぞれのコマンドで解説します。

【この記事でわかること】
・CentOS7ではホスト名は /etc/hostname で管理される(CentOS6は /etc/sysconfig/network
hostnamectl set-hostname がCentOS7以降の標準的なホスト名変更コマンド
nmcli general hostname ホスト名 でも変更可能
・変更はOS再起動なしに即時反映される
hostnamectl でstatic/transient/prettyの3種類のホスト名を管理できる

続きを読む "CentOS7のホスト名設定|hostnamectlとnmcliコマンドの使い方"

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の主要変更点"

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コマンドでランダムなパスワードを生成する方法|文字数や文字種の指定も"

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が起動しなくなった」
\n「設定ファイルを変更するたびにドキドキしながら再起動している」
\n設定ミスは1文字でもApacheが起動不能になる深刻な問題です。本番環境なら即サービス停止です。
\n
\nこの記事では、Apacheの設定ファイルを本番投入前にチェックするhttpd -tコマンドとapachectl configtestコマンドの使い方を解説します。
\nエラーメッセージの読み方、設定変更のベストプラクティス、本番環境での安全な反映手順まで、現場で実践できる内容をまとめました。
\n\n
【この記事でわかること】
\n\n・httpd -t または apachectl configtest で設定ファイルの構文を事前チェックできる
\n・「Syntax OK」と表示されれば文法エラーなし、エラー時は行番号が表示される
\n・本番環境では configtest → graceful の手順で無停止で設定を反映する
\n・Include で読み込まれた全設定ファイル(conf.d/*.conf)もまとめてチェックされる
\n

続きを読む "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確認の実践例"

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コマンドでディレクトリを圧縮(アーカイブ)できると、サーバーの引っ越しやバックアップで、ディレクトリを丸ごと圧縮して保存することができるようになります。運用保守の現場では、数十万個のファイルがあるディレクトリを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パッケージが最新バージョンに更新されているか確認したい」

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

グループを削除する

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

特定のパーミッションのファイルを検索して、パーミッションを変更する

「パーミッションを一括で変更したいが、対象ファイルを間違えて適用してしまわないか心配」

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のファイル内テキストを大文字・小文字変換する方法|使い方と応用例"

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してからディスクを取り出す(アンマウントしないとデータ破損の恐れ)

CD-ROMのマウントとは

Linuxのファイルシステムは、すべてのストレージデバイスを単一のディレクトリツリーとして扱います。CD-ROMを使用するには、mount コマンドでCD-ROMのデバイスファイルをディレクトリ(マウントポイント)に「接続」する必要があります。

マウントの手順

1. マウントポイントを作成する

マウント先のディレクトリが存在しない場合は、先に作成します。

[root@Tiger ~]# mkdir /mnt/cdrom

既に /mnt/cdrom が存在する場合は、このコマンドは不要です。

2. CD-ROMをマウントする

# rootユーザーでマウントを実行する(一般ユーザーはsu -で切り替え) [pakira@Tiger ~]$ su - パスワード: [root@Tiger ~]# mount /dev/cdrom /mnt/cdrom

3. CD-ROMの内容を確認する

[root@Tiger ~]# cd /mnt/cdrom [root@Tiger cdrom]# ls -l 合計 82 drwxr-xr-x 2 root root 61440 4月 30 09:29 2010 CentOS -rw-r--r-- 8 root root 212 6月 15 07:32 2008 EULA -rw-r--r-- 8 root root 18009 6月 15 07:32 2008 GPL -rw-r--r-- 8 root root 1512 6月 15 07:32 2008 RPM-GPG-KEY-beta -r--r--r-- 1 root root 1098 4月 30 09:34 2010 TRANS.TBL

マウントを解除する(アンマウント)

CD-ROMの使用が終わったら、必ずアンマウントしてからディスクを取り出してください。

# マウントポイントを指定してアンマウントする [root@Tiger ~]# umount /mnt/cdrom # またはデバイスファイルを指定してアンマウントする [root@Tiger ~]# umount /dev/cdrom

注意: CD-ROMのディレクトリ(/mnt/cdrom)に移動している状態ではアンマウントできません。「cd」コマンドで別のディレクトリに移動してからアンマウントしてください。

応用・マウント時の追加オプション

ファイルシステムタイプを明示指定する

一般的なCD-ROMのファイルシステムは iso9660 です。自動検出で問題ない場合がほとんどですが、明示的に指定することもできます。

# ファイルシステムタイプを明示的に指定する [root@Tiger ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom

現在のマウント状況を確認する

# マウント中のデバイスを一覧表示する [root@Tiger ~]# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/sda1 xfs 50G 15G 36G 30% / /dev/cdrom iso9660 700M 700M 0 100% /mnt/cdrom

トラブルシュート

「mount: block device /dev/cdrom is write-protected, mounting read-only」が表示される場合

CD-ROMは読み取り専用メディアのため、このメッセージが表示されますが正常です。書き込みができないだけで、読み取りは問題なく行えます。

「device is busy」が表示されてアンマウントできない場合

CD-ROMのディレクトリをカレントディレクトリにしているプロセスが存在します。cd / などで別のディレクトリに移動してから再試行してください。

# lsofでCD-ROMを使っているプロセスを確認する [root@Tiger ~]# lsof /mnt/cdrom

本記事のまとめ

mount /dev/cdrom /mnt/cdrom:CD-ROMをマウントする(root権限が必要)
・マウントポイント(/mnt/cdrom)は事前に mkdir で作成しておく
umount /mnt/cdrom:アンマウントする(CD-ROMのディレクトリから出てから実行)
df -hT でマウント状況を確認できる

続きを読む "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のシステム稼働時間とロードアベレージを確認する方法"

nmapコマンドでLinuxのポートスキャンを実施する方法|TCP/UDPスキャンとオプション解説

「サーバーに余分なポートが開いていないか確認したい」「ファイアウォール設定が正しく効いているか外部から検証したい」----こういったセキュリティ確認に使うのが nmap コマンドです。

nmapは対象ホストの開いているポートを外部ネットワークから確認するためのポートスキャンツールです。

【この記事でわかること】
・nmapコマンドで対象ホストの開いているポートを外部から確認できる
・-pオプションでスキャンするポート範囲を指定できる(例:-p 1-1024)
・-sTでTCPスキャン、-sUでUDPスキャンを切り替えられる
・自分が管理するサーバーのみにスキャンを実施すること(無断スキャンは禁止)

続きを読む "nmapコマンドでLinuxのポートスキャンを実施する方法|TCP/UDPスキャンとオプション解説"

/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ヘッダーの仕組みと活用例"

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デバイス情報を確認する方法|ホストアダプタの接続状況を調べる"

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 の両方を確認するのが鉄則

ログイン履歴が保存されるファイルの仕組み

Linuxのログイン情報は複数のバイナリファイルに記録されています。
ファイル 内容 確認コマンド
/var/log/wtmp ログイン・ログアウト・リブートの履歴 last
/var/log/btmp ログイン失敗の履歴 lastb
/var/run/utmp 現在ログイン中のユーザー情報 who / w
/var/log/lastlog 各ユーザーの最終ログイン時刻 lastlog
これらはすべてバイナリ形式のため、catlessでは文字化けした内容しか表示されません。必ず専用コマンドで読みましょう。

lastコマンドの基本的な使い方

1. lastの基本構文とオプション

# 書式 last [オプション] [ユーザー名] [端末名] # 主なオプション # -n N 最新N件のみ表示(例: -n 20) # -F 日時を完全な形式で表示(年・秒まで表示) # -i ホスト名の代わりにIPアドレスで表示 # -d IPアドレスをホスト名に逆引きして表示 # -f FILE 読み込むwtmpファイルを指定(デフォルトは/var/log/wtmp) # -R ホスト名フィールドを非表示にする # -x シャットダウン・ランレベル変更も表示する

2. 全ユーザーのログイン履歴を確認する

[root@Tiger ~]# last pakira pts/0 192.168.0.162 Wed Oct 10 12:21 still logged in reboot system boot 2.6.32-279.el6.i Wed Oct 10 12:20 - 12:37 (00:17) root tty1 Fri Aug 24 13:45 - down (00:00) pakira ftpd1456 192.168.0.162 Fri Aug 24 13:43 - 13:44 (00:01) pakira ftpd1455 192.168.0.162 Fri Aug 24 13:43 - 13:44 (00:01) pakira ftpd1446 192.168.0.162 Fri Aug 24 13:42 - down (00:03) wtmp begins Wed Oct 10 12:20:41 2012

出力の見方:
・1列目:ユーザー名(rebootはシステム再起動)
・2列目:端末名(pts/0=SSH、tty1=コンソール、ftpdXXX=FTP)
・3列目:接続元IPアドレスまたはホスト名
・4列目以降:ログイン日時・ログアウト日時・滞在時間
・「still logged in」は現在もセッションが続いていることを意味します

3. 特定ユーザーのログイン履歴を確認する

# 特定ユーザー(pakira)の履歴だけを表示します [root@Tiger ~]# last pakira pakira pts/0 192.168.0.162 Wed Oct 10 12:21 still logged in pakira ftpd1456 192.168.0.162 Fri Aug 24 13:43 - 13:44 (00:01) pakira ftpd1455 192.168.0.162 Fri Aug 24 13:43 - 13:44 (00:01) pakira ftpd1446 192.168.0.162 Fri Aug 24 13:42 - down (00:03) pakira pts/0 192.168.0.162 Fri Aug 24 13:20 - down (00:15) pakira pts/0 192.168.0.162 Fri Aug 24 12:35 - 13:03 (00:28)

4. 最新件数を指定して表示する

# 最新20件のみ表示します # last -n 20 # または省略形 # last -20 [root@server1 ~]# last -20 pakira pts/1 10.0.1.52 Tue Apr 7 09:15 still logged in root pts/0 10.0.1.10 Tue Apr 7 08:00 - 08:45 (00:45) pakira pts/0 10.0.1.52 Mon Apr 6 14:30 - 17:00 (02:30)

5. IPアドレスと完全な日時で表示する

不正アクセスの調査では、接続元IPアドレスと正確な日時の両方が重要です。

# -F: 秒まで含む完全な日時、-i: IPアドレスで表示 [root@server1 ~]# last -Fi pakira pts/1 10.0.1.52 Tue Apr 7 09:15:32 2026 still logged in root pts/0 10.0.1.10 Tue Apr 7 08:00:11 2026 - Tue Apr 7 08:45:30 2026 (00:45) reboot system boot Mon Apr 6 23:30:01 2026 - Tue Apr 7 09:20:00 2026 (09:49)

6. リブート履歴を確認する

# rebootエントリだけを表示します [root@server1 ~]# last reboot reboot system boot 5.14.0-427.13.1. Mon Apr 6 23:30 still running reboot system boot 5.14.0-427.13.1. Sun Apr 5 02:15 - 23:30 (21:15) reboot system boot 5.14.0-427.13.1. Fri Apr 3 22:00 - 02:12 (04:12) wtmp begins Mon Mar 11 00:00:01 2026

予期しない時刻のリブートが記録されていたら、サーバーの異常終了(OOMキラー・電源断等)を疑いましょう。

lastbコマンドでログイン失敗履歴を確認する

lastbコマンドは、ログイン失敗(パスワード間違いや存在しないユーザーによるアクセス試行)の履歴を表示します。
参照ファイルは /var/log/btmp です。

1. lastbの基本的な使い方

# ログイン失敗履歴を表示します(root権限が必要) [root@server1 ~]# lastb admin ssh:notty 103.92.32.11 Tue Apr 7 09:10:55 2026 - Tue Apr 7 09:10:55 2026 (00:00) root ssh:notty 103.92.32.11 Tue Apr 7 09:10:52 2026 - Tue Apr 7 09:10:52 2026 (00:00) test ssh:notty 185.234.218.45 Tue Apr 7 08:55:30 2026 - Tue Apr 7 08:55:30 2026 (00:00) ubuntu ssh:notty 185.234.218.45 Tue Apr 7 08:55:28 2026 - Tue Apr 7 08:55:28 2026 (00:00) btmp begins Sun Apr 6 00:00:01 2026

複数の国外IPから短時間に大量のアクセス試行が記録されている場合、ブルートフォース攻撃の可能性があります。
注意: lastbは/var/log/btmpが存在しない場合は「lastb: /var/log/btmp: No such file or directory」とエラーが出ます。btmpファイルがないサーバーでは失敗ログが記録されていない状態です。

2. lastbで接続元IPをカウントする

攻撃元IPを特定して対策を講じる場合に使います。

# 接続元IPアドレスの試行回数を多い順に表示します [root@server1 ~]# lastb -i | awk '{print $3}' | sort | uniq -c | sort -rn | head -10 542 103.92.32.11 218 185.234.218.45 87 91.109.25.150 43 45.142.212.200

特定のIPからの試行が数百件に及ぶ場合、firewall-cmdやiptablesでそのIPをブロックすることを検討してください。

応用・セキュリティ監査での実務活用

1. 古いwtmpファイルを指定して確認する

wtmpファイルはローテーションされ、古いものは wtmp.1 や wtmp-20260101 などの名前で保存されます。

# ローテーション済みのwtmpを確認します [root@server1 ~]# ls /var/log/wtmp* /var/log/wtmp /var/log/wtmp-20260401 # 古いwtmpファイルを -f で指定して確認します [root@server1 ~]# last -f /var/log/wtmp-20260401 | head -10

2. lastlogコマンドで最終ログイン時刻を確認する

各ユーザーの最終ログイン時刻一覧を確認するには lastlog コマンドを使います。

# 全ユーザーの最終ログイン時刻を表示します [root@server1 ~]# lastlog Username Port From Latest root pts/0 10.0.1.10 Tue Apr 7 08:00:11 +0900 2026 bin **Never logged in** daemon **Never logged in** pakira pts/1 10.0.1.52 Tue Apr 7 09:15:32 +0900 2026 # 特定ユーザーだけ確認します [root@server1 ~]# lastlog -u pakira Username Port From Latest pakira pts/1 10.0.1.52 Tue Apr 7 09:15:32 +0900 2026

「Never logged in」のシステムアカウントが突然ログイン履歴を持っていたら、権限昇格攻撃の可能性があります。定期的に確認する習慣をつけてください。

3. /var/log/secureと組み合わせた不正アクセス調査

実務での不正アクセス調査では、lastbだけでなく/var/log/secureも同時に確認します(RHEL系)。

# SSHログイン失敗を /var/log/secure で確認します(RHEL系) [root@server1 ~]# grep "Failed password" /var/log/secure | tail -10 Apr 7 09:10:52 server1 sshd[12345]: Failed password for invalid user admin from 103.92.32.11 port 52341 ssh2 Apr 7 09:10:55 server1 sshd[12346]: Failed password for root from 103.92.32.11 port 52345 ssh2 # Ubuntu/Debian系は /var/log/auth.log を確認します $ grep "Failed password" /var/log/auth.log | tail -10 # 特定IPからの試行数をカウントします [root@server1 ~]# grep "Failed password" /var/log/secure | grep "103.92.32.11" | wc -l 542

トラブルシュート・よくあるエラー

「/var/log/wtmp: No such file or directory」が出た場合

wtmpファイルが存在しない、または消えてしまっています。

# wtmpファイルが存在するか確認します $ ls -la /var/log/wtmp ls: cannot access '/var/log/wtmp': No such file or directory # 空のwtmpファイルを作成します(これ以降のログが記録されます) $ sudo touch /var/log/wtmp $ sudo chmod 664 /var/log/wtmp $ sudo chown root:utmp /var/log/wtmp

wtmpは意図的に削除されている場合(不正アクセスで証拠隠滅)もあります。wtmpが突然なくなっていたら、セキュリティ侵害の兆候として調査してください。

「lastb: /var/log/btmp: No such file or directory」が出た場合

# btmpファイルを作成します $ sudo touch /var/log/btmp $ sudo chmod 600 /var/log/btmp $ sudo chown root:utmp /var/log/btmp

lastの出力が多すぎて確認しにくい場合

# 件数を絞り込んで確認します $ last -n 50 # grepで特定の接続元IPを絞り込みます $ last -i | grep "10.0.1" # 特定の日時以降のログインを確認します(-t オプションはGNU拡張) $ last --since 2026-04-01 # less でページング表示します $ last | less

本記事のまとめ

Linuxのログイン履歴はバイナリファイルに記録されているため、専用コマンドで確認します。
やりたいこと コマンド
ログイン履歴を確認する last
特定ユーザーの履歴を確認する last ユーザー名
最新N件のみ表示する last -n N
IPアドレスと完全な日時で表示する last -Fi
リブート履歴を確認する last reboot
ログイン失敗履歴を確認する lastb
各ユーザーの最終ログイン時刻を確認する lastlog
古いwtmpファイルを読む last -f /var/log/wtmp-20260401
セキュリティ監査では「lastでログイン履歴」「lastbで失敗履歴」「/var/log/secureで詳細ログ」の3点セットで調査するのが現場の鉄則です。

Linuxサーバーのセキュリティ管理を体系的に学びたい方へ

lastコマンドによるログイン履歴の確認は、サーバーセキュリティ管理の基本の一つです。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、「Linuxサーバー構築入門マニュアル(図解60P)」を完全無料でプレゼントしています。

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

続きを読む "lastコマンドでLinuxのログイン履歴を確認する方法|lastbで失敗ログインとwtmpの見方も"

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でログをリアルタイム監視する方法|journalctl -fとgrepを組み合わせた実践的な使い方

「ログファイルをリアルタイムで監視したいけど、どうやって確認すればいいのか分からない」

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)の両方で解説します。
【この記事でわかること】
・systemctl start/stop/restart rsyslog でCentOS 7以降のrsyslogを起動・停止・再起動できる
・systemctl status rsyslog でrsyslogの現在の稼働状態を確認できる
・systemctl enable rsyslog でOS起動時のrsyslog自動起動を設定できる
・CentOS 6以前では /etc/init.d/rsyslog start/stop/condrestart を使う

続きを読む "rsyslogを起動、停止するには"

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アドレスを固定するには、設定ファイルを直接編集する必要があります。

この記事では、CentOS / RHEL系Linuxでの恒久的なIPアドレス設定方法を解説します。
CentOS 6以前の ifcfg ファイル編集から、RHEL 7以降の nmcli による設定まで、現場で使える手順を紹介します。
【この記事でわかること】
・/etc/sysconfig/network-scripts/ifcfg-eth0 を編集して再起動後も有効なIPアドレスを設定できる(CentOS 6以前)
・BOOTPROTO="static" と IPADDR= を設定ファイルに記述することで静的IPを固定できる
・nmcli connection modify コマンドでRHEL 7以降の静的IP設定が可能(推奨)
・設定変更後は service network restart(旧環境)または nmcli connection up(新環境)で反映できる

続きを読む "設定ファイルでIPアドレスを設定するには"

コマンドで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の手順"

サービスのポート番号を確認する

「httpsは443番と聞いたが、他のサービスのポート番号はどこで確認できるのか」
Linuxで動いているサービスのポート番号を一覧で確認したいときは、/etc/services ファイルを参照します。

この記事では、/etc/servicesの見方と、実際に使用中のポートを確認する ss コマンド・netstat コマンドの使い方を解説します。
【この記事でわかること】
・/etc/services でポート番号の定義を確認する
・実際に使用中のポートを確認する
・主要サービスのポート番号一覧

続きを読む "サービスのポート番号を確認する"

CentOS6の起動時に詳細情報を表示する

「CentOS 6の起動時にスプラッシュ画面が表示されるが、詳細なブートメッセージを確認したい」
そんなときは、起動中に特定のキーを押すだけで詳細情報に切り替えられます。

この記事では、CentOS 6の起動時に詳細情報(ブートメッセージ)を表示する方法と、grub.confで恒久的に変更する手順を解説します。
【この記事でわかること】
・CentOS6でrhgbとquietを削除するとブート時の詳細ログが表示される
・/boot/grub/grub.confのkernel行のオプションを編集して設定する
・詳細モードにするとサービス起動状態をOK/FAILEDで確認できる

続きを読む "CentOS6の起動時に詳細情報を表示する"

Linuxをレスキューモードで起動する

「設定ファイルを書き間違えてLinuxが起動しなくなった……」
「パスワードを忘れてログインできなくなった……」

そんなときに使うのが レスキューモード です。
レスキューモードで起動すれば、通常は起動できないシステムにもアクセスして設定ファイルの修正やパスワードリセットが行えます。

この記事では、CentOS 6のレスキューモードの起動手順を画像つきで解説します。
【この記事でわかること】
・レスキューモードはCentOSインストールDVDのbootメニューから起動できる
・chroot /mnt/sysimageでインストール済みシステムのコマンドを実行できる
・パスワードリセットや設定ファイル修正などの復旧作業が可能

続きを読む "Linuxをレスキューモードで起動する"

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コマンドの -qR オプションを使えば、パッケージが必要とする依存関係の一覧を素早く確認できます。

この記事では、rpm -qR の使い方から、依存パッケージの調査・解決まで、現場で役立つ手順を解説します。
【この記事でわかること】
・rpm -qR パッケージ名 でインストール済みパッケージが必要とする依存ライブラリを確認できる
・rpm -qRp パッケージ名.rpm で未インストールのRPMファイルの依存関係も確認できる
・依存パッケージが不足している場合は yum install または dnf install で一括解決できる
・依存関係エラーの原因特定には rpm -qR の出力と yum/dnf の補完を組み合わせるのが定番

続きを読む "依存パッケージを表示する"

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対応も

===== TITLE ===== fdiskコマンドでパーティションを管理する方法|lsblkでの確認やGPT対応も ===== DESCRIPTION (entry_text) ===== 「ディスクのパーティション構成を確認したいけど、どうやればいいの?」
「fdiskを使ってみたけど、GPTには対応していないって表示される」
「2TB以上のディスクはfdiskで扱えないの?」
サーバーの構築やディスク増設で、パーティションの確認・操作が必要になる場面は少なくありません。

この記事では、fdisk コマンドを中心に、パーティション管理の実践的な手順を解説します。
lsblkblkid によるディスク情報の確認から、fdisk の対話モードでの操作、GPTディスクに対応した gdiskparted の使い分け、トラブルシュートまで、現場で必要な知識をまとめました。RHEL 9 / Rocky Linux 9で動作確認済みです。

この記事のポイント

・fdisk -l でディスクとパーティション情報を一覧確認できる
・fdiskの操作はwを押すまで書き込まれない(途中でqで取り消し可能)
・2TB以上のディスクにはfdiskではなくpartedまたはgdiskを使う
・パーティション作成後はmkfsでフォーマットしてからマウントする

===== TEXT_MORE (entry_text_more) =====

続きを読む "fdiskコマンドでパーティションを管理する方法|lsblkでの確認やGPT対応も"

パーティションテーブルを表示する(fdisk -l)

「このサーバーのディスクはどのようにパーティション分割されているのか確認したい」「新しいディスクを追加したが、どのデバイス名で認識されているか知りたい」という場面でよく使われるのがfdisk -lだ。

fdiskコマンドの-lオプションを使うと、システムに接続されているすべてのディスクのパーティションテーブル情報を表示できる。root権限が必要だが、確認だけなら破壊的な操作は一切発生しない安全なコマンドだ。

本記事ではfdisk -lの使い方と、出力の読み方、-uオプションとの組み合わせを解説する。

【この記事でわかること】
・fdisk -l の基本的な使い方と出力の読み方
・-u オプションでセクター単位表示に切り替える方法
・特定のデバイスのパーティション情報を確認する方法
・lsblk との使い分け

続きを読む "パーティションテーブルを表示する(fdisk -l)"

システムを指定時間後に終了する(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 -9)

「killコマンドを実行したのにプロセスが終了しない」「応答しなくなったプロセスをどうしても止めたい」という状況に直面したことはないだろうか。

通常のkillコマンドはSIGTERMシグナル(番号15)を送り、プロセスに正常終了を促す。しかしプロセスがこのシグナルを無視している場合は終了しない。そのような場合に使うのがkill -9だ。シグナル番号9(SIGKILL)はプロセスが無視できない強制終了シグナルで、即座にプロセスを停止させる。

本記事ではkill -9の仕組みと使い方、注意点を体系的に解説する。

【この記事でわかること】
・SIGKILL(kill -9)の仕組みと通常の kill との違い
・PID を調べて強制終了するまでの手順
・kill -9 のリスクと使うべきタイミング
・シグナル番号とシグナル名の使い分け

続きを読む "プロセスを強制終了する(kill -9)"

実行中のプロセスを終了する(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 -e または ps -A で全ユーザーの全プロセスを表示できる
・ps ax でも全プロセスを表示でき、BSD スタイルのオプション指定方法
・ps aux で全プロセスをユーザー名・CPU・メモリ使用率付きで表示できる
・grep と組み合わせて特定のプロセスだけを素早く検索できる

続きを読む "すべてのプロセスを表示する"

ユーザ名を含めて実行プロセスを表示する

このページでは 実行ユーザー別にプロセスを絞り込んで表示できますか? の操作方法について解説します。

【この記事でわかること】
・ps -u ユーザー名 で指定したユーザーが実行しているプロセスのみを表示できる
・ps au または ps aux でユーザー名列を含めた全プロセスを一覧表示できる
・USER列でプロセスの実行ユーザーを確認できる
・root権限で動いているプロセスを把握するとセキュリティ監査に役立つ

続きを読む "ユーザ名を含めて実行プロセスを表示する"

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

このページでは 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・メモリの負荷を確認する方法|出力の読み方と高負荷の切り分け

===== TITLE ===== vmstatコマンドでCPU・メモリの負荷を確認する方法|出力の読み方と高負荷の切り分け ===== DESCRIPTION (entry_text) ===== 「サーバーが重いけど、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 / Ubuntu 24.04 LTSで動作確認済み

この記事のポイント

・vmstat 1 5 でCPU・メモリ・I/Oの状態をリアルタイム監視できる
・出力6カテゴリの読み方と高負荷の判断基準がわかる
・高負荷時にCPU・メモリ・ディスクI/Oのどれが原因か切り分けられる
・vmstatの弱点(過去データ・ネットワーク)をsarで補完する方法がわかる

===== TEXT_MORE (entry_text_more) =====

続きを読む "vmstatコマンドでCPU・メモリの負荷を確認する方法|出力の読み方と高負荷の切り分け"

CPUの情報を表示する

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

本記事のまとめ

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

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

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

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

デフォルトゲートウェイ(ルータ)を設定する

Linuxはインストール時にデフォルトゲートウェイ(ルータ)の設定を行いますが、 ネットワークの構成変更に伴い、デフォルトゲートウェイを変更する必要が 生じる場合があります。 また、インストール時に設定したデフォルトゲートウェイが 実は誤りだった場合も正しいものに変更する必要があります。 私が主催してる「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コマンドでサーバーの死活確認をする方法|回数指定・タイムアウト・トラブルシュートまで

「サーバーにアクセスできない」「ネットワークがつながらない」----こんな障害に直面したとき、真っ先に打つコマンドが ping です。

しかし、ただ ping を打って「応答が返ってこない」で終わっていませんか? 応答がない原因は、相手サーバーのダウン、経路の問題、ファイアウォールによるICMPブロックなど多岐にわたります。原因を切り分けられなければ、復旧に無駄な時間を費やすことになります。

この記事では、pingコマンドの基本から、回数指定・タイムアウト・パケットサイズ変更といった実践オプション、さらに「応答がない時にどう原因を切り分けるか」というトラブルシュートの手順まで、現場目線で解説します。

【この記事でわかること】
・pingコマンドの基本的な使い方とWindowsとの違い
・回数指定・送信間隔・タイムアウトなど実践的なオプション
・MTUサイズ確認による経路の詳細診断方法
・応答がないときのネットワーク障害の体系的な切り分け手順
・エラーメッセージの意味とファイアウォール・ICMPブロックへの対処

続きを読む "pingコマンドでサーバーの死活確認をする方法|回数指定・タイムアウト・トラブルシュートまで"

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パスワードを忘れた場合の対処について"

FTPコマンドでファイルの途中からダウンロードする

ファイルのダウンロード途中で、何らかの原因によりダウンロードが 中断してしまった場合、サイズが大きいファイルをダウンロードしていたら 最初からやり直すのは、時間のロスが大きくなってしまいます。 そんな時、中断したダウンロードの途中から再開するコマンドとして FTPコマンドのregetコマンドを使用します。
【この記事でわかること】
・ftp コマンドの REST コマンドでダウンロード再開位置(バイト数)を指定できる
・GET コマンドに続けて REST で設定したオフセットからダウンロードが再開される
・ダウンロード済みバイト数を ls -l などで確認してからオフセット値を設定する
・途中からダウンロードできるのはサーバー側が REST をサポートしている場合のみ

続きを読む "FTPコマンドでファイルの途中からダウンロードする"

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アドレスからドメイン名を調べるには"

ポートを使用しているプロセスを確認する

「ポートが開いているのは分かったが、どのプロセスが使っているか特定できない」
「80番ポートを使っているのが Apache なのか、別のプロセスなのか確認したい」

Linuxサーバーのセキュリティチェックや障害調査で、ポートとプロセスの紐付けは必須の操作です。

この記事では、sslsoffuser を使ってポートを使用しているプロセスを特定する方法を解説します。
コマンドごとの特徴と、プロセス名の確認まで一通りまとめました。

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

・ss -tlnp でLISTEN中のポートとそのPIDを確認できる
・lsof -i :ポート番号 で特定ポートを使用しているプロセスを特定できる
・fuser -n tcp ポート番号 でポートのPIDを確認できる
・PIDからプロセス名を確認するには ps -p PID を使う

続きを読む "ポートを使用しているプロセスを確認する"

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.bz2ファイルの解凍・圧縮コマンド|tar.gzとの違いやオプション一覧

「tar.bz2 ファイルを解凍しようとしたが、コマンドがわからない」
「tar.gz との違いと、使い分けの基準を知りたい」

tar.bz2(tarball + bzip2圧縮)はtar.gzより高い圧縮率を持つアーカイブ形式で、
Linuxのソフトウェア配布パッケージによく使われています。

この記事では、tar コマンドを使ってtar.bz2形式のファイルを解凍・圧縮する方法を解説します。
tar.gzとの違い、オプションの使い分けまで順番にまとめました。

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

・tar xjf ファイル名.tar.bz2 でtar.bz2ファイルを解凍・展開できる
・tar czf で tar.gz 、tar cjf で tar.bz2 を作成できる(z/j の違いに注意)
・tar.bz2 は tar.gz より圧縮率が高いが処理速度は遅い
・-C ディレクトリ名 で展開先ディレクトリを指定できる

続きを読む "tar.bz2ファイルの解凍・圧縮コマンド|tar.gzとの違いやオプション一覧"

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形式で圧縮する"

lsコマンドの並び替え(ソート)方法|時間順・サイズ順など現場の必須オプション

「ログファイルが多すぎて、今日更新されたファイルがどれか分からない」
「ディスク容量を圧迫している巨大なファイルを探し出したい」
Linuxサーバーの運用保守で、毎日必ずと言っていいほど直面するシチュエーションです。

この記事では、ls コマンドを使ってファイルやディレクトリの一覧を並び替える(ソートする)方法を解説します。
単なるアルファベット順ではなく、現場のエンジニアが息をするように使っている「時間順」や「サイズ順」など、実務直結のオプションをまとめました。

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

・ls -lt で最終更新時刻の新しい順にファイルを並べ替えられる
・ls -lS でファイルサイズの大きい順に並べ替えられる
・ls -lr で逆順(古い順・小さい順)に並べ替えられる
・ls -ltu でアクセス時刻順、ls -ltc でステータス変更時刻順に並べ替えられる

続きを読む "lsコマンドの並び替え(ソート)方法|時間順・サイズ順など現場の必須オプション"

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コマンドでファイルのタイムスタンプを変更する方法|日時指定・作成日変更と新規ファイル作成

「ls -l で表示されるファイルの日時を変更したいのに、やり方がわからない」
「バックアップファイルのタイムスタンプを元のファイルに合わせたい」
「スクリプトでファイルを作成するとき、日付を意図的にずらしたい」

こんな場面で使うのが touch コマンドです。

この記事では、touchコマンドでファイルのタイムスタンプ(修正日時)を変更する方法を解説します。
基本的な -t オプションから、別ファイルに日時を合わせる -r オプション、文字列形式で指定できる -d オプション、新規ファイル作成への応用、よくあるエラーの対処法まで順番にまとめました。
【この記事でわかること】
・touch -t CCYYMMDDhhmm ファイル名 で任意の日時にタイムスタンプを変更できる
・touch -r 参照ファイル 対象ファイル で別ファイルに日時を揃えることができる
・touch ファイル名 だけで空ファイルの新規作成も可能
・他ユーザー所有ファイルへの変更は root権限(sudo)が必要になる

続きを読む "touchコマンドでファイルのタイムスタンプを変更する方法|日時指定・作成日変更と新規ファイル作成"

ファイルの内容を行番号付きで表示する

「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コマンドの違いと使い分け"

LinuxでIPアドレスを確認する方法|ip aの出力の見方とNIC設定の確認まで

「このサーバーの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設定の確認まで"

RPMパッケージの確認コマンドまとめ(一覧・バージョン・逆引きなど)

RPMパッケージの確認はLinuxサーバーを管理するうえでとても大切な作業の一つです。
「このサーバーにApacheは入ってる?バージョンは?」
「このファイルどのパッケージのもの?」など
サーバー管理や障害対応の現場では、こうした確認が日常的に発生します。

この記事では rpmコマンドを使ったパッケージ確認の全手順を、コマンド例とともに体系的に解説します。一覧表示から絞り込み、バージョン確認、ファイル逆引きまで、今日から使える内容です。

そもそもなぜ「rpm」コマンドで確認するのか

RHEL・AlmaLinux・Rocky Linux・Oracle Linuxなど、Red Hat系Linuxのパッケージ管理には RPM(Redhat Package Manager) が使われています。

普段のインストールや削除には依存関係を自動解決してくれる dnf(旧yum)コマンドを使うのが一般的です。しかし、「今システムに何が入っているかを確認する」用途ではrpmコマンドが今でも現場で重宝されます

rpmコマンドが活躍する具体的なシーン

・障害対応で「このパッケージのバージョンは?」と素早く確認したいとき
・セキュリティパッチの適用前後に、バージョンが正しく変わったか確認するとき
・新サーバーのセットアップ後に、必要なパッケージがすべて入っているかチェックするとき
・「このコマンドはどのパッケージに含まれているの?」と逆引きしたいとき

【この記事でわかること】
・rpm -qa でインストール済みパッケージを一覧表示する方法
・rpm -q パッケージ名 で特定パッケージのインストール確認とバージョン取得
・rpm -qf ファイルパス でファイルがどのパッケージに含まれるかを逆引きする方法
・rpm -qi で詳細情報(概要・バージョン・インストール日)を確認する方法
・rpm -ql でパッケージに含ませるファイル一覧を確認する方法

続きを読む "RPMパッケージの確認コマンドまとめ(一覧・バージョン・逆引きなど)"

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

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

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

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

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

ユーザーを作成する

「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」とだけ表示され停止してしまう"

wgetコマンドでファイルをダウンロードする方法|再開やプロキシ設定も

「wgetでファイルをダウンロードしたいけど、途中で止まってしまった。最初からやり直すしかない?」
「プロキシ環境でwgetが通らない」「SSL証明書のエラーで先に進めない」
Linuxサーバーの構築や運用では、パッケージのソースコードやログ解析ツールなど、Webからファイルをダウンロードする場面が頻繁にあります。

この記事では、RHEL 9.4 / Ubuntu 24.04 LTSで動作確認した上で、wget コマンドの実践的な使い方を解説します。基本的なダウンロードから、中断の再開(-c)、再帰ダウンロード、ミラーリング、プロキシ設定、認証付きサーバー(Basic認証・Cookie認証)、複数URLの一括取得、cron運用、トラブルシュートまでを20年以上サーバーを運用してきた経験に基づいてカバーしました。よく比較される curl との使い分けにも触れていますので、現場で迷わず使えるようになるはずです。

この記事のポイント

・wget URL の1行で大半のダウンロードは完結する
・wget -c で中断したDLを途中から再開できる
・wget -r -np や --mirror でサイトを丸ごとミラーリングできる
・curlとの使い分けは「ファイル取得=wget/API叩き=curl」が基本

続きを読む "wgetコマンドでファイルをダウンロードする方法|再開やプロキシ設定も"

passwdコマンドでLinuxのパスワードを変更する方法|ロック・有効期限の設定も

「Linuxでパスワードを変更したいが、passwdコマンドの使い方がよくわからない」
「rootで他のユーザーのパスワードを変更する方法を知りたい」

この記事では、passwd コマンドの基本的な使い方から、ロック・有効期限の設定まで実行例付きで解説します。
CentOS 7 / RHEL 9で動作確認済みです。

【この記事でわかること】
・passwdコマンドでLinuxユーザーのパスワードを変更する基本手順
・rootユーザーによる他ユーザーのパスワード強制変更の方法
・--lock / --unlock オプションでアカウントのロック・解除ができる
・--expire でパスワードの有効期限を即時切れにする運用方法

続きを読む "passwdコマンドでLinuxのパスワードを変更する方法|ロック・有効期限の設定も"

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の一括置換やファイル編集も

===== TITLE ===== sedコマンドで文字列を置換する方法|-iの一括置換やファイル編集も ===== DESCRIPTION (entry_text) ===== 「設定ファイルの中の文字列を一括で書き換えたいけど、viで1つずつ修正するのは時間がかかりすぎる」
「sedコマンドの書き方が複雑で、毎回ネットで調べてしまう」
サーバーの構築や設定変更で、設定ファイルの特定の文字列をまとめて置換したい場面は頻繁に発生します。
20年以上サーバーを運用してきた現場では、sedなしの設定変更作業は考えられないほど頻繁に使うコマンドです。

この記事では、テキストを加工する sed(セド)コマンド の実践的な使い方を解説します。
基本的な文字列置換から、ファイルを直接書き換える -i オプション、正規表現を使った高度な置換、findxargs との組み合わせによる複数ファイルの一括置換まで、実務で使える手順を実行例付きでまとめました。

この記事のポイント

・ sed 's/old/new/g' で行内の全マッチを一括置換できる
・ -i オプションでファイルを直接上書き保存できる(-i.bak でバックアップ付き)
・ 正規表現・後方参照を使えば設定値や日付形式の柔軟な置換が可能
・ find / xargs と組み合わせると複数ファイルの一括置換も安全に行える

===== TEXT_MORE (entry_text_more) =====

続きを読む "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コマンドでディスク容量を確認する方法|使用率の見方や容量不足の対処も

「サーバーのディスク容量が足りなくなっているかもしれないけど、どうやって確認すればいいの?」
「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コマンドでディスク容量を確認する方法|使用率の見方や容量不足の対処も"

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の使い分けも"

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コマンドでテキストを並び替える方法|数値ソートやフィールド指定も"

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秒登録