Script automatique de backup EBS avec cron
RésoluNalianne -
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
- Script automatique de backup EBS avec cron
- Home backup & restore - Guide
- Logiciel de sauvegarde automatique gratuit - Guide
- Cobian backup - Télécharger - Sauvegarde
- Réponse automatique thunderbird - Guide
- Hekasoft backup & restore - Télécharger - Navigateurs
4 réponses
Problème rencontré : un script de sauvegarde pour Amazon EBS fonctionne en ligne de commande mais ne s'exécute pas sous cron, produisant aucun résultat malgré l'application des solutions trouvées. Les conseils les plus pertinents recommandent d'utiliser des chemins absolus vers les outils et de définir les variables d'environnement, notamment JAVA_HOME, ou de sourcer le fichier .bashrc au démarrage du script. D'autres éléments insistent sur l'importance d'avoir une logique de redirection et de journalisation correcte et sur le fait que l'environnement Cron est limité et peut ignorer des variables non exportées. En complément, certains échanges évoquent des erreurs liées à des dépendances externes comme des outils Java ou des clés privées manquantes, nécessitant des ajustements dans la configuration.
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
Est-ce que ton script est exécutable au moins ?
Quel est ton shell ?
Quel système ? Ou distrib ?
(manuellement, je n'ai aucun soucis de ce côté tout s'exécute correctement)
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é"