如果我想要一個關於我的長時間運行的操作的小進度指示器,我可以使用管道觀察器:
ssh pc2 cat some.file | pv -nC reading | gzip --fast | pv zipping > some.file.gz
這給了我一個有趣的小顯示,告訴我事情進展得有多快:
reading: 470MiB 0:00:18 [26.7MiB/s] [ <=> ]
zipping: 99.6MiB 0:00:18 [5.61MiB/s] [ <=> ]
但是當我並行做很多事情時,輸出就會變得一團糟:
cat file.list | xargs -P 4 --replace={} sh -c "ssh pc2 cat {} | pv -nC r.{} | ..."
有什麼辦法可以讓這個工作嗎?
man pv
說有一種方法可以迂迴地將 的輸出傳輸pv
到名為 的實用程式中dialog
,但我對此不熟悉
答案1
您可以在新終端機或對話方塊中執行每個程式實例。終端用
cat file.list | xargs -P 4 --replace={} gnome-terminal -x sh -c "ssh pc2 cat {} | pv -nC r.{} | ..."
在對話框中查看 zenity
cat file.list | xargs -P 4 --replace={} sh -c "ssh pc2 cat {} | pv -nC r.{} | zenity --text-info | ..."
答案2
如果您安裝了 GNU Parallel:
cat file.list | parallel --tmux -P 4 'ssh pc2 cat {} | pv -nC r.{} | ...'
這將啟動 中的作業tmux
。然後您可以附加到tmux
:
tmux attach
如果您的系統未打包 GNU Parallel,則應在 10 秒內安裝它:
(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash
如欲了解更多資訊:觀看介紹影片以進行快速介紹: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
瀏覽本教學 (man parallel_tutorial)。你的命令列會喜歡你的。