Bonjour à tous,

je suis ennuyé par la difficulté de lancer une tâche dans le crontab de mon compte.
Je suis hébergé sur un serveur mutualisé de chez 1&1 (Debian).
J'ai donc réalisé un bash (dump d'une base mysql et zip d'un répertoire) qui tourne parfaitement lorsque je le lance en direct.

Voici le bash :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 
#! /bin/bash
echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
echo ""
##  Parametre pour la commande CRON
##    sauve-bash.sh CH_JA db714021152.db.1and1.com dbo714021152 xxxxxxxxx db714021152
##                  MPSHF db683202632.db.1and1.com dbo683202632 yyyyyyyyy  db683202632
##                  $1___ $2______________________ $3__________ $4______ $5_________
 
##  Parametre du serveur du site
site=$1
 
##  Base a traiter fournie en parametre
db_host=$2
db_user=$3
db_passwd=$4
db_name=$5
echo ""
##  Confection de la variable CEJOUR
cejour=$(date +%Y-%m-%d__%H:%M:%S)
echo "Verification de la variable DATE generee"
echo $cejour
echo ""
##  Confection de la variable 'REPERTOIRE' ou sera depose la sauvegarde
sauvegarde_bdd="REP_$site/Sauvegardes_BDD"
echo "Verification de la variable REPERTOIRE generee "
echo $sauvegarde_bdd
echo ""
 
##  DUMP de la base dans un fichier.sql
dump_file=$sauvegarde_bdd/$site_${cejour}__Backup_sh.sql
mysqldump -u "$db_user" -p"$db_passwd" -h"$db_host" "$db_name" > "$dump_file"
echo $1
echo ""
echo "Le Dump de la base $db_name dans $dump_file est OK"
echo ""
ls -ltr $dump_file
echo ""
 
## Confection du NOM du zip
#file_zip="ZIP_"${site}__${cejour}.zip
file_zip="ZIP_"${site}.zip
 
## ZIP du repertoire du Site
zip -r $file_zip REP_${site}
 
echo ""
echo "Le ZIP du site REP_${site} dans ZIP_${site}.zip est OK, dans le HOME."
echo ""
echo ""
ls -ltr $file_zip
echo ""
echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Dans ce script il y a des variables (la date du jour et le chemin de répertoire) qui servent à composer le nom du fichier zip à obtenir.
Lors du script lancé la main, les variables se comportent bien et par concaténation, fabriquent le nom (prévu) de mon zip.
Lors de l'exécution du crontab (le mien) , les variables ne sont pas trouvées et le nom de mon zip ne contient que la partie "fixe" du nom de mon zip.

Voici le crontab :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
#! /bin/sh
#
# Voici mon premier CRONTAB.
#
#
 
PATH=$PATH
 
##  Execute la ligne a 1h00 du matin, tous les heures
##  00 01 * * * ./rodo-sauve-bash.sh CH_JA db714021152.db.1and1.com dbo714021152 xxxxxxxxxxx db714021152
 
##  Execute la ligne a 1h15 du matin, tous les jours
##  15 01 * * * ./rodo-sauve-bash.sh MPSHF db683202632.db.1and1.com dbo683202632 yyyyyyyyyy db683202632
 
 
 
##  Execute toute les 2 minutes (pour tests)
*/2 * * * * ~/rodo-sauve-bash.sh CH_JA db714021152.db.1and1.com dbo714021152 xxxxxxxxxxx db714021152
*/2 * * * * ~/rodo-sauve-bash.sh MPSHF db683202632.db.1and1.com dbo683202632 yyyyyyyyyy db683202632
 
##  Inscrit la date toutes les 2 minutes dans le fichier txt
*/2 * * * * ~/date>>ctrl_date.txt
(uiserver):u88921243:~$
Quel chemin doit être précisé dans le lancement (dans crontab) de mon shell ? Est-ce qu'il se lance d'un mauvais endroit ?
Je ne saisis pas où est le problème.

Je vous remercie de vos conseils et ... de votre solution.
Maub