Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/12/2020, à 03:23

waca

[RESOLU] Cron pour backup compresser mysql versionning

Bonjour à tou(te)s,

Comment ajouter au dump
- compression
- date/heure au nom du fichier compressé ?

Voici mon code dans le cron

10  *  *  *  * /bin/bash -c 'mysqldump --lock-tables=0 -h localhost -u moi -pmonpass base01 --add-drop-table > /home/moi/backup/base01.sql'

Merci d'avance.

Waca.

Dernière modification par waca (Le 17/12/2020, à 23:46)

Hors ligne

#2 Le 16/12/2020, à 09:46

Watael

Re : [RESOLU] Cron pour backup compresser mysql versionning

salut,

il faut connecter (pipe) la sortie de mysqldump au programme de compression, et ajouter la date dans le nom du fichier vers lequel est redirigé* la sortie du programme de compression.

--
* ou qui est passé en argument à ce programme.


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#3 Le 17/12/2020, à 00:52

waca

Re : [RESOLU] Cron pour backup compresser mysql versionning

Merci mais du coup la 'sortie' n'est plus bonne

mysqldump --lock-tables=0 -h localhost -u moi -pmonPass base01 -drop-table | gzip > /home/moi/backup`date '+%F'`.base01.gz

SANS ajout de la date, mon fichier compressé fait 1.9 Mo
AVEC ajout de la date, il fait   20 o  !!!

J'ai essayé de mettre la date au début ou en fin du nom de fichier, c'est pareil !

Hors ligne

#4 Le 17/12/2020, à 01:29

Watael

Re : [RESOLU] Cron pour backup compresser mysql versionning

la ligne de commande semble correcte.
par contre, il y a une coquille : je ne trouve pas d'option -drop-table; je ne vois que --add-drop-table et --skip-add-drop-table.


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#5 Le 17/12/2020, à 03:03

waca

Re : [RESOLU] Cron pour backup compresser mysql versionning

Ca progresse merci, donc c'est OK en ligne de commande...  mais pas à travers le cron
Je pense que les      '  `     mettent la pagaille ??!

30 * * * * /bin/bash -c 'mysqldump --lock-tables=0 -h localhost -u moi -pmonPass base01 --add-drop-table | gzip > /home/moi/backup/base01`date '+%F'`.gz'

Avec ça, il ne se passe rien du tout sad en cron

Hors ligne

#6 Le 17/12/2020, à 03:18

Watael

Re : [RESOLU] Cron pour backup compresser mysql versionning

ah ! c'est le % : dans une crontab, cela indique une fin de ligne; il faut le protéger avec un antislash.

tu peux adapter la commande date :

... | gzip > "$(date +'/home/moi/backup/base01_\%F.gz)"

NB: on n'utilise plus les backticks (`) pour effectuer une Substitution de commandes.
depuis longtemps déjà on utilise la forme $(cmd)

EDIT (correction) :

... | gzip > "$(date +'/home/moi/backup/base01_\%F.gz')"'

Dernière modification par bruno (Le 17/12/2020, à 15:31)


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#7 Le 17/12/2020, à 06:34

waca

Re : [RESOLU] Cron pour backup compresser mysql versionning

hé bien ça ne le fait pas :

30 * * * * /bin/bash -c 'mysqldump --lock-tables=0 -h localhost -u moi -pmonPass base01 --add-drop-table | gzip > "$(date +'/home/moi/backup/base01_\%F.gz)"

Il y a un   '   juste au début de la commande mysqldump    et  tu en mets un juste avant le  /home/moi.....
bien sûr j'ai essayé de mettre ce  '  après le " ; voire d'enlever celui avant  /home/....  mais c'est  KO
je pense qu'il y a encore un  "détail"  qui ne semble pas en être un qui est pénalisant.

Hors ligne

#8 Le 17/12/2020, à 07:20

Watael

Re : [RESOLU] Cron pour backup compresser mysql versionning

il faut en ajouter deux :
- 1 après gz,
- 1 à la fin de la ligne de commande.


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#9 Le 17/12/2020, à 11:33

waca

Re : [RESOLU] Cron pour backup compresser mysql versionning

Merci pour ta patience, mais ça ne le fait toujours pas.
J'ai rajouté   '  juste après --add-drop-table
et aprés  F.gz')

30 * * * * /bin/bash -c 'mysqldump --lock-tables=0 -h localhost -u moi -pmonPass base01 --add-drop-table' | gzip > "$(date +'/home/moi/backup/base01_\%F.gz')"

J'ai même essayé de ne PAS mettre après le  -table   et de mettre tout à la fin  gz')"'
donc après la fin  )"    mais bof
Ca ne créé aucun fichier.

Hors ligne

#10 Le 17/12/2020, à 13:06

bruno

Re : [RESOLU] Cron pour backup compresser mysql versionning

Salut,

Par qui est exécutée cette tâche cron ? Dans quel fichier est-elle ?

Je ne vois pas l'utilité de /bin/bash -c

Oublie les options lock-tables (qui est incorrecte) et --add-drop-tables (qui est par défaut). Il vaut mieux aussi éviter de mettre des mots de passe dans des scripts.

Tu aurais tout intérêt à créer un petit script bash exécutable qui fait la sauvegarde de la base et à l'appeler via cron. Ce sera plus souple et plus facile à faire évoluer.

Sinon essaie comme cela :

30 * * * *  the_date=$(date +%F) && mysqldump -h localhost -u moi -pmonPass base01 | gzip > home/moi/backup/base01_${the_date}.gz

Dernière modification par bruno (Le 17/12/2020, à 13:13)

#11 Le 17/12/2020, à 15:02

Watael

Re : [RESOLU] Cron pour backup compresser mysql versionning

j'ai donné la solution au #6, dans l'EDIT.


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#12 Le 17/12/2020, à 15:31

bruno

Re : [RESOLU] Cron pour backup compresser mysql versionning

Ah oui, je n'avais pas vu qu'en #9 il manquait encore un ' en fin de ligne.

#13 Le 17/12/2020, à 15:48

Watael

Re : [RESOLU] Cron pour backup compresser mysql versionning

"c'est pas la cata", puisque, à terme, le bash -c inutile va disparaître. smile


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#14 Le 17/12/2020, à 23:45

waca

Re : [RESOLU] Cron pour backup compresser mysql versionning

Merci encore pour votre aide qui m'aura permis de
1°) Que ce soit fonctionnel
2°) De 'nettoyer' cette ligne

3°) De ne pas comprendre pourquoi ça fonctionnait en term mais pas en cron, mais
bon, au moins, ça tourne comme je veux.
Merci encore pour votre patience.

Hors ligne

#15 Le 18/12/2020, à 00:13

Watael

Re : [RESOLU] Cron pour backup compresser mysql versionning

3) une option estropiée, le %, les ' ...


Connected \o/
Welcome to sHell. · eval is evil.

En ligne