2015-11-13 2 views
1

В настоящее время я пытаюсь использовать GNU Parallel, однако я не уверен в этом. Установка была довольно простой. Моя цель - запустить два параллельных экземпляра сценария python youtube-dl с соответствующими аргументами. Каким будет правильный способ выполнения скрипта с использованием параллели?Выполнение нескольких экземпляров скрипта - GNU Parallel

Parallel

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" 

ответ

3

Для всего два потока, было бы проще просто поставить амперсанд (&) в конце первая команда, и все готово. Как это:

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 «s стандартного ввода, как это:

магазин этого в 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 
+0

Большой подробный ответ. Я смог воспроизвести, и теперь он работает успешно. – MaryCoding

Смежные вопросы