Prozilla 是在Linux環(huán)境下多線程下載利器,安裝也很簡單:
fedora 下運行:
%sudo yum install prozilla
常見用法:
1.按照缺省設(shè)置下載(缺省一般為4線程)
%prozurl
2.非curses界面,單線程下載(-1),無限重試(-t0) 存儲到 ~/mydir
%proz--no-curses -1 -t0 -P~/mydir url
3.curses界面,線程16個(-k=16),無限重試(-t0)存儲到當前目錄
%proz -k=16 -t0 url
用法很簡單,支持多線程下載,在Linux Shell下使用非常方便,下載速度飛快。
最近用它在Shell中下載 windriver Linux 6.0.0.26更新時發(fā)現(xiàn)一個軟件設(shè)計的bug:
在同時運行兩個shell,啟動多個proz下載進程時發(fā)現(xiàn),如果不同shell運行proz下載的文件出現(xiàn)名稱相同時,
會報文件已存在錯誤,并且軟件不能繼續(xù)運行,一直提示rusume或者overwrite選擇,并且鍵盤輸入無響應(yīng),后分析得出,是proz在下載時在隱藏目錄中生成了一個<文件名>.prz.log文件用于斷點續(xù)傳,當出現(xiàn)兩個proz實例下載不同網(wǎng)址的同名文件時,兩個實例同時讀寫prz.log文件,導(dǎo)致數(shù)據(jù)出錯
修復(fù)bug的方法是把prz.log文件名與文件存儲目錄相關(guān)應(yīng)該可以解決問題,簡單的修改下源碼,這個應(yīng)該很簡單。修改源碼libprozilla/src/logfile.c 文件的40,160,180,212行:
由原來的:
snprintf(buffer, PATH_MAX, "%s/%s%s.log",download->log_dir,
download->u.file,DEFAULT_FILE_EXT);
修改為:
snprintf(buffer, PATH_MAX, "%s/%s%s.log",download->dl_dir,
download->u.file,DEFAULT_FILE_EXT);
當然,download_win.h 的55行
voidDL_Window::print_status(download_t * download, intquiet_mode);
“DL_Window::“一定要去掉的,這個不說大家都知道。
我剛安裝的ubuntu12.04,直接編譯提示錯誤,需要安裝ncurse5庫和g++組件,直接在軟件中心里安裝就行了。
然后如果程序要安裝到/bin目錄,則在源碼主目錄執(zhí)行:
%sudo ./configure --prefix=/
%make
%sudo make install
順利的話,proz可執(zhí)行文件已經(jīng)在/bin目錄里了。
然后就可以多線程,多個shell同時運行proz下載了。哈哈,proz用起來好爽!
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。