シェルスクリプトを介してターミナルアプリケーションのスクリーンショットをキャプチャしますか?

シェルスクリプトを介してターミナルアプリケーションのスクリーンショットをキャプチャしますか?

質問

5秒間実行し、iftopスクリーンショットをキャプチャしてファイルとして保存します。

iftopはネットワークトラフィックを視覚化する素晴らしいプログラムですが、数秒間実行して出力をファイルにキャプチャするバッチモードはありません。

だから私の考えは

  • screen仮想ディスプレイの作成や実行などのコマンドを使用してくださいiftop
  • screendumpスクリーンショットを撮るツール()を見つけますscreen

私は何をすべきか知っていますか?

ベストアンサー1

出力が実際にウィンドウでレンダリングされない限り、これを行うことはできないと思います。screenこれにより、画面を使用するポイントが失われる可能性があります。しかし、窓が前景にある必要はありません。

これイメージマジシャンこのスイートには、importこの目的に使用できるユーティリティが含まれています。 「コマンドが見つかりません」というメッセージが表示されたら、import --helpimagemagickパッケージをインストールしてください。すべてのLinuxディストリビューションで利用可能です。

importウィンドウ名が必要です。iftopターミナルインターフェイスなので、正しい名前を使用するには、実行中のGUIターミナルのタイトルを設定する必要があります。これを行う方法は、使用しているGUI端末によって異なります。たとえば、私は次のXFCE端末を好みます:

Terminal -T Iftop -e iftop

iftop「Iftop」という新しい端末を開きます。このコンテンツのスクリーンショットを撮ることができます。

import -window Iftop ss.jpg

5秒ごとにこれを行う予定の場合は、同じ端末を再利用できるようにスクリプトが実行されているウィンドウを開く必要があります。

count=0;
while ((1)); do
    iftop &
    pid=$!
    sleep 1  # make sure iftop is up
    count=$(($count+1))
    import -window Iftop iftop_sshot$count.jpg
    kill $pid
    sleep 5
done

スクリプトが「iftopSShot.sh」の場合はそれを起動してくださいTerminal -T Iftop -e iftopSShot.sh。ただし、そうでない場合がありますTerminal。ほとんどのLinux GUI端末は、独立して使用できるスタンドアロンアプリケーションですが、特定のDEに関連付けられています。私はKDEのデフォルトの端末名があると思います。これはGNOMEの場合と規則Konsoleに従い(変更された可能性があります)andを使用していないようです。-T-egnome-terminal-t-T

デフォルトではベルが鳴りますがimport、これは迷惑ですが、オプションがあります-silent

おすすめ記事