Parce que j'ai récemment configuré des sauvegardes pour un NextCloud exemple, j'ai pensé que ce serait une bonne idée d'écrire un tutoriel supplémentaire sur la façon de faire un MySQLdump sans mot de passe dans Cronjob. Le problème avec les vidages MySQL est que si vous exécutez la commande sans fournir de fichier de mot de passe, il vous demandera toujours d'entrer votre mot de passe. Ce serait difficile si vous voulez exécuter cette commande dans un Cronjob .
Le processus est assez rapide et facile, je vais donc vous guider à chaque étape.
Étape 1 - Création / Modification du fichier my.cnf
Dans certains cas, ce fichier est déjà en place, sinon vous le créez simplement.
sudo nano ~/.my.cnf
Et maintenant, collez simplement les lignes suivantes, en les ajustant pour contenir votre nom d'utilisateur et votre mot de passe, bien sûr.
[mysqldump] user = mysqluser password = yourpassword
Si le fichier existe déjà et contient des données, collez simplement ces 3 lignes juste en dessous.
Étape 2 - Ajustement des autorisations
Nous devons maintenant ajuster les autorisations.
chmod 600 ~/.my.cnf
Étape 3 - Création du Cronjob
Nous allons maintenant créer le Cronjob. Si vous voulez apprendre les bases du fonctionnement des Cronjobs, consultez mon tutoriel complet dessus.
Pour modifier le fichier Crontab, exécutez :
crontab -e
Et pour effectuer le MySQL Dump tous les jours à 21h00 ajoutez la ligne suivante en bas. Pour savoir comment fonctionnent les temps, consultez mon autre tutoriel.
0 21 * * * mysqldump -u mysqluser -h localhost – all-databases | gzip -9 > mysqldbbackup.sql.gz > /dev/null
Étape 4 (facultatif) - Exécution manuelle du vidage MySQL
Si vous souhaitez exécuter le vidage MySQL directement, exécutez simplement :
mysqldump – single-transaction -h localhost -u mysqluser > /usr/share/mysqlbackups/mysqldbbackup.sql
Et voila. Voici comment exécuter MySQLdump sans mot de passe dans Cronjob.