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;
Partager