nginxコマンドの出力結果をパイプしてみた

354 Views

June 20, 21

スライド概要

詳細ブログ↓
https://zenn.dev/yuta28/articles/nginx-output-pipe

profile-image

フィンテック企業でインフラ運用改善を担当しているSREです。 ブログでまとめたLTスライドをアップロードします。

シェア

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

nginxコマンドの出力結果を パイプしてみた

2.

自己紹介 Name:ユータ Occupation:インフラエンジニア Twitter:@Y0u281 (オーでなくゼロです) ブログ:https://zenn.dev/yuta28 → 普段触るもの:AWS Ansible Linux Mint Twitter

3.

目次 ● 背景 ● 原因 ● やったこと ● まとめ

4.

背景 ● 運用しているメディアサーバーの棚卸し ○ ● Apacheかnginxか 出力結果を加工してバージョン情報だけ抽出 $ httpd -v Server version: Apache/2.2.34 (Unix) Server built: Nov 1 2017 18:47:16 $ httpd -v | head -n 1 | cut -f 3 -d " " Apache/2.2.34

5.

背景 ● nginxだとうまくいかない🤔 ● ファイルにも出力されない $ nginx -v nginx version: nginx/1.18.0 $ nginx -v > test.txt nginx version: nginx/1.18.0 $ cat test.txt $ $ nginx -v | head -n 1 | cut -f 3 -d " " nginx version: nginx/1.18.0

6.

原因 ファイルディスクリプタが違っていた!!

7.

ファイルディスクリプタについて ● ファイル操作に割り当てられる整数値 ● 以下が一般的 ● ○ 0:stdin(標準入力) ○ 1:sdout(標準出力) ○ 2:stderr(標準エラー出力 ) $ httpd -v | head -n 1 | cut -f 3 -d " " Apache/2.2.34 出力結果を渡すパイプはデフォルトでは標準出力のみ対応

8.

やったこと 書式 説明 コマンド1 | コマンド2 コマンド1 の「標準出力」をコマンド2 の「標準入力」に引き渡す コマンド1 2>&1 | コマンド2 コマンド1 の「標準出力」と「エラー出力」をコマンド2 の 標準入力に引き渡す 引用 Linux - ストリーム、パイプ、リダイレクトの使用 $ nginx -v 2>&1 | cut -f 3 -d " " nginx/1.18.0

9.

まとめ ● 標準出力 ● 標準エラー出力 それぞれ引き渡しが異なる なぜnginxは標準エラー出力? 🤔🤔🤔

10.

ありがとうございました 詳細は私のブログで ↓ nginxコマンドの出力内容をパイプし てみた