Cron sauvegarde .sql ?
isa
-
hohisse Messages postés 9 Statut Membre -
hohisse Messages postés 9 Statut Membre -
Bonjour à tous
j'ai fait un petit script qui me fait un dump de mes tables+donnees mysql vers un repertoire du serveur.
Seulement, je voudrais que le .sql generé soit déposé sur une machine distante du réseau.
De plus, je voudrais garder dans ce meme repertoire tout les fichiers sql de la semaine et ecraser ceux précédents de maniere a n'avoir que ceux de la semaine en cours dans mon repertoire sauvegarde.
Merci de me dire ce que je dois changer... je ne trouve pas de script comme ça sur le net. voici ce que j'ai reussi à faire...
-----------------------------------------------------------------
Le script qui exécute les sauvegardes est dans /root
sauv.cmd
#!/bin/sh
DATE=$(date +%d-%m-%Y-%H-%M)
mysqldump --add-drop-table intranet > /sauvegardes/intranet${DATE}.sql
La tache est paramétrée dans crontab : sauvegarde a 22h tous les soirs dans /sauvegardes
[root@stockage root]# crontab -e
00 22 * * * /root/sauv.cmd >> /dev/null
merci à tous
isa
j'ai fait un petit script qui me fait un dump de mes tables+donnees mysql vers un repertoire du serveur.
Seulement, je voudrais que le .sql generé soit déposé sur une machine distante du réseau.
De plus, je voudrais garder dans ce meme repertoire tout les fichiers sql de la semaine et ecraser ceux précédents de maniere a n'avoir que ceux de la semaine en cours dans mon repertoire sauvegarde.
Merci de me dire ce que je dois changer... je ne trouve pas de script comme ça sur le net. voici ce que j'ai reussi à faire...
-----------------------------------------------------------------
Le script qui exécute les sauvegardes est dans /root
sauv.cmd
#!/bin/sh
DATE=$(date +%d-%m-%Y-%H-%M)
mysqldump --add-drop-table intranet > /sauvegardes/intranet${DATE}.sql
La tache est paramétrée dans crontab : sauvegarde a 22h tous les soirs dans /sauvegardes
[root@stockage root]# crontab -e
00 22 * * * /root/sauv.cmd >> /dev/null
merci à tous
isa
A voir également:
- Cron sauvegarde .sql ?
- Logiciel de sauvegarde gratuit - Guide
- Sauvegarde facile - Télécharger - Sauvegarde
- Sauvegarde android - Guide
- Sauvegarde time machine - Guide
- Z-cron - Télécharger - Optimisation
3 réponses
Bonjour,
Pourquoi ne pas utiliser l'option %w de date qui donne le jour de la semaine (0 = dimanche) dans le nom du fichier. Ainsi, les sauvegardes se feront avec un roulement de 7 jours, et il suffirait de regarder le chiffre du fichier pour avoir la date
DATE=$(date +%w)
mysqldump --add-drop-table intranet > /sauvegardes/intranet${DATE}.sql
ce qui donnerait pour le dimanche intranet0.sql, pour le lundi intranet1.sql, etc..
Une autre solution, peut être plus complexe, serait d'utiliser le même principe, mais pour ventiler les fichiers sql dans des répertoires rep0, rep1, etc... selon les jours de la semaine. Vous n'aurez pas à changer le nom du fichier de sauvegarde.Si vous voulez ne garder qu'un seul fichier par répertoire, il suffit de faire un rm du répertoire, puis un mkdir, avant de créer le fichier sql.
Cela répond il à votre question ?
Pourquoi ne pas utiliser l'option %w de date qui donne le jour de la semaine (0 = dimanche) dans le nom du fichier. Ainsi, les sauvegardes se feront avec un roulement de 7 jours, et il suffirait de regarder le chiffre du fichier pour avoir la date
DATE=$(date +%w)
mysqldump --add-drop-table intranet > /sauvegardes/intranet${DATE}.sql
ce qui donnerait pour le dimanche intranet0.sql, pour le lundi intranet1.sql, etc..
Une autre solution, peut être plus complexe, serait d'utiliser le même principe, mais pour ventiler les fichiers sql dans des répertoires rep0, rep1, etc... selon les jours de la semaine. Vous n'aurez pas à changer le nom du fichier de sauvegarde.Si vous voulez ne garder qu'un seul fichier par répertoire, il suffit de faire un rm du répertoire, puis un mkdir, avant de créer le fichier sql.
Cela répond il à votre question ?
Bonjour,
Pourquoi ne pas utiliser l'option %w de date qui donne le jour de la semaine (0 = dimanche) dans le nom du fichier. Ainsi, les sauvegardes se feront avec un roulement de 7 jours, et il suffirait de regarder le chiffre du fichier pour avoir la date
DATE=$(date +%w)
mysqldump --add-drop-table intranet > /sauvegardes/intranet${DATE}.sql
ce qui donnerait pour le dimanche intranet0.sql, pour le lundi intranet1.sql, etc..
Une autre solution, peut être plus complexe, serait d'utiliser le même principe, mais pour ventiler les fichiers sql dans des répertoires rep0, rep1, etc... selon les jours de la semaine. Vous n'aurez pas à changer le nom du fichier de sauvegarde.Si vous voulez ne garder qu'un seul fichier par répertoire, il suffit de faire un rm du répertoire, puis un mkdir, avant de créer le fichier sql.
Cela répond il à votre question ?
Pourquoi ne pas utiliser l'option %w de date qui donne le jour de la semaine (0 = dimanche) dans le nom du fichier. Ainsi, les sauvegardes se feront avec un roulement de 7 jours, et il suffirait de regarder le chiffre du fichier pour avoir la date
DATE=$(date +%w)
mysqldump --add-drop-table intranet > /sauvegardes/intranet${DATE}.sql
ce qui donnerait pour le dimanche intranet0.sql, pour le lundi intranet1.sql, etc..
Une autre solution, peut être plus complexe, serait d'utiliser le même principe, mais pour ventiler les fichiers sql dans des répertoires rep0, rep1, etc... selon les jours de la semaine. Vous n'aurez pas à changer le nom du fichier de sauvegarde.Si vous voulez ne garder qu'un seul fichier par répertoire, il suffit de faire un rm du répertoire, puis un mkdir, avant de créer le fichier sql.
Cela répond il à votre question ?
Salut,
Une petite question, est-ce-que tu veux avoir dans ton répertoire les fichier .sql des 7 dernier jours ou ceux de la semaine en cours.
Car la solution la plus simple si tu veux conserver tes vieux fichiers, c'est soit de déplacer le fichier vieux de plus de 7 jours dans un autre repertoire tout les soirs, ou tous les fichiers une fois par semaine (samedi soir minuit par ex).
Tu peux essayer untruc comme ça, il va chercher les fichiers dont la derniere modif a 7 jour et il le supprimera.
find /sauvegarde/ -type f -name "*.sql" -ctime 7 -exec rm{}
C'est pas sur que ça marche, je suis sur windows (mea culpa) donc j'ai pas testé, mais ça doit être un truc dans le style.
Si tu veux juste les déplacer, tu fais un mv au lieu du rm et tu indiques le chemin de destination.
J'espère que ça pourra te servir (désolé pour la syntaxe, j'ai bien du me planter quelque part)
Bon courage
Une petite question, est-ce-que tu veux avoir dans ton répertoire les fichier .sql des 7 dernier jours ou ceux de la semaine en cours.
Car la solution la plus simple si tu veux conserver tes vieux fichiers, c'est soit de déplacer le fichier vieux de plus de 7 jours dans un autre repertoire tout les soirs, ou tous les fichiers une fois par semaine (samedi soir minuit par ex).
Tu peux essayer untruc comme ça, il va chercher les fichiers dont la derniere modif a 7 jour et il le supprimera.
find /sauvegarde/ -type f -name "*.sql" -ctime 7 -exec rm{}
C'est pas sur que ça marche, je suis sur windows (mea culpa) donc j'ai pas testé, mais ça doit être un truc dans le style.
Si tu veux juste les déplacer, tu fais un mv au lieu du rm et tu indiques le chemin de destination.
J'espère que ça pourra te servir (désolé pour la syntaxe, j'ai bien du me planter quelque part)
Bon courage