Forum Linux.debian/ubuntu probleme avec cron

Posté par  .
Étiquettes : aucune
0
23
mai
2007
voila je veux lancer un tache tous les vendredi pour externaliser ma base de bonne glpi sur un autre serveur pour ceci j'utilise un script qui sauvegarde la base en .gz puis envoi ce .gz sur l'autre serveur a l'aide de la commande scp je n'est pas d'identification grace a une clé partagé.

tout fonctionne bien quand je lande le scripts a la main mais quand c'est avec le cron la sauvegarde ce fait bien mais pas le transfert sur l'autre serveur.sa fait 3 jours que je galère.

merci d'avance
  • # Identification par clé

    Posté par  (site Web personnel) . Évalué à 1.

    Pour une copie par scp automatisée, il faut utiliser ssh-agent pour que l'authentification se fasse.

    As-tu quelque chose de ce genre dans la procédure que tu utilises actuellement ?

    Sinon, il faut se baser sur quelque chose de ce genre :


    #!/bin/bash

    # Transfert du fichier de sauvegarde vers
    # une autre machine

    AGENT_INFO=~/.agent-info; export AGENT_INFO
    if [ -f "$AGENT_INFO" ]
    then
    . $AGENT_INFO
    else
    exit 1
    fi

    scp ~/fichier.tar.gz serveur.net:


    Là où le bat blesse c'est qu'il faut lancer ssh-agent et il faut le faire de manière manuelle, une fois, généralement après le boot de la machine :


    ssh-agent | head -2 > ~/.agent-info
    source ~/.agent-info
    ssh-add


    C'est avec la commande 'ssh-add' que le mot de passe de la clé sera demandé, après la clé sera conservée en mémoire par ssh-agent et les transferts pourront passer.
    • [^] # Re: Identification par clé

      Posté par  . Évalué à 1.

      Il y a peut-être plus simple....
      Il "suffirait" probablement que l'environnement de l'utilisateur soit appelé avant le lancement de la commande scp...
      Autrement dit, dans le script qui lance le scp, que ce soit un shell ou un script, peu importe, remplacer :
      scp plop.tgz user@serveur:
      par :
      su - user "scp plop.tgz user@serveur:"

      Normalement, ça devrait fonctionner, car le '-' encadré de deux espaces dans la commande su indique justement de charger l'environnement. L'appel à scp est entre quotes pour que la commande su ne l'interprète que comme un seul paramètre.
      Enfin, je trouve ça plus simple que de s'encombrer d'un ssh agent, etc...
      Voilà, en espérant que je ne me suis pas trompé (je n'ai pas testé par manque de temps), et que ce sera utile.
      • [^] # Re: Identification par clé

        Posté par  . Évalué à 1.

        Il y a même encore plus simple !
        Précéder l'appel à scp de . ~/.bash_profile ou équivalent....
        Du coup, la ligne deviendrait :
        . ~/.bash_profile && scp plop.tgz user@serveur:
        Quand même plus propre, non ?
      • [^] # Re: Identification par clé

        Posté par  (site Web personnel) . Évalué à 3.

        ça ne fonctionnera qu'en root le coup du "su - user", sous un autre utilisateur il demandera le mot de passe de l'utilisateur "user" et donc ça restera bloqué si c'est lancé depuis la crontab.

Suivre le flux des commentaires

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