Bonjour,

J'ai fait un script bash pour sauvegarder ma base MySql. J'en profite pour garder les 7 derniers jours.
Lorsuqe je lance le programme en direct, tout marche, quand c'est le cron il me fait un "bad substitution"...
Comment ça se fait ?
Voici le script:
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
#!/bin/bash
 
#User Variables
DATE=/bin/date;
NOW=`$DATE '+%Y-%m-%d' `
MYSQLUSER=admin
MYSQLPWD=admin
MYSQLHOST=localhost
MYSQLBACKUPDIR=/media/sf_backup/
 
MK=/bin/mkdir;
RM=/bin/rm;
MV=/bin/mv
GREP=/bin/grep;
MYSQL=/usr/bin/mysql;
TAR=/bin/tar;
MYSQLDUMP=/usr/bin/mysqldump;
 
#$MK $MYSQLBACKUPDIR
 
$MYSQLDUMP -u$MYSQLUSER -p$MYSQLPWD -h$MYSQLHOST -Q -c -C --add-drop-table --add-locks --quick --lock-tables Madatabase > $MYSQLBACKUPDIR/Madatabase.$NOW.sql;
$TAR -czf $MYSQLBACKUPDIR/Madatabase.$NOW.0.tgz $MYSQLBACKUPDIR/Madatabase.$NOW.sql;
 
$RM -f $MYSQLBACKUPDIR/*7.tgz;
for fich in $MYSQLBACKUPDIR/*.6.tgz;do $MV $fich ${fich/.6.tgz/.7.tgz};done
for fich in $MYSQLBACKUPDIR/*.5.tgz;do $MV $fich ${fich/.5.tgz/.6.tgz};done
for fich in $MYSQLBACKUPDIR/*.4.tgz;do $MV $fich ${fich/.4.tgz/.5.tgz};done
for fich in $MYSQLBACKUPDIR/*.3.tgz;do $MV $fich ${fich/.3.tgz/.4.tgz};done
for fich in $MYSQLBACKUPDIR/*.2.tgz;do $MV $fich ${fich/.2.tgz/.3.tgz};done
for fich in $MYSQLBACKUPDIR/*.1.tgz;do $MV $fich ${fich/.1.tgz/.2.tgz};done
for fich in $MYSQLBACKUPDIR/*.0.tgz;do $MV $fich ${fich/.0.tgz/.1.tgz};done
 
$RM -f $MYSQLBACKUPDIR/*.sql;