使用aria2c并行下载多个文件

时间:2019-02-24 15:06:19

标签: bash shell aria2

我想使用以下代码与aria2c并行下载多个torrent文件:

me@host:~/Downloads$ find . -iregex ".*.torrent"  | while read line; do nohup aria2c "$line" &; done
bash: syntax error near unexpected token `;'

要解决子外壳问题

me@host:~/Downloads$ find . -iregex ".*.torrent"  | while read line; do (nohup aria2c "$line" &); done
nohup: nohup: appending output to 'nohup.out'
appending output to 'nohup.out'
nohup: appending output to 'nohup.out'
nohup: appending output to 'nohup.out'
nohup: appending output to 'nohup.out'
nohup: appending output to 'nohup.out'
nohup: appending output to 'nohup.out'
nohup: appending output to 'nohup.out'
nohup: appending output to 'nohup.out'
nohup: appending output to 'nohup.out'
nohup: appending output to 'nohup.out'

但是所有过程都在停止过程中

me@host:~/Downloads$ ps -aux | grep 'aria'| sed "s/$USER/me/g"
me    5807  0.1  0.4  86208 18392 pts/0    S    22:58   0:00 aria2c ./ebd9863a73a5ef22344550a650d169a1.torrent
me    5809  0.0  0.4  85804 17884 pts/0    S    22:58   0:00 aria2c ./53ef22110569d46b445a1e908a7ae88f.torrent
me    5811  0.1  0.4  87336 19408 pts/0    S    22:58   0:00 aria2c ./a51accbbf14c8a05cb82caa7d8bec0c6.torrent
me    5813  0.0  0.4  84260 16528 pts/0    S    22:58   0:00 aria2c ./0eae6a261a340b8af159c0155aa8fab6.torrent
me    5815  0.0  0.3  82972 14400 pts/0    S    22:58   0:00 aria2c ./bf93f4618ba007ff95113156c802812b.torrent
me    5817  0.0  0.4  84256 16376 pts/0    S    22:58   0:00 aria2c ./f5938dd24367ffaf766ef99928660786.torrent
me    5819  0.0  0.4  86132 18440 pts/0    S    22:58   0:00 aria2c ./61ee21f83a33b91674926daf70c34947.torrent
me    5821  0.0  0.4  84100 16296 pts/0    S    22:58   0:00 aria2c ./710fc8dc201568d807aa7709b8fa072a.torrent
me    5823  0.0  0.3  82972 14364 pts/0    S    22:58   0:00 aria2c ./2b9cc942c04a8063bd8d4d8fd98814d9.torrent
me    5825  0.0  0.4  85832 18340 pts/0    S    22:58   0:00 aria2c ./8ffc0566591e1258c151d4d28843c55b.torrent
me    5827  0.0  0.3  82972 15208 pts/0    S    22:58   0:00 aria2c ./d9e39bfe0a907ffb580a975d8c8719d2.torrent
me    5829  0.0  0.3  83692 15616 pts/0    S    22:58   0:00 aria2c ./EDBDB765D87586FDA75C4287A1E9EA1E.torrent
me    5933  0.0  0.0  11928   956 pts/0    S+   23:04   0:00 grep --color=auto aria

怎么做呢?

2 个答案:

答案 0 :(得分:2)

我不知道aria2c,但是并行处理事务的一种简单方法是经常使用 GNU并行

find . -iregex ".*.torrent" -print0 | parallel -0 aria2c

这将并行运行CPU的每个内核一个aria2c,直到下载了所有文件。如果出于某种原因,您特别想一次运行32次,请使用:

find ... | parallel -0 -j32 ...

如果要使用进度表,请使用:

find ... | parallel -0 --eta ...

更多示例和想法here

答案 1 :(得分:0)

您要一次使用aria2c下载多个torrent文件,还是要专门使用已发布的命令进行下载?如果是第一种,那么可以使用以下简单命令:

aria2c *torrent

获取当前目录中的所有torrent文件并并行下载。