Linux
 Computer >> コンピューター >  >> トラブルシューティング >> Linux

wgetの-bフラグでバックグラウンドダウンロードの状態を確認する方法

コマンドの末尾にアンパサンド(&)を付けてwgetをバックグラウンドで実行することも可能ですが、実用面では-bフラグを付けてコマンドを実行する方が便利です。例えば、DebianのCDインストールイメージをダウンロードしたいとしましょう。その場合、「wget -b https://cdimage.debian.org/mirror/cdimage/archive/8.7.1/i386/list-cd/debian-8.7.1-i386-CD-1.list.gz」のように実行すると、プロセスがバックグラウンドで継続していることが即座に通知され、さらにwgetがどのバックグラウンドプロセスで動作しているかを示すプロセスID(PID)も表示されます。

バックグラウンドで実行中のwgetプロセスは、それ以上の情報を表示してくれませんが、だからといってステータスを確認できないわけではありません。wgetのログファイルをテキストエディタで開けば、簡単に状況を把握できます。この仕組みは大型メインフレームサーバーでの運用を想定して設計されているため、見た目を装飾するようなオプションは用意されていません。とはいえ、必要な情報を得るために必要なのは、たった1つのファイルを開くだけという非常にシンプルな手順です。

wgetのバックグラウンドダウンロード状況を表示する

「wget -b」に続けてダウンロードしたいリソースのアドレスを指定して実行したと仮定しましょう。ここではDebian LXDEのインストールISOを例にしましたが、理論上はオンライン上のほぼすべてのリソースに利用できます。wgetのプロセスは、アンパサンドでバックグラウンドに送ったプロセスとは異なり、フォアグラウンドへ戻すことができません。実際、この方法でwgetを起動した直後にjobsコマンドを実行しても、bashシェルにはバックグラウンドプロセスとして登録されていないことがわかります。ただし、killコマンドにプロセスIDを続けて実行すれば、wgetプロセスを強制終了することは可能です。もちろん、その場合はファイルが正しくダウンロードされません。

ダウンロード中のファイルをグラフィカルなファイルマネージャーで開き、ファイルサイズが増えていく様子を目視で確認する方法もあります。しかし、wgetはデフォルトでログファイルを作成し、常時書き込みを行っています。ログファイル名は「wget-log」で、同じディレクトリに複数のファイルをこの方法でダウンロードしている場合や、古いログファイルが残っている場合には、番号が付け加えられます。これにより、wgetが自身のログファイルを上書きしてしまうのを防いでいます。これらのファイルは、グラフィカルなファイルマネージャーでダブルクリックして開いてもよいですし、CLIプロンプトからlessやmoreコマンドで読み込むこともできます。現在のダウンロード状況は、常にファイルの最終行に表示されます。

注意すべきは、wgetがこれらのファイルに常時書き込みを行っているという点です。つまり、最新の変化を確認するには、グラフィカルなファイルマネージャーで何度も開き直すか、CLIプロンプトでcat、less、moreコマンドを繰り返し実行する必要があります。wgetコマンドの起動時に「-o」に続けてファイル名を指定すれば、カスタムのログファイルを指定することもできますが、そうするユーザーはごく少数です。また、「-a」フラグに続けてログファイル名を指定すると、既存のファイルにメッセージを追記することもできます。ただし、2つのバックグラウンドwgetプロセスを同じログに追記させるのは避けてください。2つのプロセスが交互に行を書き込もうとするため、情報が混在した読みにくいファイルになってしまう恐れがあります。

これらのフラグは、wgetを使用する際の他のフラグとも自由に組み合わせられますが、wgetは常に-vフラグ(詳細出力)がデフォルトであることを覚えておきましょう。これはほとんどのユーザーが慣れ親しんでいる出力形式です。「-b」と「-q」(クワイエット出力)を組み合わせると、wgetが何をしているのかまったく把握できない状態になりかねません。技術的には「-b」と「-d」を組み合わせることも可能ですが、これはデバッグレベルの出力を有効にし、ソフトウェアが裏側で何をしているかを詳しく表示するだけです。この追加出力は通常、wgetのソースコード編集に取り組む開発者にしか役立たず、大多数のユーザーは無視して問題ありません。ダウンロードスクリプトを作成するプログラマーであっても、この情報は基本的に不要で、多くの場合、単なるノイズになるだけです。

なお、~/Downloads以外のディレクトリでwgetを実行した場合は、ログファイルもそのディレクトリに作成される点に注意してください。

著者について

wgetの-bフラグでバックグラウンドダウンロードの状態を確認する方法

Kevin Arrows(ケビン・アローズ)

ケビン・アローズは、10年以上の業界経験を持つテクノロジースペシャリストです。Microsoft Certified Technology Specialist(MCTS)認定資格を保有し、最新のテクノロジートレンドを追いかけることに深い情熱を注いでいます。ソフトウェア開発、サイバーセキュリティ、クラウドコンピューティングなど、幅広いテック関連トピックについて多数の記事を執筆しており、その専門性と知識は同業者から広く認められています。複雑な技術的概念を明確かつ簡潔に説明する能力でも高い評価を得ています。

  1. Windows 10へのアップグレード後に消えたUbuntuのGRUBブートメニューを復元する2つの方法

    1台のPCにWindowsとUbuntu(またはLubuntu、XubuntuなどのUbuntu系ディストリビューション)を別々のパーティションへインストールし、デュアルブート環境を構築しているユーザーは少なくありません。しかし、Windows 7からWindows 10へアップグレードした後、PCの起動時にGRUBブートメニューが表示されなくなり、そのままWindows 10が立ち上がってしまうトラブルが頻繁に報告されています。 原因は、Windows 10のインストーラーがGRUBメニューを更新する仕組みを持っておらず、Microsoft独自のブートローダーがLinuxと互換性がないことに

  2. Linuxで「Dockerデーモンに接続できません」エラーを解決する3つの方法

    Linuxターミナルで「Cannot connect to the Docker daemon(Dockerデーモンに接続できません)」というエラーが表示されると、多くの方は戸惑うでしょう。実際にはDockerデーモンはすでに起動しているのに、このエラーが出るからです。サービスが起動していないこと自体が原因ではないケースも多く、このエラーの主な原因は、ユーザーがdockerグループに追加されていないことにあります。 DockerはLinuxシステム上で専用のユーザーグループを作成します。このグループに所属していないユーザーアカウントは、Dockerデーモンに接続できません。ただし注意が必要なの