Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for YouYou YouYou
June 20, 2021

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

Avatar for YouYou

YouYou

June 20, 2021
Tweet

More Decks by YouYou

Other Decks in Programming

Transcript

  1. 背景 • 運用しているメディアサーバーの棚卸し ◦ 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
  2. 背景 • nginxだとうまくいかない🤔 • ファイルにも出力されない $ nginx -v nginx version:

    nginx/1.18.0 $ nginx -v | head -n 1 | cut -f 3 -d " " nginx version: nginx/1.18.0 $ nginx -v > test.txt nginx version: nginx/1.18.0 $ cat test.txt $
  3. ファイルディスクリプタについて • ファイル操作に割り当てられる整数値 • 以下が一般的 ◦ 0:stdin(標準入力) ◦ 1:sdout(標準出力) ◦

    2:stderr(標準エラー出力) • 出力結果を渡すパイプはデフォルトでは標準出力のみ対応 $ httpd -v | head -n 1 | cut -f 3 -d " " Apache/2.2.34
  4. やったこと $ nginx -v 2>&1 | cut -f 3 -d

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