Je sais que c'est un grand vieux, mais j'ai utilisé les réponses ci-dessus et ajouté une instruction de compression de fichiers. J'espère que quelqu'un d'autre trouvera cela utile.
1) En recherchant un peu, le 7-zip semble le meilleur compresseur du marché. Si votre distribution Linux le prend en charge, vous pouvez utiliser le programme d'installation apt:
sudo apt-get install p7zip-full
Alternativement, vous pouvez utiliser tar.gz si vous vous sentez plus à l'aise avec.
2) Ensuite, vous créez un script, par exemple /home/users/backup.sh
Avec le contenu:
#!/bin/sh
find /home/users/backup_MyDB -type f -mtime +7 -exec rm {} +
mysqldump -uroot -p MyDatabase >/home/users/backup_MyDB/$(date +%F)_full_myDB.sql
7z a /home/users/backup_MyDB/$(date +%F)_full_myDB.7z /home/users/backup_MyDB/*.sql
rm -f /home/users/backup_MyDB/*.sql
Ce script trouvera les fichiers avec plus de 7 jours et les supprimera, puis il fera le vidage sql, puis il compressera 7-zip tous les fichiers .sql dans le répertoire, puis il supprimera tous les .sql dans le répertoire ( BTW, vous pouvez éventuellement ajouter une commande mysql avant le vidage, comme indiqué dans la réponse précédente si vous en avez besoin)
3) Nous faisons un chmod +x /home/users/backup.sh
pour qu'il soit exécutable.
3.1) Vous devriez tester votre script s'il fonctionne comme prévu
4) Nous programmons la tâche avec crontab -e
# Minute Hour Day of Month Month Day of Week Command
# (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat)
30 4 * * 1-6 /home/users/backup.sh >> /dev/null 2>&1
Et c'est tout. Il sauvegardera votre base de données MySQL chaque jour de la semaine à 4h30 (sauf le dimanche) et compressera la sauvegarde