|
|
|
|
Google Site
|
|||||||
| Forums | Registrer | Blogg | Man Pages | Forum Rules | Lenker | Album | FAQ | Brukere | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her. |
![]() |
|
|
Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|||
|
Utføre kommandoer parallelt i en for loop?
Hei,
vennligst kan noen peke meg i riktig retning med et shell scripting problem. Jeg ønsker å kjøre en kommando i en for loop og kommandoen skal startes ikke ett og ett betyr det for loop venter på avsluttingskoden, bør det være i gang parallelt. Jeg har en vanlig tekstfil der et vertsnavn står på hver linje. #! / bin / bash file \u003d "/ tmp / serverlist" på serveren i `cat $ file`; gjøre ssh admin @ $ server "-kommandoen til å kjøre" ferdig Problemet er: kommandoen jeg kjøre med SSH tar ca. 10 minutter å fullføre. Jeg må kjøre kommandoen på 145 servere og jeg ikke ønsker å vente 10 minutter å gå til neste. Jeg vil kjøre det parallelt si på 10 servere på en gang. Noen ideer? bare å putte en & etter SSH kommandoer didnt work, heller ikke med videre? Takk for hjelpen igjen ... |
| Sponsede lenker | ||
|
|
|
|||
|
Prøv dette,
med hver forekomst utfører kommandoen på 10 servere ... ikke testet Code:
>subscript.sh #!/bin/bash file=$1 for server in `cat $file` ; do ssh admin@$server "command to run" done /bin/rm $1 exit 0 Code:
>mainscript.sh #!/bin/bash file="/tmp/serverlist" TMPFILE="/tmp/" cnt=0 filecnt=1 headcnt=10 tailcnt=`cat $file | wc -l` while [ $cnt -lt $tailcnt ] do head -$headcnt $file | tail -10 > $TMPFILE$filecnt subscript.sh $TMPFILE$filecnt & cnt=$(($cnt + 10) headcnt=$(($headcnt + 10)) filecnt=$(($filecnt + 1)) done exit 0 |
|
|||
|
ssh skal kunne fungere som bakgrunn prosessen. Kanskje hvis du vedlegge kommandoen du vil problemet i doble anførselstegn for å gjøre klart hvor det ender?
Code:
ssh $user@$host "$command" & Et annet fikser hvis tastene ikke utvekslet ssh stopper en interative modus der vi ber om passord - virkelig dum programmering IMHO - så skriptet vil henge det på ubestemt spørre kanskje cron eller så på svar. Bakunin Sist endret av Bakunin; 11-25-2005 på 05:02.. |
![]() |
| Hugseliste |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|
Mer UNIX og Linux Forum Emner Du kan finne nyttig
|
||||
| Tråd | Tråd startet | Forum | Svar | Siste innlegg |
| Execute DB2 kommandoer i UNIX | rollthecoin | AIX | 3 | 04-26-2008 02:17 |
| Lom ikke utføre kommandoer | pasalagua | Sun Solaris | 6 | 01-25-2008 04:22 |
| Hvordan utføre flere kommandoer via ssh | srage | Shell programmering og Skripting | 9 | 01-05-2008 03:18 |
| Execute Loop i Telnet | Dastard | Shell programmering og Skripting | 2 | 07-24-2007 12:38 |
| hvordan du utfører en stund sløyfe på 20 minutter? | subhotech | UNIX for Dummies Spørsmål og svar | 6 | 07-05-2007 03:54 |