tot*_*tti 7 bash scripts downloads
下载大文件时,需要多次暂停下载。可以使用 下载大文件wget
。首先开始下载,然后 kill wget
,然后通过 继续下载wget -c
。
我想根据电源故障、网络不可用等事件暂停下载太多次……并希望使用脚本自动执行。所以按下Ctrl+C不是一种选择。我知道一个进程可以被暂停kill -STOP "$pid"
暂停不应该关闭与网站的连接,它应该等待恢复命令或带宽限制到非常低的使用。
我发现这些命令aria2c
在aria2.sourceforge.net 中使用,但我无法成功使用它。这使用 RPC 方法。我可以在脚本中使用它吗?
aria2.pause(gid)
此方法暂停由 gid 表示的下载。gid 是字符串类型。暂停下载的状态变为暂停。如果下载处于活动状态,则将下载放在等待队列的第一个位置。只要处于暂停状态,就不会开始下载。要将状态更改为等待,请使用 aria2.unpause() 方法。此方法返回暂停下载的 GID。
aria2.unpause(gid)
此方法将 gid 表示的下载状态从暂停更改为等待。这使得下载有资格重新启动。gid 是字符串类型。此方法返回未暂停下载的 GID。
题
aria
在脚本中使用更好的下载器小智 6
为此,您aria2
应该支持选项pause。搜索 --pause[=true|false]
在man aria2c
。它适用于aria2_1.12.0-1_i386 [oneric](及更高版本)。
首先启动RPC服务器:(aria2c --enable-rpc=true
对于旧版本aria2c --enable-xml-rpc=true
)
然后使用RPC使用http://localhost:6800/jsonrpc
以下示例将http://example.org/file添加到aria2:在python控制台中键入以下内容
JSON RPC
import urllib2, json
jsonreq = json.dumps({'jsonrpc':'2.0', 'id':'qwer',
'method':'aria2.addUri',
'params':[['http://example.org/file']]})
c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq)
c.read()
'{"id":"qwer","jsonrpc":"2.0","result":"2089b05ecca3d829"}'
Run Code Online (Sandbox Code Playgroud)
以下示例暂停 GID 为“3”的下载:
XML RPC
import xmlrpclib
s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
s.aria2.pause('3')
Run Code Online (Sandbox Code Playgroud)
如果你得到类似下面的内容,你的 aria2 版本不支持它。
xmlrpclib.Fault: <Fault 1: 'No such method: aria2.pause'
Run Code Online (Sandbox Code Playgroud)
在使用 的版本中,可以使用aria2c --enable-xml-rpc=true
其他选项,例如 adiing 文件等(使用 XML RPC)。
归档时间: |
|
查看次数: |
10126 次 |
最近记录: |