Problème Cron (crontab) et commande GPG

Bonjour,

j’ai besoin d’aide…

Je vous explique mon problème :

j’ai un script shell qui va générer une clé cryptée, la stocker dans un fichier qui va se nommer “xxxx.signed” et l’envoyer par mail.
Voici le code :

[code]#!/bin/sh

if [ ! $# = 1 ]; then
echo "Usage: **********.sh "
exit 1
fi

#rm “$1”.signed

echo ‘***********’ | gpg --passphrase-fd 0 --yes -sear maximiles -o “$1”.signed “$1”

mail **********.com -s “[Gain]”< “$1”.signed[/code]

Ce script fonctionne très bien si je le lance manuellement via le ssh “./nomdemonsrcipt.sh”, par contre si je l’appelle depuis le crontab cela ne fonctionne pas. Il ne crée pas le fichier “.signed” et ne l’envoie donc pas.

J’ai tenté déjà pas mal de choses mais là je suis à bout. Je vous remercie par avance de votre aide…

Re-bonjour j’ai oublié de préciser certains points :

Debian Lenny 5
Linux ********.ovh.net 2.6.27.10-grsec-xxxx-grs-ipv4-32 #5 SMP Wed Apr 1 13:09:49 UTC 2009 i686 GNU/Linux

Merci par avance…

Ton PATH est réduit à rien lors d’un appel via cron, met à jour la variable PATH

Merci pour votre réponse.

Par contre j’ai fait des tests et je pense que ça ne vient pas de mon path.
voici mon nouveau code :

#!/bin/sh

if [ ! $# = 1 ]; then
      echo "Usage: /var/www/****.com/****.sh <nomfichier>"
      exit  1
fi

#etape 1
mail ***.***@***.fr -s $1 < "$1"

#rm "$1".signed

echo '*****' | gpg --passphrase-fd 0 --yes -sear maximiles -o /var/www/****.com/"$1".signed "$1"

#etape 2
mail ***.***@***.fr -s "[Gain]"< "$1".signed

Lors de la première étape je reçois bien un email :

  • sujet : /var/www/.com/.txt
  • description : le contenu de mon fichier /var/www/.com/.txt
    Par contre lors de la seconde étape je ne reçois rien. Il n’éxécute pas la commande GPG car le fichier /var/www/****.com/"$1".signed n’est pas créé.

Encore une petite idée?

Merci par avance.

Y-a-t-il un message système d’erreur reçu par root? Qui exécute la commade et a-t-il les droits d’écriture sur /var/www/****.com?

Bonsoir Fran.B,

je vous remercie de votre soutient, j’ai pu régler mon problème. Il n’y avait donc pas de problème de PATH(même si j’ai changé une ou deux variable) par contre cela était aux options de la commande GPG. Voici mon code :

#!/bin/sh

REPPATH="/var/www/****.com/"
FILESIGNED="$1".signed

if [ ! $# = 1 ]; then
      echo "Usage: "$PATH"sendfiletomaximiles.sh <nomfichier>"
      exit  1
fi

chmod 0777 "$FILESIGNED"
rm "$FILESIGNED"

echo '****' | gpg --batch --no-tty --passphrase-fd 0 --yes -sear maximiles -o "$FILESIGNED" "$1"

Encore Merci :wink: