The UNIX and Linux Forums  

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
l'exécution de script Unix CURL qui contient les commandes FTP à partir de Peoplesoft processus Schedlr sfedak De programmation et de script Shell 2 02-18-2009 02:20 PM
enfant de procédés smreddy UNIX pour les nuls Questions et réponses 8 12-24-2007 12:51 AM
L'État d'Unix (Addict 3D) iBot UNIX et Linux News RSS 0 06-18-2007 11:40 PM
L'état d'Unix - ZDNet.com blogs iBot UNIX et Linux News RSS 0 06-18-2007 04:40 AM
Processus d'État ianlow UNIX pour les nuls Questions et réponses 1 09-06-2006 11: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 Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 05-27-2009
egiz81 egiz81 is offline
Registered User
  
 

Join Date: Mai 2009
Messages: 2
Script Unix (sh): état du processus de ftp

Salut les gars,
J'écris un script dans lequel je dois me fichier à partir d'un hôte distant par FTP. Le problème est que la machine distante peut être très lent, pas connecté ou sur OK. Pour résoudre ce problème, je vous écris ceci:

[... ...]
echo "le bavard"> ftprap.cmd
echo "prompt">> ftprap.cmd
echo "ascii">> ftprap.cmd
echo "passive off">> ftprap.cmd
echo "mget *">> ftprap.cmd
echo "quit">> ftprap.cmd

% ftp IP <. / ftprap.cmd> ftp.log 2> & 1 &
PID_FTP \u003d `echo $!»
sleep 60
ps-o pid, tty, time, cmd, état | grep-E "$% PID_FTP S"> / dev / null 2> / dev / null

if [$? \u003d 0]
puis
kill -9 $ PID_FTP>> ftp.log 2> & 1
fi
[... ...]

Pour tuer le ftp que si elle est bloquée.

Il arrive que, même s'il fonctionne ftp, ps me montre avec state \u003d S, qui dort! J'essaie d'exécuter le script avec "sleep 1", alors il s'agit de transférer un grand nombre de fichiers, et je suis sûr de cela: montre ps ftp dort et ensuite le script, il tue.
Je ne suis pas tellement d'experts sur les scripts unix, alors je ne sais pas où je fais des erreurs.

Souhaitez-vous m'aider? Merci à l'avance.
  #2 (permalink)  
Old 05-27-2009
pludi's Avatar
pludi pludi is online now Forum Staff  
Modérateur
  
 

Join Date: Dec 2008
Emplacement:. À
Messages: 1958
Sleeping ne signifie pas que votre programme ne fait rien, cela signifie juste que ce n'est pas en cours d'exécution sur n'importe quel processeur. Par exemple, sur une machine avec 1 seul processeur que vous verrez seulement 1 programme marqués comme fonctionnant avec PS (et ce n'est ps probablement lui-même). Avec 2 processeurs que vous verrez 2, ...

Une façon IMHO mieux vérifier la connectivité serait d'abord d'essayer de ping sur l'hôte, vérifiez si le port FTP est ouvert, essayez de télécharger un fichier de petite vérification, et c'est seulement ensuite le transférer de gros volumes.
  #3 (permalink)  
Old 05-27-2009
egiz81 egiz81 is offline
Registered User
  
 

Join Date: Mai 2009
Messages: 2
Unhappy

Pludi Salut,
voulez-vous dire que si j'utilise le sommeil je bloquer mon commandement FTP? Selon d'éviter d'attendre indéfiniment si l'hôte distant ne fonctionne pas, je veux mettre en œuvre une sorte de délai d'attente, après cela, si le ftp est bloqué, je vais le tuer. Si j'utilise le sommeil, est commande FTP en arrière-plan arrêté??? Si c'est vrai, je suis assez inquiet ... J'essaie de faire un ping hôte de la première (dans le cas réel de ce code se trouve dans une boucle pour une liste d'hôtes), mais tant de ping-bock pare-feu et si Ping a un résultat positif, ce doesn 't savez pas qui va ftp.


... Je passe beaucoup de temps sur ce problème .. et je ne reçois plus folle que je suis!
  #4 (permalink)  
Old 05-27-2009
pludi's Avatar
pludi pludi is online now Forum Staff  
Modérateur
  
 

Join Date: Dec 2008
Emplacement:. À
Messages: 1958
Non, votre sommeil ne bloque pas la commande FTP. Let's dévier dans la gestion des processus de noyau pour un peu:

Depuis leur invention noyaux CPU ne peut exécuter un processus à la fois. Cela voulait dire que d'un seul processus d'attente pour l'entrée utilisateur peut bloquer tout le système. Ainsi, quelqu'un a eu l'idée de tranches de temps. Chaque processus est autorisé d'exécution pour un certain temps. Après cette époque, il retourne le contrôle au noyau. Tout était bien jusqu'à ce que certains processus ne renvoie pas le contrôle à dessein.
La plupart des noyaux modernes utilisent la préemption à la place. Encore une fois, chaque processus est alloué temps d'exécution. Après ce temps le noyau OS est réveillé par une interruption d'horloge (ou plus tôt si le processus lui donne les droits de retour, car il attend quelque chose), le premier processus est envoyée dans un mode "veille" et une autre est donnée le temps CPU. Le premier processus va continuer quand c'est son tour.

Maintenant, revenons à votre cas: vous êtes au début du processus de FTP et de l'envoyer dans le décor. Il obtient son temps tranches comme n'importe quel autre procédé, mais c'est de ne pas exécuter tout le temps. Parfois, d'autres processus sont exécutés, si ftp est marqué comme «dormants» ou, mieux dit, en attendant son tour nouveau. De couchage si vous avez un seul core et obtenir la liste actuelle avec le PS, tous les processus sauf pour ps va (probablement) être marqués comme «», puisque PS utilise actuellement son temps alloué à recueillir les statistiques.

Ma suggestion pour votre problème serait:
  1. ping sur l'hôte en question (marque peut-être ceux PING possible en conséquence et sauter les autres)
  2. test si le port FTP est ouvert. Vous pouvez soit utiliser netcat (par exemple: netcat-z $ host 21 et vérifier $?) Ou d'analyser la sortie de nmap)
  3. créer un petit checkfile sur le serveur FTP, et va chercher ce premier. Par exemple, commencez la commande FTP pour que, dans l'arrière-plan. Si elle court encore après 5 secondes, considérez l'hôte mort.
  4. si tous les (nécessaires) les contrôles soient bien, continuer avec le transfert de grandes
Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 04:49 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0