devops
A
信頼度ランク
| S | 公式ソース確認済み |
| A | 成功実績多数・失敗例少数 |
| B | 賛否両論 |
| C | 動作未確認・セキュリティリスク高 |
| Z | 個人所感 |
Linuxコマンドで覚えておきたいワンライナー5選
日常的なサーバー管理・開発作業で役立つLinuxワンライナーを5つ厳選。ポート調査・ログ監視・プロセス確認・curl計測・awk集計をすぐに使えるかたちで解説します。
一言結論
lsof・ss・curl -wとawk集計の4コマンドを身につけるだけで、ポート競合・パフォーマンス調査・API計測といった現場の定番問題を追加ツールなしで即解決できる。
1. ポートを使っているプロセスを調べる
# ポート 3000 を使っているプロセスを確認
lsof -i :3000
# または ss で(lsof より高速)
ss -tlnp | grep :3000
# 出力例:
# LISTEN 0 128 *:3000 *:* users:(("node",pid=1234,fd=23))
pid がわかったら kill 1234 で終了できる。「なぜかポートが空かない」問題の定番診断コマンド。
2. CPUとメモリを食っているプロセスを確認する
# CPU使用量の多い順にトップ10を表示
ps aux --sort=-%cpu | head -11
# メモリ使用量の多い順
ps aux --sort=-%mem | head -11
# リアルタイム更新(htop が入っていない場合)
watch -n 2 "ps aux --sort=-%cpu | head -11"
コンテナ内や最小構成のLinuxでは htop が入っていないことが多い。ps はどこでも使える。
3. エラーログをリアルタイムで監視する
# ログを追いながらエラーだけを抽出
tail -f /var/log/app.log | grep --line-buffered "ERROR\|WARN"
# 複数ファイルを同時に監視
tail -f /var/log/nginx/error.log /var/log/app.log
# タイムスタンプ付きで表示(ログに含まれていない場合)
tail -f app.log | while read line; do echo "$(date '+%H:%M:%S') $line"; done
--line-buffered を付けないと grep がバッファリングして出力が遅れる。
4. curl でAPIのレスポンスタイムを計測する
curl -o /dev/null -s -w \
"DNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" \
https://api.example.com/health
DNS: 0.003s
Connect: 0.012s
TTFB: 0.087s ← サーバーが応答を開始するまで
Total: 0.092s
- TTFB が長い → サーバー処理が遅い
- Connect が長い → ネットワーク遅延またはTLS handshake
- DNS が長い → DNSリゾルバの問題
5. Nginxアクセスログでステータスコードを集計する
# ステータスコード別の集計
awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -rn
# 出力例:
# 9842 200
# 231 304
# 87 404
# 12 500
# エンドポイント別に集計(上位10件)
awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10
# IPアドレス別のアクセス数(DDoS調査など)
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20
$9 はステータスコード列、$7 はURIパス列(Nginxのデフォルトログ形式の場合)。