Как остановить xargs от плохого слияния вывода от нескольких процессов?

попытайтесь работать smartctl -a /dev/hda (мог быть sda в Вашем случае; cat /proc/partitions покажет Вам тип устройства для использования),

В Вашем случае это находится позади cciss контроллера, таким образом, опция должна быть -d cciss,0 или подобный.

18
21.06.2016, 15:24
2 ответа

Это должно добиться цели:

echo -n $IPs | xargs --max-args=1 -I {} --delimiter ' ' --max-procs=0 \
  sh -c "wget -q -O- 'http://{}/somepage.html' | egrep --count '^string'" | \
  { NUM=0; while read i; do NUM=$(($NUM + $i)); done; echo $NUM; }

Идея здесь состоит в том, чтобы отметить отдельное количество и суммировать их в конце. Мог бы перестать работать, если отдельные количества являются достаточно большими, чтобы быть смешанными, но это не должно иметь место.

6
27.01.2020, 19:46

Параллель GNU specifcally разработана для решения этой проблемы:

echo -n $IPs | parallel -d ' ' -j0 wget -q -O- http://{}/somepage.html | egrep --count '^string'

Если Ваш дюйм/с находится в файле, это еще более симпатично:

cat IPs | parallel -j0 wget -q -O- http://{}/somepage.html | egrep --count '^string'

Для узнавания больше смотрят вводное видео: http://www.youtube.com/watch?v=OpaiGYxkSuQ

14
27.01.2020, 19:46
  • 1
    Nice! Кроме того, я держу пари, что кто-то скажет Вам, что кошка бесполезна очень скоро. –  Stéphane Gimenez 30.07.2011, 22:31
  • 2
    я знаю. Но я нахожу легче читать, и я обычно работаю над 48 базовыми машинами, таким образом, несколько дополнительных тактов для одного из неактивных ядер должны все же быть проблемой. –  Ole Tange 30.07.2011, 22:55
  • 3
    идеально подошла бы для задания, если бы это было в репозиториях Debian. –  Christoph Wurm 31.07.2011, 13:41
  • 4
    @Legate Debian включает parallel команда от moreutils, который достаточен здесь: parallel -j99 -i sh -c 'wget -q -O- http://{}/somepage.html | egrep -c "^string"' -- $IPs –  Gilles 'SO- stop being evil' 01.08.2011, 01:05
  • 5
    @Legate build.opensuse.org/package / … для .deb файла и bugs.debian.org/cgi-bin/bugreport.cgi?bug=518696 для ошибки для продвижения. –  Ole Tange 04.08.2011, 00:21

Теги

Похожие вопросы