The UNIX and Linux Forums  
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
fuldbyrdende Unix-script, der indeholder CURL FTP-kommandoer fra Peoplesoft Process Schedlr sfedak Shell Programmering og Scripting 2 02-18-2009 02:20 PM
barn proces state smreddy UNIX for dummyer Spørgsmål & svar 8 12-24-2007 12:51 AM
Staten Unix (Addict 3D) iBot UNIX og Linux RSS Nyheder 0 06-18-2007 10:40 PM
Status over Unix - ZDNet.com blogs iBot UNIX og Linux RSS Nyheder 0 06-18-2007 03:40 AM
Proces stat ianlow UNIX for dummyer Spørgsmål & svar 1 09-06-2006 10:11 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 05-27-2009
egiz81 egiz81 is offline
Registreret Bruger
  
 

Join Date: May 2009
Stillinger: 2
Unix script (sh): tilstand af ftp proces

Hi guys,
Jeg skriver et manuskript, som jeg har til at få fil fra en ekstern vært ved ftp. Problemet er, at den eksterne maskine kunne være meget langsom, ikke tilsluttet, eller ok. Du kan løse dette problem, jeg skriver dette:

[... ...]
echo "verbose om"> ftprap.cmd
echo "hurtig">> ftprap.cmd
echo "ascii">> ftprap.cmd
echo "passive off">> ftprap.cmd
echo "mget *">> ftprap.cmd
echo "afslut">> ftprap.cmd

ftp% IP <. / ftprap.cmd> ftp.log 2> & 1 &
PID_FTP \u003d `echo $!«
sove 60
ps-o pid, TTY, tid, cmd, state | grep-E "$ PID_FTP% S"> / dev / null 2> / dev / null

hvis [$? \u003d 0]

kill -9 $ PID_FTP>> ftp.log 2> & 1
fi
[... ...]

At dræbe ftp kun hvis det er blokeret.

Det sker, at selv om ftp kører, ps viser mig med state \u003d S, der sover! Jeg forsøger at køre scriptet med "sleep 1", mens det er at overføre en masse filer, og jeg er sikker på denne: ps viser ftp er i dvale og derefter scriptet dræber det.
Jeg er ikke så meget ekspert om unix scripting, så jeg ikke ', hvor jeg laver fejl.

Vil du hjælpe mig? Tak på forhånd.
  #2 (permalink)  
Old 05-27-2009
pludi's Avatar
pludi pludi is online now Forum Staff  
Moderator
  
 

Join Date: Dec 2008
Placering:. Ved
Stillinger: 1861
Sleeping betyder ikke, at dit program ikke gør noget, det betyder bare, at det ikke er i øjeblikket kører på en processor. For eksempel (på en maskine med kun 1 processor du kun se 1 program markeret som kører med ps og det er formentlig ps selv). Med 2 processorer du se 2, ...

En IMHO bedre måde at se forbindelsen ville være først at forsøge at pinge vært, tjekke hvis FTP porten er åben, kan du prøve at downloade en lille fil check, og først derefter gøre den store overførsel.
  #3 (permalink)  
Old 05-27-2009
egiz81 egiz81 is offline
Registreret Bruger
  
 

Join Date: May 2009
Stillinger: 2
Unhappy

Hi pludi,
mener du, at hvis jeg bruger sover jeg blokere min ftp kommando? Ifølge at undgå at vente for evigt, hvis værten ikke virker, jeg ønsker at gennemføre en slags timeout, efter dette, hvis ftp er blokeret, vil jeg dræbe den. Hvis jeg bruger sove, er ftp kommando i baggrunden stoppet??? Hvis det er sandt, jeg er ret bekymret ... jeg prøver at pinge første værten (i den virkelige sag denne kode i en løkke til en liste af værter), men så mange firewall Bock ping, og hvis ping har et positivt resultat, dette virker ikke 't sikker på at ftp kører.


... Jeg bruger en masse tid om dette problem .. og jeg er ved at blive skør, end jeg er bare!
  #4 (permalink)  
Old 05-27-2009
pludi's Avatar
pludi pludi is online now Forum Staff  
Moderator
  
 

Join Date: Dec 2008
Placering:. Ved
Stillinger: 1861
Nej, din søvn ikke blokere FTP kommando. Lad os sidespor i kerne-proces forvaltning for en smule:

Siden deres opfindelse CPU-kerner kun kan udføre en proces ad gangen. Dette betød, at en enkelt proces venter på brugerinput kunne blokere hele systemet. Så nogen kom op med idéen om tid skiver. Hver proces er tilladt udførelse af et bestemt tidsrum. Efter den tid det overlader kontrollen til kernen. Alt var godt, indtil nogle processer ikke vendte tilbage kontrol med vilje.
De fleste moderne kerner brug preempting stedet. Igen, hver proces er afsat gennemførelsestid. Efter den tid den OS-kerne er vågnet via en timer interrupt (eller tidligere, hvis den proces, giver det ret tilbage, fordi det venter på noget), den første proces er sendt ind i en dvaletilstand og en anden er givet CPU-tid. Den første proces vil fortsætte, når det er dens tur.

Nu tilbage til din sag: du starter FTP-processen og sende den i baggrunden. Det får sin tid-skiver lige som enhver anden proces, men det er ikke udfører hele tiden. Sommetider andre processer udføres, så ftp er markeret som 'sovende' eller rettere sagt, venter på sin tur igen. Hvis du kun har en CPU kerne og få den nuværende liste med PS, alle processer undtagen for PS vil (sandsynligvis) blive markeret som "sovende", da ps er i øjeblikket ved hjælp af den tildelte tid til at samle statistik.

Mit forslag til dit problem vil være:
  1. ping værten i spørgsmål (måske mærke dem, der kan pinges overensstemmelse hermed og springe de andre)
  2. test hvis FTP porten er åben. Du kan enten bruge netcat (fx: netcat-z $ host 21 og check $?) Eller parse outputtet af nmap)
  3. oprette et lille checkfile på FTP serveren, og hente den første. For eksempel starter FTP kommando til at i baggrunden. Hvis det stadig kører efter 5 sekunder, mener værten døde.
  4. hvis alle (nødvendige) kontrollen er god, fortsætter med den store overførsel
Closed Thread

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 03:56 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0