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

Administration système Discussion :

definition d'une tache qui s'execute toutes les secondes


Sujet :

Administration système

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 100
    Points : 49
    Points
    49
    Par défaut definition d'une tache qui s'execute toutes les secondes
    Bonjour

    Est-il possible de definir une tache qui s'execute toutes les secondes

    j'ai essayé d'utiliser crontab mais sa resolution est de 1 minute


    j'au besoin de de faire un sync toutes les secondes pour eviter de perdre des donnes si un utilisateur debranche sa cle USB sans la demonter

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Bonjour,

    Si tu fais une synchronisation toutes les secondes, tu risques plusieurs choses :
    1. Tuer la clef USB : ce type de mémoire n'est pas fait pour être accédé de manière continue, sous risque d'endommagement
    2. Prendre 100% des ressources : faire une synchronisation n'est pas anodin, et demande des ressources au système.
    3. Diverger : que se passe-t-il si chaque sauvegarde prends 2 secondes, alors que tu en fais une toute les seconde ? Tu vas temporiser chaque sauvegarde que tu n'as pas pu faire pour les faire plus tard. Résultat au bout de 30 secondes : il faut attendre 1 minute que les synchronisations soient faites, là où, sans système de sauvegarde automatique, il n'aurait fallu attendre que 2 secondes.


    Solutions :
    • Ne pas travailler sur une clef USB
    • S'il s'avère que tu n'as vraiment pas le choix (pas de mémoire disponible, ni de mémoire morte comme un disque dur), alors faire des sauvegardes sur des buffer locaux. Ensuite, il suffit de catcher le signal de démontage de la clef pour demander à l'utilisateur si les données sauvegardées de manière temporaire doivent être écrites ou non.


    Enfin, saches que si l'utilisateur enlève sa clef USB sans démonter le volume, il y a de grandes chances pour qu'il flingue sa clef rapidement (surtout s'il l'enlève pendant une écriture).
    Donc dans un tel cas, tant pis pour lui : il a perdu ses données, c'est bien fait.

    Sinon, pour répondre à ta question, il n'est pas possible d'exécuter une tache toutes les secondes via la crontab. En revanche, c'est possible via un script ou via un programme (c'est même assez simple à faire), mais encore une fois, c'est plus que fortement déconseillé.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Membre habitué Avatar de baroudi
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 117
    Points : 139
    Points
    139
    Par défaut
    Dans les normes , si mes souvenirs sont bons, tu dois attendre 5 secondes avant de retirer ta clé usb. Ceci pour eviter de perdre er ta clé et tes données
    Comme dit plus haut , une sauvegarde locale et des plus conseillée
    ___________________________________________
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait

  4. #4
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    le temps le plus court possible entre deux exécutions du même traitement est sa propre durée.....bref le lancer toutes les secondes est débile si il est amené à durée parfois 8-10secondes...même si tu estime sa moyenne à moins de 1seconde !!!

    admettons que ton traitement dure 1seconde pile en moyenne ça veut dire qu'il dure au moins 8 seconde 3à4 fois dans une semaine (604800 secondes ne définit donc pas 604800 exécutions mais peut être que 604000....)

    la seule solution consiste donc à relancer en permanence la tache dès que celle ci est terminée. car c'est le temps le plus court possible entre deux exécutions, il n'est pas mathématiquement possible de faire plus court.

    cela se fait dans l'inittab (/etc/inittab)

    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gest_comm:34:respawn:upr/gest_comm.sh > /tmp/gest_comm_log
    l'initialisation de l'inittab se fait par init -q ou initq selon les systèmes

    là seulement est la solution, en particulier pour des copies de sauvegardes ou des manipulations de fichiers, qui par définition durent des temps extrêmement variables, (du simple au double), puisque dépendant de la disponibilité du bus matériel !

    De plus ton idée de lancer toutes les secondes est aberrante en terme de méthode, ça pourrait entrainer des gros problème de disponibilité de bus matériel et donc provoquer des time-outs d'I/O sur des médias et planter des softs sans avoir pu enregistrer les données ni refermer les fichiers ouverts.

Discussions similaires

  1. [XL-2010] Tirer une formule qui porte que toutes les trois colonnes
    Par opl2014 dans le forum Excel
    Réponses: 6
    Dernier message: 05/05/2014, 10h36
  2. [CS3] une balle qui rebondit de tout les cotés du document
    Par carasmel dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 08/07/2011, 13h00
  3. Réponses: 15
    Dernier message: 13/09/2007, 13h53
  4. Trouver le programme qui s'execute toutes les 10 minutes
    Par sboffin dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 22/03/2007, 17h37
  5. Un Trigger qui est executé toutes les 24 heures
    Par hbellahc dans le forum Oracle
    Réponses: 2
    Dernier message: 29/11/2006, 09h31

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