c'est difficile de répondre au besoin sans savoir le besoin, typiquement j'ai cru comprendre via ton commentaire que tu souhaiterais lancer les commandes en parallèle,
donc si j'ai bien suivi tu as 4 machine sur lesquels envoyer les commandes avec 1 paramètre par ligne, et il faut découper le fichier de façon a exécuter les commandes sur les machines
là dessus un solution basique consisterai a couper le ficher en 4
typiquement
split -l $(($( wc -l )/4+1)) fichier/a.tex
et lancer tes boule en non bloquant
whileread a
do
commande $a node1
done < resultatDuSplit1 &whileread a
do
commande $a node2
done < resultatDuSplit2 &
...
Par contre si tes commandes ont un temps de traitement différent, tu peux souhaiter vouloir équilibrer le tout pour pas que le node1 prenne 15 heure alors que le node3 en utilise que 2. Là ça demande un peu plus technique et si c'est faisable à la main en shell, ça risque d'être marrant à maintenir pour le suivant
[^] # Re: c'est simple...
Posté par fearan . En réponse au message couper colonne dans 4 variables. Évalué à 4.
c'est difficile de répondre au besoin sans savoir le besoin, typiquement j'ai cru comprendre via ton commentaire que tu souhaiterais lancer les commandes en parallèle,
donc si j'ai bien suivi tu as 4 machine sur lesquels envoyer les commandes avec 1 paramètre par ligne, et il faut découper le fichier de façon a exécuter les commandes sur les machines
là dessus un solution basique consisterai a couper le ficher en 4
typiquement
et lancer tes boule en non bloquant
Par contre si tes commandes ont un temps de traitement différent, tu peux souhaiter vouloir équilibrer le tout pour pas que le node1 prenne 15 heure alors que le node3 en utilise que 2. Là ça demande un peu plus technique et si c'est faisable à la main en shell, ça risque d'être marrant à maintenir pour le suivant
par contre tu as un outils gnu pour ça : parallel
par exemple :
cat fichier/a.tex | parallel --sshlogin node1,node2,node3,node4 commande {}
si tu n'as pas parallel, il existe aussi map
Il ne faut pas décorner les boeufs avant d'avoir semé le vent