我目前正在處理大型數據集,即使文件格式轉換每個主題至少需要一個小時,因此我經常不確定我的命令是否已經執行或程序是否已凍結。我想知道是否有人對如何跟蹤我試圖在Linux中運行的命令/腳本的進度提示?如何跟蹤linux命令的進度?
您的幫助將不勝感激。
我目前正在處理大型數據集,即使文件格式轉換每個主題至少需要一個小時,因此我經常不確定我的命令是否已經執行或程序是否已凍結。我想知道是否有人對如何跟蹤我試圖在Linux中運行的命令/腳本的進度提示?如何跟蹤linux命令的進度?
您的幫助將不勝感激。
如果持久命令生成的文件foo.out
一些輸出,你可以做watch ls -l foo.out
或tail -f foo.out
你也可以列出/proc/$(pidof prog)/fd
找出一些prog
輸出是_basic.nii.gz_格式的文件。但是,當我輸入'watch ls -l basic.nii.gz'時,它說沒有這樣的文件或目錄存在 – user1442363
某些實用程序暫時重命名輸出。 –
您可以使用詳細的輸出,但它會減慢甚至更多。
您可以使用strace
來關注程序的系統調用,這將使您能夠按照open
調用。
你應該在命令行中指定'strace'還是可以按順序輸入? @thiton – user1442363
(Both :)你可以'strace'命令或已經運行的進程。 –
另外打開的文件,以@ basile-starynkevitch答案,
我有一個bash腳本,可以測量你在百分數中處理了多少文件。
它觀察到procfs
從fd信息(/proc/pid/fdinfo
)獲得當前位置,並且以百分比計算它相對於總文件大小。
見https://gist.github.com/azat/2830255
curl -s https://gist.github.com/azat/2830255/raw >| progress_fds.sh \
&& chmod +x progress_fds.sh
Usage:
./progress_fds.sh /path/to/file [ PID]
Сan是有用的人
我想不可能有一般問題的答案,它只是取決於節目的類型(甚至不有對Linux做任何事情,請參閱「停止問題」)。
如果您在轉換過程中碰巧使用了管道,我發現pv(1)
工具非常有幫助。即使pv
無法知道數據的總大小,也可以幫助查看是否存在實際進度以及數據速率有多好。它不是大多數標準安裝的一部分,但可能必須明確安裝。
哪些命令?其中一些可能有詳細輸出選項。 –
Shell腳本可以通過'sh -x'而不是'sh'運行,以便在執行命令之前顯示這些命令。 –
如果你生成一個日誌或任何類型的文件,你可以在這個文件上運行'tail -f'。 –