Linux

通過shell腳本擷取終端應用程序的螢幕截圖?

  • May 27, 2020

問題

執行iftop5 秒,截取螢幕截圖並將其保存到文件中。

iftop是一個用於視覺化網路流量的漂亮程序,但它沒有批處理模式,我可以在其中執行幾秒鐘並將輸出擷取到文件中。

所以我的想法是

  • 使用諸如screen創建虛擬顯示器並iftop在其中執行之類的命令。
  • 尋找任何工具 ( screendump) 來截取screen.

關於我該怎麼做的任何想法?

我認為screen除非輸出實際呈現在視窗中,否則您將無法做到這一點,這可能會破壞使用螢幕的意義。但是,視窗不必位於前景中。

ImageMagick套件包含一個實用程序,您import可以使用它。如果import --help給你“找不到命令”,請安裝 imagemagick 包,它將在任何 linux 發行版中可用。

import需要視窗的名稱。iftop是一個終端界面,因此為了確保使用正確的名稱,您必須設置它執行的 GUI 終端的標題。如何設置取決於您使用的 GUI 終端。例如,我更喜歡 XFCE 終端,它是:

Terminal -T Iftop -e iftop

iftop打開一個標題為“Iftop”的新終端。可以截取一張截圖:

import -window Iftop ss.jpg

如果您打算每五秒鐘執行一次,您可能希望打開執行腳本的視窗,以便可以重複使用相同的終端:

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 上預設終端的名稱是Konsole,它遵循-Tand-e約定;對於 GNOME,它可能是gnome-terminal(這可能已經改變)並且它似乎使用-t而不是-T.

請注意import,預設情況下會響鈴,這會很煩人,但有一個-silent選項。

引用自:https://unix.stackexchange.com/questions/92461