方便查看mldonkey下载情况的小脚本
![]()
本来呢,mldonkey是个NB东西,但是…
以前的时候,想看看mldonkey下载进度,得打开sacho,太麻烦。
后来的时候,想看看mldonkey下载进度,得打开http://localhost:4080,还是太麻烦。
再后来的呢,想看看mldonkey下载进度,得nc localhost 4000输入vd,麻烦。
再再后来呢,在骨头兄那儿有段小脚本,可以启动mlnet并且在命令行下查看下载情况来着,好得很呐。但是偶完全看不懂awk…怪不得叫awk呢,这么awkward的…
嗯,就是这样的。
alias m='pgrep mlnet >/dev/null 2>&1 && echo vd | nc -q 1 localhost 4000 | awk '"'"'/\[D/{print "\033[0;32m"$7"\t\033[4;31m"$8"%\033[0m\t",$14"KB/s"} /Down:/'"'"
但是最关键的是在偶这里不能用!偶还不会改!偶只好写一个python的咯,但似乎看上去更加awkward...死了算了。
alias m="pgrep mlnet >/dev/null 2>&1 && echo vd | nc -q 1 localhost 4000 |python -c \"import re,sys; str=sys.stdin.read();a=re.compile('.*?\[D\s*(.*?)\].*mldonkey (.*?)[\s*](\d.*?)[\s*](\d.*?)[\s*](\d.*?)[\s*](\d.*?)[\s*](\d.*?)[\s*](\d.*?)[\s*]([\d|-].*?)[\s|\n]').findall(str);b=[(name.strip(), p.strip(), cs.strip(), ts.strip(), spd.strip()) for id, name, p, cs, ts, sn, old, act, spd in a]; map(lambda (n, p, cs, ts, spd): sys.stdout.write('(%s%%)%s...%s\t %s/%s\t %skb/s\n' % (p, n[:20], n[-8:], cs, ts, spd)), b);print ''\""
好长…
其实就是这样的:
alias m="pgrep mlnet >/dev/null 2>&1 && echo vd | nc -q 1 localhost 4000 |python -c \"import re,sys; str=sys.stdin.read();a=re.compile('.*?\[D\s*(.*?)\].*mldonkey (.*?)[\s*](\d.*?)[\s*](\d.*?)[\s*](\d.*?)[\s*](\d.*?)[\s*](\d.*?)[\s*](\d.*?)[\s*]([\d|-].*?)[\s|\n]').findall(str);b=[(name.strip(), p.strip(), cs.strip(), ts.strip(), spd.strip()) for id, name, p, cs, ts, sn, old, act, spd in a]; map(lambda (n, p, cs, ts, spd): sys.stdout.write('(%s%%)%s...%s\t %s/%s\t %skb/s\n' % (p, n[:20], n[-8:], cs, ts, spd)), b);print ''\""
使用的时候把它加到.bashrc,以后只要执行m就可以看到进度鸟:
$ m
(85.2%)[刺杀希特勒].Va...TiON.avi 595.7mb/698.8mb 221.7kb/s
(26.8%)Crimson.Pig.avi....Pig.avi 186.7mb/697.1mb -kb/s
怎么到了你这就都不管用了啊?RP啊RP…