Backup d'un répertoire d'un site et bdd toutes les min

Bonjour
je recherche un script pour faire la chose suivante :
1- Back up toutes les minutes du répertoire /A d’un site internet et de la bdd (sql) sur mon serveur dédié (cron toutes les minutes existant).
2- Envoi des fichiers créés sur un serveur backup.
3- Effacement sur mon serveur des fichiers plus vieux de 2 heures (pour pas prendre trop de place)
4- Effacement sur le serveur backup des fichiers plus vieux de 2 jours.
J’ai deja ecrit ca pour mon serveur, ca marche:
Files-save.sh
#!/bin/bash
renice 19 -p $ &>/dev/null
tar -czf /save/files/n-date +%m-%d-%H-%M.tgz /home/domaine/www/A
mysqldump -u root --password=xxx BDD > /save/mysql/BDD-date +%m-%d-%H-%M.sql
find /save/files –type f –and –amin +120 –exec /bin/rm -f {} ;
find /save/mysql –type f –and –amin +120 –exec /bin rm -f {} ;

Par contre comment envoyer et faire le meme effacement sur un serveur distant?

Merci de votre aide
Cordialement
BP

Je n’ai pas de script sous la main, mais ça se fait avec rsync.
Tu devrais pouvoir adapter ton script, c’est vraiment un outil puissant et flexible.

Il faut installer rsync sur les 2 machines, ensuite j’utilise une ligne commande dans ce genre la a partir de mon serveur de sauvegarde :

Enfin il y a surement des pros dans le coin qui ont plus l’habitude …
Cette ligne c’est vraiment la base, jette un œil sur le man, c’est bien fourni ( trop ? ).

Mais sinon, tu vas te retrouver avec une copie “locale” (enfin de la ou tu a lancé la commande )…
Ensuite tu peux reprendre l’idée de ton script pour compresser, sauver la copie dans un répertoire à part et effacer après X minutes.

salut,

Si tu cherches un système de sauvegarde automatisé je te recommande de jeter un oeil à backuppc. C’est un peu de boulot à configurer correctement mais très flexible et ça gère par défaut toutes les questions d’optimisation en terme d’espace disque (compression, redondances, sauvegarde différentielles, choix des sauvegardes à conserver…)

J’suis pas fan des outils clef en main, un script c’est mieux.
Mais, c’est vrai que c’est chiant à mettre place :079

  • copier le script qui va bien (monscript) sur le
    serveur distant, puis
  • Possibilité de copier la clé ssh pour éviter d’avoir
    à saisir le mot de passe :

Regarder aussi la commande inotifywait qui permet
d’observer un dossier ou un fichier et d’agir dès
qu’un événement particulier survient sur ces objets …

Salut,

Comme le souligne très justement tuxshake, rsync, est de très loin l’outil incontournable pour ce faire.

Il t’offre la possibilité de sauvegarder :

Un system complet.

Ou … un unique répertoire fichier.

Et il en va de même pour la restauration pouvant être global chirurgicale.

Cela dit, il est à noter que dans le cadre du rapatriement d’une sauvegarde : local <<-- distant il est impératif de prendre en compte le fait que :

rsync (lancé en ssh depuis local) prendra fait et cause des fichiers passwd¹, group¹, shadow¹ et gshadow¹ de la machine local.

Ces derniers, de part les installations fait en local et distant (majoritairement) diffères et l’on comprendra aisément le pourquoi du comment.

Il est à recommander de faire une copie des dit fichiers (distant) afin de les substituer temporairement lors de l’utilisation de rsync, à ceux de la machine local (penser à faire une copie des locaux pour rétablir, après …).

Et bien sûr, ne pas omettre de rétablir ces derniers¹ (local) une fois que la sauvegarde soit terminée.

Nota: cela évitera de très nombreux désagréments (droits, UUID et GID incompatible) lors d’une restauration urgente sur un serveur en production.

Et j’en parle en connaissance de cause … 8)

Merci pour vos réponses c’est exactement ca qu’il me faut.

bonjour,
avec rsync tu sauvegardes bien que les logs?
min veut bien dire minutes?
A+
JB1

Là où ça va devenir moins drôle, c’est quand la procédure de backup va commencer à prendre plus d’une minute et que la suivante démarrera avant que la précédente n’aie fini : si c’est fait naïvement, ta machine va tomber à genoux en deux temps trois mouvements. :open_mouth:

Mais je doute que tu aies vraiment besoin de faire des backups aussi rapprochés (toutes les quelques heures c’est probablement plus que suffisant). Je soupçonne qu’il y a en fait un autre problème dont tu ne nous as pas parlé, que tu crois pouvoir résoudre de cette manière (problème XY typique). En tout cas c’est la seule raison que je vois pour que tu croies avoir besoin de sauvegardes aussi fréquentes.

Si tu nous expliquais plus en détail pourquoi tu veux faire ça ? :wink:

Je m’étais fait la même réflexion que Syam :017

Siam, Ricardo et les autres bonjour,
pour un moteur SGBD digne de ce nom,
en général les logs sont suffixés,
c’est vrai que toute les minutes c’est un peu beaucoup,
je connaissais la philosophie inverse pour injecter une volumétrie de données hyper importante

combien de transactions en écriture par seconde

A+
JB1

[quote=“jb1”]pour un moteur SGBD digne de ce nom,
en général les logs sont suffixés,[/quote]
Pour un moteur SGBD digne de ce nom, il y a des solutions de synchronisation beaucoup plus efficaces que la “bête” copie des fichiers contenant la base. :wink:
Par exemple MySQL permet de configurer des serveurs en maître/esclave et de mettre à jour les esclaves en “temps réel” (flux tendu) dès que le maître est modifié. Résultat : la “sauvegarde” (l’esclave) est à jour en permanence, pas seulement toutes les minutes, et ça utilise quasiment aucune ressource sur le maître.

Mais avant de passer en revue toutes les solutions possibles à un problème qu’on ne connaît pas, ça serait mieux si l’ami Benp nous expliquait de quoi il retourne vraiment. :slightly_smiling:

réplication symétrique synchrone ou asynchrone
A+
JB1

Bonjour
Désolé, j’etais parti un moment.
En fait j’ai un site de petites annonces, les annonces sont gérées par des crons toutes les minutes.
Si mon serveur plante, il faut que je remette en place le serveur (avec la derniere annonce mise).
Je dois backuper la bdd, le répertoire www/photos (photos des annonces).
Ce que j’ai ecrit dans mon 1er message marche pas mal. Par contre j’aurais voulu aussi un script pour remettre tout ca en place, en y mettant comme donnée d’entrée la date a laquelle je veux faire le restore (les fichiers sql et les fichiers .tgz des photos ayant les dates : BDD-date +%m-%d-%H-%M.sql et n-date +%m-%d-%H-%M.tgz).
Par quelle fonction je peux remettre en place une bdd (sans passer par phpmyadmin)?

J’ai un autre soucis, j’ai mon serveur dédié sur OVH et j’utilise leur serveur back-up qui est accessible seulement par FTP. Je ne peux donc pas utiliser rsync. Vous auriez une idée?
Merci en tout cas pour votre aide.
Ben