Script automatique de backup EBS avec cron

Résolu/Fermé
Nalianne - 14 sept. 2011 à 13:06
 Nalianne - 15 sept. 2011 à 19:04
Bonjour,

Je travaille actuellement sur un script de backup pour Amazon EBS, mon script marche très bien, et lorsque je le lance manuellement, j'obtiens le résultat escompté. Mon problème se situe lorsque j'essaye de l'exécuter avec cron. En fait... rien ne se passe. J'ai cherché toutes les solutions possibles et imaginables, j'ai regardé je ne sais combien de forum, mais même en appliquant à la lettre chacune des recommandations, rien ne se passe.

ma ligne de crontab ressemble actuellement à ça :
2 11 * * * backs.sh >>/dev/null

Merci d'avance pour votre aide

A voir également:

4 réponses

Bonjour,

Dans le cas de l'exécution d'un cronjob, aucun environnement n'est chargé au préalable. Ca signifie entre autre que ta variable PATH est vide.
Tu dois spécifier le chemin absolu de ton script, vérifier qu'il a bien un shebang, et :
- Soit utiliser uniquement des chemins absolus dans ton script ;
- Soit redéfinir le PATH et toutes les variables d'environnement nécessaires au début de ton script ;
- Soit sourcer ton environnement avant de lancer ton script :

2 11 * * * . /home/xxx/.profile ; /path/to/backs.sh >>/dev/null 
0
J'ai essayé cette solution aussi, mais ça n'a rien changé en fait :s
0
Je t'ai proposé 3 solutions. Tu as testé laquelle ?
0
les trois, désolée, je me suis mal exprimée
0
Essaie d'ajouter un "set -x" au début de ton script et de changer ta ligne de cron :

2 11 * * * /path/to/backs.sh >/tmp/backs_out 2>&1


Ca t'indiquera ce que fait le shell au fur et à mesure. Si tu compares cette trace avec une exécution manuelle, tu verras là où ça diffère.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
14 sept. 2011 à 14:58
Salut,

Est-ce que ton script est exécutable au moins ?

Quel est ton shell ?
Quel système ? Ou distrib ?
0
alors en fait, apparemment, lorsque je l'exécute automatiquement, il me marque ca : /root/backs.sh: line 16: ec2-create-snapshot: command not found
(manuellement, je n'ai aucun soucis de ce côté tout s'exécute correctement)
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
14 sept. 2011 à 15:46
Affiches-nous ton script.
0
#!/bin/bash
set -x

DATESTAMP='date +%Y.%m.%d'
TIMESTAMP='date +%H%M'
LOGFILE="/var/log/_backup.log"

VOLUMES=( vol-cccf92a5 )

echo "CIT EBS BACKUP $DATESTAMP $TIMESTAMP" 2>&1 | tee -a $LOGFILE
echo " " 2>&1 | tee -a $LOGFILE

# Create a snapshot of each volume.
for volume in ${VOLUMES[@]}
do
ec2-create-snapshot -v $volume --region eu-west-1 -d backup-$DATESTAMP 2>&1 |tee -a $LOGFILE
done

#Remove older snapshots we don't need to keep any more.
#for volume in ${VOLUMES[@]}
# do
# ec2-manage-snapshots -v $volume 2>&1 | tee -a $LOGFILE
#done

echo "script executé"
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
14 sept. 2011 à 15:52
Comme dit plus haut il faut que tu donnes les chemins ABSOLUS vers tes programmes !!!
0
J'avoue ne pas voir ou, dans ce script j'utilise un chemin qui ne l'est pas
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
14 sept. 2011 à 16:25
ec2-create-snapshot il se trouve où dans ton arborescence ?

whereis ec2-create-snapshot 
0