我目前正在尝试使用GNU Parallel,但是我没有成功。安装非常简单。我的目标是运行两个带有相应参数的python脚本youtube-dl并行实例。使用并行执行脚本的正确方法是什么?

平行

parallel 'youtube-dl -w --no-warnings -o "/media/video1.%(ext)s" "http://www.cnn.com/videos/us/2015/11/11/stun-gun-used-on-man-in-police-custody-dies-lawsuit-dnt-brown-tsr.cnn"' 'youtube-dl -w --no-warnings -o "/media/video2.%(ext)s" "http://www.cnn.com/videos/us/2015/11/11/5-year-old-saves-family-from-house-fire.ktla"'

如果单独运行命令而不并行运行,它将起作用:
youtube-dl -w --no-warnings -o "/media/video1.%(ext)s" "http://www.cnn.com/videos/us/2015/11/11/stun-gun-used-on-man-in-police-custody-dies-lawsuit-dnt-brown-tsr.cnn"

youtube-dl -w --no-warnings -o "/media/video2.%(ext)s" "http://www.cnn.com/videos/us/2015/11/11/5-year-old-saves-family-from-house-fire.ktla"

最佳答案

对于仅两个流,只需在第一个命令的末尾放置一个&符就容易了,您已经完成了。像这样:

youtube-dl -w --no-warnings -o "/media/video1.%(ext)s" "http://www.cnn.com/videos/us/2015/11/11/stun-gun-used-on-man-in-police-custody-dies-lawsuit-dnt-brown-tsr.cnn" &
youtube-dl -w --no-warnings -o "/media/video2.%(ext)s" "http://www.cnn.com/videos/us/2015/11/11/5-year-old-saves-family-from-house-fire.ktla" &

# Wait for both downloads to finish
wait

如果您想使用GNU Parallel ...类似这样的东西-尽管通常会告诉我更好的方法.... :-)

创建一个名为work.txt的文件,其中包含以下内容:
/media/video1.%(ext)s http://www.cnn.com/videos/us/2015/11/11/stun-gun-used-on-man-in-police-custody-dies-lawsuit-dnt-brown-tsr.cnn
/media/video2.%(ext)s http://www.cnn.com/videos/us/2015/11/11/5-year-old-saves-family-from-house-fire.ktla

然后该命令将是:
parallel --colsep " " youtube-dl -w --no-warnings -o {1} {2} < work.txt

另一个选择是将您的两个命令简单地放在一个文件中,然后将其发送到GNU Parallel的标准输入中,如下所示:

将此存储在work.txt
youtube-dl -w --no-warnings -o "/media/video1.%(ext)s" "http://www.cnn.com/videos/us/2015/11/11/stun-gun-used-on-man-in-police-custody-dies-lawsuit-dnt-brown-tsr.cnn"
youtube-dl -w --no-warnings -o "/media/video2.%(ext)s" "http://www.cnn.com/videos/us/2015/11/11/5-year-old-saves-family-from-house-fire.ktla"

然后就跑
parallel < work.txt

关于linux - 执行脚本的多个实例-GNU Parallel,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33696945/

10-15 10:33