Bonjour,

Je possède un site internet avec Cpanel et je souhaite mettre en place une sauvegarde automatique de la base de données qui se lance via une tâche cron.

Je sais qu'on peut procéder ainsi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
0 0 * * * /usr/bin/mysqldump -u db_username -p db_password db_name > /backup/path/backup.sql
Sauf que je souhaite si possible passer par un fichier .sh lancé par la tâche cron et qui créé cette sauvegarde.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
#!/bin/bash
STAMP=`date +%Y-%m-%d_%H-%M-%S`
SOURCE=/home/monsite/public_html
DEST=/home/monsite/bck
 
/usr/bin/mysqldump -u utilisateur -p'motdepasse' basededonnes > $SOURCE/basededonnes$STAMP.sql
env GZIP=-9 tar czf $DEST/basededonnes$STAMP.tar.gz $SOURCE/
#sql dump file is packaged in the tar.gz and then removed.
rm $SOURCE/basededonnes$STAMP.sql
Mais j'ai alors reçu cet email à chaque fois que la tâche cron est lancée:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
mysqldump: Got error: 1044: "Access denied for user 'utilisateur'@'localhost' to database 'basededonnes'" when using LOCK TABLES
tar: Removing leading `/' from member names
tar (child): /home/monsite/bck/basededonnes-02-21_20-24-01.tar.gz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now

J'ai ajouté rajouté --skip-lock-tables dans la ligne débutant par /usr/bin/mysqldump

Mais ça ne fonctionne toujours pas:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
tar: Removing leading `/' from member names
tar (child): /home/monsite/bck/basededonnees2023-02-21_20-44-02.tar.gz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
Je ne souhaite pas que la tâche soit bloquée lors de la sauvegarde sinon il y aura des erreurs si une requête est lancée au même moment.

Même si je donne tous les privilège à l'utilisateur MySql et que je supprime le --skip-lock-tables ça ne fonctionne pas:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
tar: Removing leading `/' from member names
tar (child): /home/monutilisateur/bck/basededonnees2023-02-21_20-49-02.tar.gz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
Sauriez vous où est mon erreur ?

Actuellement, dans CPanel la tâche cron se lance simplement avec:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
/home/monutilisateur/public_html/bck/script.sh
Merci d'avance