Pipe

管道時的 md5sum 進度

  • July 8, 2017

我正在比較兩個 USB 設備rsyncmd5sum /usb1/* /usb2/* | sort這樣所有位於驅動器根目錄的文件都計算了它們的 md5 總和,然後輸出按 md5sum 排序。例如,整個命令擴展md5sum /usb1/bigfile1 /usb1/bigfile2 /usb2/bigfile1 /usb2/bigfile2為 。我的不耐煩讓我想知道進展如何,即它現在正在處理哪個文件?因為它被傳送到另一個命令中,所以我沒有 stdout 或 stderr 來查看它正在散列 atm 的哪個文件。是否有某種命令可以報告另一個命令現在正在做什麼?

我將此標記為“信號”,但我對信號知之甚少,以便輕鬆地用一個中斷 md5sum 過程。我記得可以發送信號以dd使其報告進度。

您可以progress為此使用:

progress -p $(pgrep md5sum)

或者,如果您想持續監控md5sum

progress -m -p $(pgrep md5sum)

在不使用外部工具的情況下,您可以md5sum通過列出來查看 Linux 上目前正在訪問哪些文件/proc/$(pgrep md5sum)/fd,並md5sum通過查看/proc/$(pgrep md5sum)/fdinfo.

正如您所提到的,dd它將在收到時列印出進度報告SIGUSR1,但這是由實現的功能,dd而不是一般的信號介導功能。預設情況下,發送SIGUSR1到一個程序會殺死它。

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