Forum Programmation.shell [bash] block transactionnel (atomique)

Posté par  .
Étiquettes : aucune
0
15
oct.
2008
Bonjour,

voilà j'ai besoin d'effectuer un ensemble d'opérations de manière atomique grace à un script. ce qui veut dire qu'en cas d'interruption (principalement par l'utilisateur avec kill) un rollback s'effecturait automatiquement.

existe il de tell commande ou instruction sous bash ? ou bien dois je moi meme implémenter un tel mécanisme.

merci d'avance.
  • # move

    Posté par  . Évalué à 3.

    le seul moyen que je vois, c'est d'utiliser un 'move'.
    tu mets tes fichiers dans un répertoire, et quand tout est prêt, tu renommes le répertoire avec mv.

    y a-t-il quelqu'un pour confirmer que 'mv' est atomique ?
  • # Trap

    Posté par  . Évalué à 3.

    En jouant avec les traps, tu devrais pouvoir faire ce que tu veux :
    http://tldp.org/LDP/Bash-Beginners-Guide/html/chap_12.html
    • [^] # Re: Trap

      Posté par  . Évalué à 1.

      JE pense que sa devrai faire l'affaire.

      merci.
      • [^] # Re: Trap

        Posté par  . Évalué à 2.

        pas vraiment, trap ne peut pas "attraper" un kill -9 :-)
        • [^] # Re: Trap

          Posté par  . Évalué à 2.

          Ouai enfin si ton user fait un kill -9 faut pas qu'il s'attende à ce que le soft quitte correctement.
  • # opérations ?

    Posté par  . Évalué à 2.

    Si déjà tu donnais la nature des opérations, on aurait une idée précise.
    Maintenant, pour du pur rollback sur des opérations de fichiers, la seule solution c'est le snapshot avant modifs. (une solutions mentionnée précédemment utilisant move et autre ne permet pas de gerer les locks sur ces fichiers si des applications le nécessitent).
  • # A ce niveau, bash n'est peut-être pas la meilleure solution

    Posté par  . Évalué à 2.

    Il faudrait comme dit plus haut, que tu nous donnes plus d'information sur la nature des opérations à effectuer, et peut-être passer par un autre outil ....

    Cordialement.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.