[英]get progress of a file being uploaded - unix
我需要監視使用腳本上傳的文件的進度。 在膩子(軟件)中,我們可以在右側查看上傳百分比、傳輸的字節數、上傳速度和預計到達時間。 我想開發一個類似的功能。 有沒有辦法實現這一目標?
你的問題是缺乏的文件是如何傳輸的任何信息。 大多數客戶端都有某種方式來顯示進度,但這取決於所使用的單個客戶端(scp、sftp、ncftp 等)。
但是,有一種方法來監測進展情況獨立地在什么進展: pv
(管瀏覽器) 。
該工具的唯一目的是生成監控信息。 它的使用方式與cat
非常相似。 您要么使用它來將文件“提升”到pv
的標准輸出....
pv -petar <file> | ...
...或者您在管道中間使用它——但是您需要手動提供“預期大小”以獲得正確的進度條,因為pv
無法事先確定傳輸的大小。 我在這里使用了 2 GB 的預期大小( -s 2G
)...
cat <file> | pv -petar -s 2G | ...
使用的選項是-p
(進度條)、- -e
(ETA)、- -t
(經過時間)、 -a
(平均速率)和-r
(當前速率)。 它們一起構成了一個很好的助記符。
其他不錯的選擇:
-L
,可用於限制管道中的最大速率(節流)。-W
,讓pv
在顯示進度條之前等待數據實際傳輸(例如,如果您將數據傳輸到的工具首先需要密碼)。這很可能不是您要找的(因為您使用的傳輸客戶端可能有自己的顯示進度選項) ,但這是我所知道的一種工具,幾乎可以用於任何類型的數據傳輸,並且它可能會幫助其他人在未來訪問這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.