xargs + pv = 混亂的終端

xargs + pv = 混亂的終端

如果我想要一個關於我的長時間運行的操作的小進度指示器,我可以使用管道觀察器:

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)。你的命令列會喜歡你的。

相關內容