LINUX.ORG.RU

bash скрипт в 8 потоков


0

3

Ребят помогите со скриптом который бы запускал 8 потоков для $fname *.jpg

надо обработать миллионы фоток командой «convert -chop x50 -gravity south»

собственно вот так работает но в один поток естественно:
#!/bin/bash
for fname in *.jpg ; do /usr/bin/gm convert -chop 1x50 -gravity south $fname $fname; done;

Моих знаний хватит только создать огромный батч с & и && через 8 строк :) Помогите пожалуйста скриптом.

Ответ на: комментарий от anonymous

надеешься он вместо тебя это скурит?
или весь юмор в том, что он тачку себе положит твоим способом?

zolden ★★★★★ ()
Ответ на: комментарий от AnDoR

find -iname '*.jpg' -print0 | xargs -l -0 -P gm convert -chop 1x50 -gravity south {} {}

Не узрел здесь цифры 8. :) После -P надо поставить, я так понимаю?

Bad_ptr ★★★★ ()
Ответ на: комментарий от AnDoR

ну gm то понятно убрать он и сам многопоточный.
вконце {} {} на это плюется - убрал и заработало как надо
P 8 это я так понимаю считая с нуля и надо P7? а в идеале P6 дабы одно ядро держать свободным для других процессов.

rst630 ()
Ответ на: комментарий от rst630

или просто сам поток xargs занимает отдельное ядро и в итоге при P7 получаем 100% загрузку всех 8ми ядер

rst630 ()
Ответ на: комментарий от rst630

ты сумел перевести то, что я закопипастил?
если чо, там не говорится, что без -n всё _обязательно_ будет работать в 1 поток.
там сказано, что _есть вероятность_. чуешь разницу?

aol ★★★★★ ()
Ответ на: комментарий от aol

конечно сумел :) просто уточнил что в моем случае без "-n" создает потоки нормально.

rst630 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.