Linux
通過shell腳本擷取終端應用程序的螢幕截圖?
問題
執行
iftop
5 秒,截取螢幕截圖並將其保存到文件中。
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
,它遵循-T
and-e
約定;對於 GNOME,它可能是gnome-terminal
(這可能已經改變)並且它似乎使用-t
而不是-T
.請注意
import
,預設情況下會響鈴,這會很煩人,但有一個-silent
選項。