bash параллельное выполнение группы команд. - Форум успешных вебмастеров - GoFuckBiz.com
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB90.4082
BTC/USD69524.2972
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 31.10.2012, 21:02   #1
Diplomat
Senior Member
 
Аватар для Diplomat
 
Регистрация: 26.10.2009
Сообщений: 597
Бабло: $127864
По умолчанию bash параллельное выполнение группы команд.

Задача такая
Есть команды
Код:
komand1;comand_1;slow_komand1 &
komand2;comand_2;slow_komand2 &
komand3;comand_3;slow_komand3 &
.....
komand10;comand_10;slow_komand10 &
Здесь надо дождаться чтобы предыдущая группа из десяти команд сработала и пустить еще группу
Код:
komand1;comand_1;slow_komand1 &
komand2;comand_2;slow_komand2 &
komand3;comand_3;slow_komand3 &
.....
komand10;comand_10;slow_komand10 &
Как такое сделать?
Diplomat вне форума  
Старый 31.10.2012, 21:26   #2
imgreen
Senior Member
 
Аватар для imgreen
 
Регистрация: 15.11.2008
Сообщений: 13,236
Бабло: $247846681
По умолчанию

почему бы их не выполнить последовательно?
imgreen вне форума  
Старый 31.10.2012, 21:38   #3
Diplomat
Senior Member
 
Аватар для Diplomat
 
Регистрация: 26.10.2009
Сообщений: 597
Бабло: $127864
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от imgreen Посмотреть сообщение
почему бы их не выполнить последовательно?
slowkomand долго выполняется, хочу сделать многопоточность
Diplomat вне форума  
Старый 31.10.2012, 21:54   #4
Venya Tolinov
Senior Member
 
Аватар для Venya Tolinov
 
Регистрация: 24.11.2010
Сообщений: 229
Бабло: $52860
Отправить сообщение для Venya Tolinov с помощью Skype™
По умолчанию

Например на пионе:
PHP код:
#!/usr/bin/env python
# encoding: utf-8

import os

cmd 
= ["mysqldump -u %s -p%s --databases a_db > ~/a_db.dump" % (MYSQL_USERMYSQL_PASSWORD), 
        
"mysqldump -u %s -p%s --databases b_db > ~/b_db.dump" % (MYSQL_USERMYSQL_PASSWORD)]
for 
c in cmd:
    
os.system(c
__________________
Amazon Graffiti - монетизация страниц в Facebook
Venya Tolinov вне форума  
Старый 31.10.2012, 23:20   #5
Diplomat
Senior Member
 
Аватар для Diplomat
 
Регистрация: 26.10.2009
Сообщений: 597
Бабло: $127864
ТС -->
автор темы ТС По умолчанию

Все банально решилось командой wait
Diplomat вне форума  
Старый 16.11.2012, 11:42   #6
Pakotorn
Member
 
Регистрация: 18.07.2012
Сообщений: 32
Бабло: $7895
По умолчанию

Чтоб не создавать другой темы может кто поможет с такой задачкой, есть утилита uniq которая после сортировки убирает или повторяющиеся строки (-u) или неповторяющиеся (-d), а как сделать чтоб вывести именно строки повторяющиеся n раз и более. Т.е. образно говоря мне из отсортированного утилитой sort файла нужно выбрать только те строки которые повторяются более n раз.
Спасибо.
Pakotorn вне форума  
Старый 16.11.2012, 11:55   #7
pesdexx
sysadm
 
Аватар для pesdexx
 
Регистрация: 28.12.2007
Сообщений: 588
Бабло: $101521
По умолчанию

Цитата:
Сообщение от Pakotorn Посмотреть сообщение
Чтоб не создавать другой темы может кто поможет с такой задачкой, есть утилита uniq которая после сортировки убирает или повторяющиеся строки (-u) или неповторяющиеся (-d), а как сделать чтоб вывести именно строки повторяющиеся n раз и более. Т.е. образно говоря мне из отсортированного утилитой sort файла нужно выбрать только те строки которые повторяются более n раз.
Спасибо.
Код:
touch outputfile
for i in `cat inputfile | uniq -d`; 
 do
  count=`cat inputfile | grep $i | wc -l`; 
  if [ "$count" -gt 500 ]; 
   then
    echo "$i" >> outputfile;
   fi;
  done
в данном примере inputfile - твой файл, outputfile - результаты, 500 - это твой n. но учти что если тебе надо повтор равный 500 и более раз то вместо 500 ты пишешь 499
pesdexx вне форума  
Старый 16.11.2012, 21:37   #8
Алёша
Ебланнед
 
Регистрация: 30.03.2012
Сообщений: 176
Бабло: $177310
По умолчанию

#!/usr/bin/perl -w

while(<>){chomp;if(exists$a{$_}){$a{$_}++}else{$a{ $_}=1}}
foreach $k(sort {$a{$a} <=> $a{$b}} keys%a){print"$k\t\t$a{$k}\n"}

юзать: ./script infile
Алёша вне форума  
Старый 17.11.2012, 20:19   #9
Pakotorn
Member
 
Регистрация: 18.07.2012
Сообщений: 32
Бабло: $7895
По умолчанию

спасибо за ответы, pesdexx, что то в твоем скрипте у меня не получилось, строки разбил он по словам, но зато с помощью его решил другую задачу, большое спасибо!
Pakotorn вне форума