Prozilla 是在Linux環(huán)境下多線程下載利器,安裝也很簡(jiǎn)單:
fedora 下運(yùn)行:
%sudo yum install prozilla

常見用法:
1.按照缺省設(shè)置下載(缺省一般為4線程) %proz
url
2.非curses界面,單線程下載(-1),無限重試(-t0) 存儲(chǔ)到 ~/mydir %proz
--no-curses -1 -t0 -P~/mydir url
3.curses界面,線程16個(gè)(-k=16),無限重試(-t0)
存儲(chǔ)到當(dāng)前目錄 %proz -k=16 -t0 url
用法很簡(jiǎn)單,支持多線程下載,在Linux Shell下使用非常方便,下載速度飛快。
最近用它在Shell中下載 windriver Linux 6.0.0.26更新時(shí)發(fā)現(xiàn)一個(gè)軟件設(shè)計(jì)的bug:
在同時(shí)運(yùn)行兩個(gè)shell,啟動(dòng)多個(gè)proz下載進(jìn)程時(shí)發(fā)現(xiàn),如果不同shell運(yùn)行proz下載的文件出現(xiàn)名稱相同時(shí),
會(huì)報(bào)文件已存在錯(cuò)誤,并且軟件不能繼續(xù)運(yùn)行,一直提示rusume
或者overwrite選擇,并且鍵盤輸入無響應(yīng),后分析得出,是proz在下載時(shí)在隱藏目錄中生成了一個(gè)
<文件名>.prz.log文件用于斷點(diǎn)續(xù)傳,當(dāng)出現(xiàn)兩個(gè)proz實(shí)例下載不同網(wǎng)址的同名文件時(shí),兩個(gè)實(shí)例同時(shí)讀寫
prz.log文件,導(dǎo)致數(shù)據(jù)出錯(cuò)
修復(fù)bug的方法是把prz.log文件名與文件存儲(chǔ)目錄相關(guān)應(yīng)該可以解決問題,簡(jiǎn)單的修改下源碼,這個(gè)應(yīng)該很簡(jiǎn)單。修改源碼
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);

當(dāng)然,download_win.h 的55行
void
DL_Window::print_status(download_t * download, int
quiet_mode);
“DL_Window::“一定要去掉的,這個(gè)不說大家都知道。
我剛安裝的ubuntu12.04,直接編譯提示錯(cuò)誤,需要安裝ncurse5庫和g++組件,直接在軟件中心里安裝就行了。
然后如果程序要安裝到/bin目錄,則在源碼主目錄執(zhí)行:
%sudo ./configure --prefix=/
%make
%sudo make install
順利的話,proz可執(zhí)行文件已經(jīng)在/bin目錄里了。
然后就可以多線程,多個(gè)shell同時(shí)運(yùn)行proz下載了。哈哈,proz用起來好爽!
|