目次
はじめに
みなさま、teeコマンドを活用されてますでしょうか。
ワンライナーのfor文等でループ処理させる際、出力される処理結果をあとから確認しなおしたいことってあると思います。
そんな時に便利なのが、teeコマンドです。
環境
OS : AlmaLinux 8
teeバージョン : 8.30
使い方
使い方はいたってシンプルです。
実行する処理の後に、|(パイプ)でteeコマンドをつなげるだけです。
$ for TGT in {20230402..20230408}
> do
> echo "#======="
> echo "access.log.$TGT"
> head -n1 /var/www/vhosts/hogehoge/logs/access.log.$TGT
>
> done | tee result.log
実行すると、標準出力とresult.logに実行結果が出力されます。
$ for TGT in {20230402..20230408}
> do
> echo "#======="
> echo "access.log.$TGT"
> head -n1 /var/www/vhosts/hogehoge/logs/access.log.$TGT
>
> done | tee result.log
#=======
access.log.20230402
192.168.xxx.xxx - - [02/Apr/2023:05:17:59 +0900] "GET /testaccess02 HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0" 722
#=======
access.log.20230403
192.168.xxx.xxx - - [03/Apr/2023:05:19:11 +0900] "GET /testaccess03 HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0" 716
#=======
access.log.20230404
192.168.xxx.xxx - - [04/Apr/2023:05:19:47 +0900] "GET /testaccess04 HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0" 407
#=======
access.log.20230405
192.168.xxx.xxx - - [05/Apr/2023:05:20:22 +0900] "GET /testaccess05 HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0" 451
#=======
access.log.20230406
192.168.xxx.xxx - - [06/Apr/2023:05:22:22 +0900] "GET /testaccess06 HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0" 443
#=======
access.log.20230407
192.168.xxx.xxx - - [07/Apr/2023:05:23:18 +0900] "GET /testaccess07 HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0" 480
#=======
access.log.20230408
192.168.xxx.xxx - - [08/Apr/2023:05:23:39 +0900] "GET /testaccess08 HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0" 605
$
標準出力がresult.logにも出力されていますので、処理結果をあとから確認することができます。
再度処理を実行する際は、以前の内容が上書きされないよう、-a オプションを指定することで、追記させることもできます。tee -a result.log
まとめ
いかがでしたか?
数十行の出力なら、ターミナルを目視確認することもできますが、大量の出力を目視で確認するのは無理がありますので、私はteeコマンドを活用しています。