@kyanny's blog

My thoughts, my life. Views/opinions are my own.

Vagrant の Shell Provisioner で wget のログが出過ぎる時は --progress オプションを指定する

wget(1) - Linux manual page

       When the output is not a TTY, the progress bar always falls
       back to "dot", even if --progress=bar was passed to Wget
       during invocation. This behaviour can be overridden and the
       "bar" output forced by using the "force" parameter as
       --progress=bar:force.

↓のような設定で、vagrant up でプロビジョニングしてる間は output is not a TTY に該当するので wget の --progress オプションの規定値が dot になり、ログが出過ぎる。それなりにサイズの大きいファイルをダウンロードすると顕著。

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/focal64"
  config.vm.provision "shell", inline: <<-SHELL
    wget https://dl.min.io/server/minio/release/darwin-amd64/minio
  SHELL
end
==> default: Running provisioner: shell...
    default: Running: inline script
    default: --2021-10-04 10:51:09--  https://dl.min.io/server/minio/release/darwin-amd64/minio
    default: Resolving dl.min.io (dl.min.io)... 178.128.69.202
    default: Connecting to dl.min.io (dl.min.io)|178.128.69.202|:443... connected.
    default: HTTP request sent, awaiting response... 200 OK
    default: Length: 100382272 (96M) [application/octet-stream]
    default: Saving to: ‘minio’
    default:
    default:      0K .......... .......... .......... .......... ..........  0%  233K 7m0s
    default:     50K .......... .......... .......... .......... ..........  0%  462K 5m16s
    default:    100K .......... .......... .......... .......... ..........  0% 19.4M 3m32s
    default:    150K .......... .......... .......... .......... ..........  0%  468K 3m31s
    default:    200K .......... .......... .......... .......... ..........  0% 3.77M 2m54s
    default:    250K .......... .......... .......... .......... ..........  0%  180M 2m25s
    default:    300K .......... .......... .......... .......... ..........  0%  291M 2m4s
    default:    350K .......... .......... .......... .......... ..........  0%  240K 2m39s
    default:    400K .......... .......... .......... .......... ..........  0%  288M 2m22s
    default:    450K .......... .......... .......... .......... ..........  0% 11.9M 2m8s
    default:    500K .......... .......... .......... .......... ..........  0% 95.8K 3m29s

(以下略)

full log 2,000 行以上ある

マニュアルにあるように --progress=bar:force オプションをつけると、シェルで wget を実行した時と同じコンパクトな表示になり、ログの行数も減る。

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/focal64"
  config.vm.provision "shell", inline: <<-SHELL
    wget --progress=bar:force https://dl.min.io/server/minio/release/darwin-amd64/minio
  SHELL
end
==> default: Running provisioner: shell...
    default: Running: inline script
    default: --2021-10-04 16:21:07--  https://dl.min.io/server/minio/release/darwin-amd64/minio
    default: Resolving dl.min.io (dl.min.io)... 178.128.69.202
    default: Connecting to dl.min.io (dl.min.io)|178.128.69.202|:443... connected.
    default: HTTP request sent, awaiting response... 200 OK
    default: Length: 100382272 (96M) [application/octet-stream]
    default: Saving to: ‘minio’
    default:
minio                13%[=>                  ]  12.48M   593KB/s    eta 2m 0s
minio                27%[====>               ]  25.99M   886KB/s    eta 99s
minio                37%[======>             ]  36.09M   406KB/s    eta 92s
minio                50%[=========>          ]  48.04M   619KB/s    eta 76s
minio                60%[===========>        ]  58.29M   538KB/s    eta 62s
minio                76%[==============>     ]  72.99M   639KB/s    eta 37s
minio                88%[================>   ]  84.88M   447KB/s    eta 17s
minio               100%[===================>]  95.73M   722KB/s    in 2m 29s
    default:
    default: 2021-10-04 16:23:37 (657 KB/s) - ‘minio’ saved [100382272/100382272]
    default:

full log CR (carriage return) が混じってるのか、テキストファイルで見ると cat で端末内で見るときより間延びしているが、それでも dot に比べるとだいぶ見やすい。