Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[TIP] esecuzione parallela con xargs [multiping]
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools)
View previous topic :: View next topic  
Author Message
makoomba
Moderator
Moderator


Joined: 03 Jun 2004
Posts: 1856

PostPosted: Fri Dec 09, 2005 12:30 pm    Post subject: [TIP] esecuzione parallela con xargs [multiping] Reply with quote

Inauguro il nuovo subforum con un tip riguardante xargs.
il suddetto tool può essere utilizzato per eseguire parallelamente un comando su una serie di argomenti.

un pratico esempio: volete scaricare velocemente i distfiles relativi ad un nuovo emerge.
Code:
emerge -pf programma

restituisce la lista dei files da scaricare, mirrors inclusi.
Code:
emerge -pf -e programma 2>&1| egrep -i "http|ftp" | cut -d' ' -f1

filtra la lista limitandola ad un solo mirror (il primo).
ora utilizziamo xargs per scaricare parallelamente 5 files per volta
Code:
emerge -pf -e programma 2>&1| egrep -i "http|ftp" | cut -d' ' -f1 | xargs -n 1 -P 5 wget -c -o /dev/null -P /usr/portage/distfiles

la parte
Code:
xargs -n 1 -P 5 comando

prende la lista fornita da emerge e la passa come argomento al comando specificato (wget).
-n 1 dice a xargs di eseguire il comando con un solo argomento per volta
-P 5 limita a 5 il numero massimo di istanze del programma eseguite contemporaneamente.

edit: 21/01/2006

Nella mia lan, faccio spesso prove per cui mi capita di dimenticare gli indirizzi ip correntemente assegnati.
ping e xargs risolvono egregiamente il problema.
Code:
(seq -f '10.0.0.%g' 1 254 | xargs -n 1 -P 254 ping -c1 -w1) 2>/dev/null | grep icmp

la lista di ip 10.0.0.x viene data in pasto a xargs che esegue contemporaneamente 254 pings
l'output viene filtrato in modo da visualizzare solo i pc che rispondono.

semplice no ?
_________________
When all else fails, read the instructions.


Last edited by makoomba on Sat Jan 21, 2006 3:03 pm; edited 2 times in total
Back to top
View user's profile Send private message
makoomba
Moderator
Moderator


Joined: 03 Jun 2004
Posts: 1856

PostPosted: Sat Jan 21, 2006 10:16 am    Post subject: Reply with quote

aggiunto tip sul multiping
_________________
When all else fails, read the instructions.
Back to top
View user's profile Send private message
Kernel78
Moderator
Moderator


Joined: 24 Jun 2005
Posts: 3652

PostPosted: Sat Jan 21, 2006 11:15 am    Post subject: Reply with quote

Il tip sul multiping è veramente carino, non avevo nemmeno mai pensato di parallelizzarlo :oops: io facevo un semplice for in background con l'ouptup salvato in un file ma il tuo è molto più cool 8)
_________________
Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con
Code:
grep -vE '(^[[:space:]]*($|(#|!|;|//)))'
Back to top
View user's profile Send private message
makoomba
Moderator
Moderator


Joined: 03 Jun 2004
Posts: 1856

PostPosted: Sat Jan 21, 2006 11:54 am    Post subject: Reply with quote

dovrebbe bastare un ping al broadcast, ma i pc winzzozz cafoni non rispondono.
indi per cui, il multiping con xargs ha il suo perchè e fa pure più figo.
_________________
When all else fails, read the instructions.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum