IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Conseil sur la réalisation d'un script périodique


Sujet :

Linux

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 29
    Points : 29
    Points
    29
    Par défaut Conseil sur la réalisation d'un script périodique
    Bonjour tout le monde.

    J'ai besoin de conseils sur la réalisation d'un script. Je vous donne d'abord toutes les opérations que je fais manuellement et que je voudrais automatiser.

    Tous les débuts de mois, je recois un fichier <Nb_Troncons> qui contient le nombre de fichiers que je dois récupérer et intégrer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cat <Nb_Troncons>
    > 20
    Je dois ensuite lancer des récupérations via CFT avec un script.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ./Recv_Mxxx <Fichier_A_Recevoir>01
    ./Recv_Mxxx <Fichier_A_Recevoir>02
    ....
    Je peux lancer ce script dans une boucle, mais l'espace disque disponible n'étant pas conséquent, je préfère n'avoir qu'un fichier en réception et un fichier en queue, cad :
    - je lance la réception du fichier n
    - quand il passe en mode réception, je lance la réception du n+1
    - quand le n+1 passe en mode réception, je lance la réception du n+2
    - etc.

    Je peux suivre la récupération de ces fichiers via la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CFTUTIL LISTCAT | grep <Fichier>
    qui me donne une réponse du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PBMICFI2 RFT  M696M01  A0321440     11278K     11278K   0 CP 71%
    Sachant que le code en gras est :
    - RFD quand il est dans la file d'attente
    - RFC quand la réception est en cours
    - RFT quand c'est terminé

    Donc sur cette réception sachant que ca prend entre 20 et 30 minutes en moyenne, je souhaite vérifier régulièrement l'état de réception du fichier n+1 pour que quand il passe à RFC, je mets en file d'attente le fichier suivant.

    Donc pourlancer le script en début de mois, c'est une entrée cron qu'il faut ajouter.
    Mais pour vérifier périodiquement, est ce que :
    - je fais un
    while <PasFini>
    do
    "Si Reception n+1 en RFC"
    "Mise en file d'attente de n+2"
    sleep 30minutes
    done
    - il y a moyen de creer un cron sur le script qui le lance toutes les 30 minutes et une fois la réception effectuée, de supprimer l'entrée cron.

    Enfin, je sais pas si vous aurez tout compris, mais si vous avez besoin d'informations supplémentaires, dites le mi.

    Bonne journée.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2007
    Messages : 66
    Points : 95
    Points
    95
    Par défaut
    Bonjour,

    Si j'ai bien compris, tu transfères au fur et à mesure chaque fichier téléchargé sur un périphérique de stockage à cause d'un espace disque insuffisant qui ne te permet pas de les télécharger simultanément?

    Est-ce que cet algo un peu simple conviendrait à ce que tu veux faire?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    
    for fichier in liste des fichiers à recevoir
    do
       declencher telechargement $fichier
       attendre signal de fin de téléchargement de $fichier
       transférer fichier sur périphérique de stockage  
    done

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 29
    Points : 29
    Points
    29
    Par défaut
    Salut To-Ma.

    Oui en gros c'est ça.

    Bon je rajoute quelques précision :
    - une fois le fichier finit de télécharger, je dois le renommer en rajoutant "CO_" devant pour qu'un process le prenne en compte.
    - une fois que le process (que je ne gère pas) a fini son boulot, le fichier est déplacé automatiquement (donc c'est ta 3e partie, sauf que je la gère pas)

    Donc en gros, mettons pour 3 fichiers à recevoir :
    - je mets en file d'attente le 1
    - dès que le 1 commence à télécharger je mets en file le 2 (pour pas perdre de temps entre les 2 en fait)
    - dès que le 2 passe en réception, donc dès que le 1 est terminé, je mets le 3 en file
    - dès que le 3 est terminé, cette partie du script s'arrête

    En parallèle, le script d'intégration peut commencer à intégrer le 1 dès qu'il est terminé, donc en renommant 1 en CO_1.
    Par contre, je ne peux lancer l'intégration du 2 que si le 1 est pris en compte par le process, sinon ca peut faire des erreurs.

    - Renommage de 1 en CO_1
    - vérification des fichiers en intégration avec fuser CO_*
    - si le 1 est pris en compte par le process, je peux renommer le 2, sinon, je dois attendre.

    Bon je sais ca à l'air compliqué comme ça, mais je suis sûr que des tas de gens vont pouvoir m'aider

    C'est surtout sur la gestion des process en parallèle, je pense que les cron doivent se débrouiller pour ça.

    EDIT :
    petite précision : c'est uniquement dans un but d'optimisation de l'espace disque et du temps d'exécution que je veux respectivement :
    - mettre un fichier en file d'attente dès que le précédent commence à télécharger
    - renommer un fichier complet dès que le précédent est pris en compte par le process

    Sinon, je peux effectivement lancer fichier par fichier le téléchargement, dès que c'est terminé, je lance le suivant et si il n'y a aucun fichier en intégration, je le renomme.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2007
    Messages : 66
    Points : 95
    Points
    95
    Par défaut
    je ne connais pas Cron, ni CFT, donc je ne peux rien dire sur ces points ...

    Je me demandais par contre si tu ne pouvais pas récupérer un signal de fin de téléchargement, dans ce cas je ne m'y connais pas trop non plus (décidément!) mais je pense que la commande wait serait utile....

    Peut-être que ce lien est intéressant:
    http://www.developpez.net/forums/sho...highlight=wait

Discussions similaires

  1. Architecture et conseils sur la réalisation d'un jeu voxel
    Par MrTheoker dans le forum XNA/Monogame
    Réponses: 2
    Dernier message: 28/04/2014, 11h08
  2. Conseils sur la réalisation d'une interface
    Par sebac dans le forum Interfaces Graphiques en Java
    Réponses: 5
    Dernier message: 31/08/2009, 18h14
  3. Conseil sur la réalisation d'une interface
    Par sebac dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 28/08/2009, 16h43
  4. Besoins de conseils sur la réalisation d'un moteur 3D
    Par Lynix dans le forum Bibliothèques
    Réponses: 12
    Dernier message: 25/05/2009, 10h44
  5. Réponses: 3
    Dernier message: 26/02/2009, 23h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo