J'utilise la dernière Linux Mint. Je me demandais s'il était possible de créer un cronjob spécial pour une sauvegarde de base de données.
Dans mon /etc/cronjob
fichier, j'ai le code suivant:
# 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
Dans mon /home/users/backup.sh
j'ai:
mysqldump -uroot -p MyDatabase > /home/users/backup_MyDB/full_myDB.sql
Au lieu de, full_myDB.sql
je voudrais avoir quelque chose comme 2014-04-04_full_myDB.sql
où la date est ajoutée dynamiquement en fonction de la date que nous avons.
Si le fichier de sauvegarde SQL a plus d'une semaine, j'aimerais que le cronjob le supprime automatiquement.
J'ai utilisé les informations ci-dessus et je voulais fournir une autre mise à jour mineure qui tronque en fait l'une des très grandes tables qui ralentissait nos sauvegardes.
J'espère que cela aide quelqu'un d'autre.
En utilisant les informations ci-dessus, j'ai créé un script shell de base nommé mysqlbackup.sh avec le contenu suivant:
Assurez-vous d'exécuter: chmod + x mysqlbackup.sh
J'ai également mis cela dans mon crontab -e:
la source
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:
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: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
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
la source
Pour ajouter à la réponse de @ Graeme, il convient de noter que vous devrez parfois échapper le caractère '%' dans un travail cron afin qu'il ressemble à ceci:
la source