Script de sauvegarde automatique avec rapport

Forum dédié à la distribution du même nom et que vous pourrez télécharger sur http://www.contribs.org. La nouvelle version de cette distribution se nomme SME Server

Modérateur: modos Ixus

Messagepar pbordere » 18 Jan 2004 20:37

Ayant eu besoin de recharger des sauvegardes (pas très à jour <IMG SRC="images/smiles/icon_frown.gif"> ), j'ai écrit ce script qui sauvegarde la même chose (je crois) que celle lancée depuis le server-manager sous sme v6.0, plus quelques répertoires. <BR>La sauvegarde est faite sur un "vieux" disque monté pour l'occasion. <BR>Le tout est placé dans le "cron.dailly" <BR> <BR> <BR>################################################# <BR> <BR>#!/bin/sh <BR> <BR># montage du disque de sauvegarde <BR>mount -t ext3 /dev/hdc1 /mnt/backup <BR> <BR># creation de l'archive ====Tout sur une seule ligne===== <BR>tar -czf /mnt/backup/backup.tar.gz /home/e-smith/ /root/ /opt/webshare/ /etc/e-smith/templates-custom/ /etc/e-smith/templates-user-custom/ /etc/samba/ /etc/ssh/ <BR> <BR># Création d'un rapport <BR>echo "===== Rapport de sauvegarde =====" > /root/result <BR>date >> /root/result <BR>ls -sh /mnt/backup/backup* >> /root/result <BR> <BR># Démontage du disque <BR>umount /mnt/backup <BR> <BR># Envoi du résultat <BR>mail -s Cron_Backup admin < /root/result <BR> <BR>################################################# <BR> <BR>Ce script n'est surement pas le meilleur qui soit alors, je vous le soumet pour amélioration. <BR> <BR>Idées : <BR>Comment faire une sauvegarde incrémentielle compréssée ? <BR>Comment faire une sauvegarde sur deux jeux de fichiers (jours paires et impaires) ? <BR> <BR>Question : <BR> <BR>Ce message est renvoyé par cron : <BR> <BR>/etc/cron.daily/backup.sh: <BR> <BR>tar: Removing leading `/' from member names <BR> <BR>Ca veux dire quoi ????????? <BR>
Philippe
Avatar de l’utilisateur
pbordere
Lieutenant de vaisseau
Lieutenant de vaisseau
 
Messages: 207
Inscrit le: 08 Déc 2003 01:00
Localisation: Limoges - France

Messagepar Argenlos » 18 Jan 2004 21:07

Tu ne pourrais pas par exemple, créer des sauvegarde sur une semaine, tout les jours? Car quand on cherche a restaurer un truc c'est pas toujours les fichiers de la veille. <BR> <BR>Mais c'est sûr une sauvegarde incrémencier ce serait peut etre mieux <BR> <BR>Par exemple: <BR> <BR>############################" <BR>#!/bin/bash <BR>DATE=`date +'%w'` <BR>#echo $DATE <BR> <BR>if [ -f "/save/save_web_$DATE.tar.gz" ] <BR>then <BR> rm /save/save_web_$DATE.tar.gz <BR>fi <BR>cd /home/e-smith/files <BR>tar -czf save_web_$DATE.tar.gz * <BR> <BR>########################## <BR> <BR>J'ajouterais, que c'est tres bien de sauvegarder les données de ton serveur, mais les bases sql elle ne le sont pas, je te propose ceci: <BR> <BR> <BR>###############################" <BR>#!/bin/sh <BR> <BR># <BR>#### VARIABLES A CONFIGURER <BR># <BR>DATE=`date +'%w'` <BR>PATH2DB=/var/lib/mysql <BR>PATH2BACKUP=/save <BR>MY_USER='toto' <BR>MY_PASSWD='123456' <BR> <BR> <BR># <BR>#### NE RIEN MODIFIER CI DESSOUS <BR># <BR> <BR>RSLT_CMD=`ls -1 --ignore my.cnf /$PATH2DB` <BR>ERROR=0 <BR>for i in $RSLT_CMD; do <BR> #echo "mysqldump --opt --user=$MY_USER --password=$MY_PASSWD $i >$PATH2BACKUP/$i" <BR> mysqldump --opt --user=$MY_USER --password=$MY_PASSWD $i >$PATH2BACKUP/$i$DATE.sql 2>/dev/null <BR> if [ "$?" -eq '0' ]; then <BR> echo "backup base $i effectué." <BR> else <BR> echo "Echec du backup de la base $i." <BR> ERROR=1 <BR> fi <BR>done <BR> <BR>if [ "$ERROR" -eq '1' ]; then <BR> echo "----------------------------" <BR> echo "Backup total terminé." <BR> echo "Des erreurs se sont produites pendant la sauvegarde." <BR>else <BR> echo "----------------------------" <BR> echo "Backup total terminé." <BR> echo "L ensemble de la sauvegarde s est déroulée correctement." <BR>fi <BR> <BR>exit 0 <BR> <BR>######################################### <BR> <BR>Attend un peu, il y a une option dans "tar" pour faire des ajouts des fichiers qui ont bougés, je crois. Je recherche. <BR> <BR> <BR>@+
Petit deviendra grand...
Avatar de l’utilisateur
Argenlos
Amiral
Amiral
 
Messages: 1120
Inscrit le: 31 Juil 2002 00:00
Localisation: Montagu vendée

Messagepar Argenlos » 18 Jan 2004 21:23

J'ai mieux.... <BR> <BR><!-- BBCode auto-link start --><a href="http://www.mail-archive.com/linux-leman@alphanet.ch/msg10400.html" target="_blank">http://www.mail-archive.com/linux-leman@alphanet.ch/msg10400.html</a><!-- BBCode auto-link end --> <BR> <BR>Je serais trés intéresser pas le résultat en tout cas. <IMG SRC="images/smiles/icon_biggrin.gif">
Petit deviendra grand...
Avatar de l’utilisateur
Argenlos
Amiral
Amiral
 
Messages: 1120
Inscrit le: 31 Juil 2002 00:00
Localisation: Montagu vendée

Messagepar pbordere » 18 Jan 2004 22:15

quand je disais qu'il y avait plein de truc à améliorer.... <IMG SRC="images/smiles/icon_wink.gif"> <BR> <BR>Je décortique les scripts et je regarde le lien en question. <BR> <BR>Mais, dis moi, ue simple copie des bases sql avec un tar sufirait bien, non ? <IMG SRC="images/smiles/icon_confused.gif">
Philippe
Avatar de l’utilisateur
pbordere
Lieutenant de vaisseau
Lieutenant de vaisseau
 
Messages: 207
Inscrit le: 08 Déc 2003 01:00
Localisation: Limoges - France

Messagepar Grand-Pa » 19 Jan 2004 04:24

<!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-2>En réponse à:</font><HR></TD></TR><TR><TD><FONT SIZE=-2><BLOCKQUOTE>Mais, dis moi, ue simple copie des bases sql avec un tar sufirait bien, non ?</BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End --> <BR>NON ! <IMG SRC="images/smiles/icon_boxe2.gif"> <BR> <BR>Rassure-toi, je ne te flame pas, c'est juste pour bien faire comprendre que ce n'est pas une solution correcte. <BR> <BR>Si le script de sauvegarde est exécuté par root, il suffit de mettre une ligne de ce genre dans ton script : <BR><!-- BBCode Start --><B>mysqldump -AaC > /home/e-smith/mysql_dump.sql</B><!-- BBCode End --> <BR><IMG SRC="images/smiles/icon_bise.gif">
Et hop, finis les galons !
Avatar de l’utilisateur
Grand-Pa
Vice-Amiral
Vice-Amiral
 
Messages: 728
Inscrit le: 08 Avr 2002 00:00
Localisation: Gap, France

Messagepar moktar » 19 Jan 2004 09:20

#Question : <BR> <BR>#Ce message est renvoyé par cron : <BR> <BR>#/etc/cron.daily/backup.sh: <BR> <BR>#tar: Removing leading `/' from member names <BR> <BR>#Ca veux dire quoi ????????? <BR> <BR>Ca veux dir que le '/' a été supprimé et que ton restore se fera relativement. <BR> <BR>/blabla/machin/bidul --> chemin absolu ( par rapport au root / ) <BR>blabla/machin/bidul --> chemin relatif ( par rapport a là ou t'es ) <BR> <BR>... <BR>
All unix is love (moktar - 2004)
Avatar de l’utilisateur
moktar
Aspirant
Aspirant
 
Messages: 119
Inscrit le: 04 Déc 2003 01:00
Localisation: france

Messagepar Argenlos » 19 Jan 2004 11:22

<!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-2>En réponse à:</font><HR></TD></TR><TR><TD><FONT SIZE=-2><BLOCKQUOTE> <BR>Le 2004-01-19 03:24, Grand-Pa a écrit: <BR><!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-2>En réponse à:</font><HR></TD></TR><TR><TD><FONT SIZE=-2><BLOCKQUOTE>Mais, dis moi, ue simple copie des bases sql avec un tar sufirait bien, non ?</BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End --> <BR>NON ! <IMG SRC="images/smiles/icon_boxe2.gif"> <BR> <BR>Rassure-toi, je ne te flame pas, c'est juste pour bien faire comprendre que ce n'est pas une solution correcte. <BR> <BR>Si le script de sauvegarde est exécuté par root, il suffit de mettre une ligne de ce genre dans ton script : <BR><!-- BBCode Start --><B>mysqldump -AaC > /home/e-smith/mysql_dump.sql</B><!-- BBCode End --> <BR><IMG SRC="images/smiles/icon_bise.gif"> <BR> <BR></BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End --> <BR> <BR>J'ai l'air de quoi avec mon script qui fait 10km de long|-( , Grand-Pa a un script plus efficace en effet. <IMG SRC="images/smiles/icon_lol.gif">
Petit deviendra grand...
Avatar de l’utilisateur
Argenlos
Amiral
Amiral
 
Messages: 1120
Inscrit le: 31 Juil 2002 00:00
Localisation: Montagu vendée

Messagepar Argenlos » 25 Jan 2004 20:54

Bonjour, je vous soumet ceci, c'est ce que je viens de mettre en place sur mon sme6.0, afin de prévenir, les catastrophes, qui ne me sont pas étrangere toutefois <IMG SRC="images/smiles/icon_rolleyes.gif"> . <BR> <BR>Ce script, <BR>Permet de faire des sauvegardes incrementielle de dossier déterminé pas l'utilisateur. <BR>Permet la sauvegarde total des fichiers importants (ceux sauvegarder par le backup du "server-manager") <BR>Permet une sauvegarde des fichiers importants (idem ci dessus) mais en incréméntiel en plus. <BR> <BR>[Mode 2 claques dans ma ...] <BR>Bien sûr c'est 1 000 000€ par bout de code pomper ... <BR>Manque pas un zéro là? Ah si si c'est moi. <BR>[/Mode 2 claques dans ma ...] <BR> <BR>########################################## <BR>#!/bin/bash <BR>#DATEJOUR=`date +'%w'` <BR>DATEJOUR=`date +'%d'-'%m'-'%y'_'%H'-'%M'` <BR>DATE=`date` <BR> <BR> <BR>MAIL="argenlos@toto.com" #Mail de la personne qui recevra le rapport <BR>CHEMIN="/save" # Chemin de la sauvegarde (sans le '/' à la fin) <BR> <BR>######logs###### <BR>echo "===== Rapport de sauvegarde =====" > /root/result_backup.txt <BR> <BR> <BR> <BR>######incrementielle############ <BR> <BR>if [ "$1" = "increment" ] <BR>then <BR>DATEOLD=`cat date.increment.dump` <BR>tar -c -G -v -z <BR> -f $CHEMIN/backup_increment.tar.gz <BR> -b 126 <BR> -N "$DATEOLD" <BR> -V "Sauvegarde du $DATEOLD au $DATE" <BR> $2 $3 $4 $5 $6 $7 $8 $9 <BR> >> /root/result_backup.txt <BR>echo $DATE > date.increment.dump <BR> <BR> <BR> <BR> <BR>#############save totale############### <BR> <BR>elif [ "$1" = "full" ] <BR>then <BR>DATEOLD=`cat date.full.dump` <BR> <BR> ############totale incrementielle############## <BR> if [ "$2" = "increment" ] <BR> then <BR>tar -c -G -v -z <BR> -f $CHEMIN/backup_complet_increment.tar.gz <BR> -b 126 <BR> -N "$DATEOLD" <BR> -V "Sauvegarde complète incrementielle $DATE" <BR> /root/ <BR> /home/ <BR> /etc/e-smith/templates-custom/ <BR> /etc/e-smith/templates-user-custom/ <BR> /etc/passwd/ <BR> /etc/shadow/ <BR> /etc/group/ <BR> /etc/gshadow/ <BR> /etc/smbpasswd/ <BR> /etc/ssh/ <BR> /opt/ <BR> $3 $4 $5 $6 $7 $8 $9 >> "/root/result_backup.txt" <BR> else <BR>tar -c -v -z <BR> -f $CHEMIN/backup_complet_$DATEJOUR.tar.gz <BR> -b 126 <BR> -N "$DATEOLD" <BR> -V "Sauvegarde complète du $DATE" <BR> /root/ <BR> /home/ <BR> /etc/e-smith/templates-custom/ <BR> /etc/e-smith/templates-user-custom/ <BR> /etc/passwd/ <BR> /etc/shadow/ <BR> /etc/group/ <BR> /etc/gshadow/ <BR> /etc/smbpasswd/ <BR> /etc/ssh/ <BR> /opt/ <BR> $2 $3 $4 $5 $6 $7 $8 $9 >> "/root/result_backup.txt" <BR> fi <BR>echo $DATE > date.full.dump <BR> <BR>############save des bases SQL########## <BR> <BR>elif [ "$1" = "sql" ] <BR>then <BR> mysqldump -AaC > /save/mysql_dump_$DATEJOUR.sql <BR> sleep 20 <BR> if [ -e "$CHEMIN/mysql_dump_$DATEJOUR.sql" ] <BR> then <BR> echo "=========Dump SQL Executer======" >> "/root/result_backup.txt" <BR> fi <BR> <BR>else <BR> echo "Problème de paramètres" <BR> echo "-----------------------------------------" <BR> echo "Mode d'emploi:" <BR> echo "-----------------------------------------" <BR> echo " " <BR> echo "Mode FULL" <BR> echo "./backup.sh full ---> Tout ce qui me parait interressant de garder sous une SME/E-SMITH " <BR> echo "(Les répertoires sauvés sont copié sur le modèle de backup2ws (SME/E-SMITH)" <BR> echo "Ce mode est utile pour créée une sauvegarde afin de prévenir toute destruction du système" <BR> echo "Vous avez la possibilité d'ajouter des répertoires que vous considérez important par exemple: " <BR> echo " " <BR> echo "-----------------------------------------" <BR> echo "Mode FULL INCREMENT(iel)" <BR> echo "Ce module à la même fonction que le Mode FULL, l'incrémentiel en plus" <BR> echo "Exemple de lancement du script: ./backup.sh full /sbin/ /usr/doc/" <BR> echo " " <BR> echo "-----------------------------------------" <BR> echo "MODE INCREMENT(iel)" <BR> echo "./backup.sh increment /root/ /boot/ /usr/" <BR> echo "Compare l'archive créée une première fois par cette option, puis y ajoute les fichiers qui ont été modifiés" <BR> echo "(Ce mode peut aussi servir à une sauvegarde ponctuelle)" <BR> echo " " <BR> echo "-----------------------------------------" <BR> echo "MODE SQL" <BR> echo "./backup.sh sql ---> Pour sauver les bases SQL du système" <BR> echo " " <BR> echo "-----------------------------------------" <BR> echo "N.B: Il est fortement conseiller d'utiliser ce script avec CRON afin de planifier les sauvegardes. " <BR> echo "Rappel: Pour éditer le cron faites 'crontab -e' dans une console" <BR> echo "-----------------------------------------" <BR> echo "Par Argenlos : <!-- BBcode auto-mailto start --><a href="mailto:Argenlos@free.fr"">Argenlos@free.fr"</a><!-- BBCode auto-mailto end --> <BR> echo "-----------------------------------------" <BR> <BR>fi <BR> <BR> <BR>###########fin du log envoie par mail######### <BR> <BR>mail -s Backup_$1 $MAIL < "/root/result_backup.txt" <BR>rm /root/result_backup.txt <BR>################################################" <BR> <BR> <BR>Rein que ça, et oui. <BR>J'attends les critiques (pas trop grosses tout de même lol) et les propositions. <BR> <BR> <BR> <BR> <BR>
Petit deviendra grand...
Avatar de l’utilisateur
Argenlos
Amiral
Amiral
 
Messages: 1120
Inscrit le: 31 Juil 2002 00:00
Localisation: Montagu vendée

Messagepar nono-mb » 27 Mars 2004 22:31

Salut as-tu fait évoluer son sctipt de sauvegarde depuis ?
a bientôt - nono
Avatar de l’utilisateur
nono-mb
Aspirant
Aspirant
 
Messages: 122
Inscrit le: 17 Sep 2003 00:00
Localisation: Angers (France)

Messagepar pbordere » 31 Mars 2004 23:23

Non, une version adaptée pour mes besoins de ces scripts me suffit.
Avatar de l’utilisateur
pbordere
Lieutenant de vaisseau
Lieutenant de vaisseau
 
Messages: 207
Inscrit le: 08 Déc 2003 01:00
Localisation: Limoges - France

Messagepar nono-mb » 31 Mars 2004 23:43

pbordere a écrit:Non, une version adaptée pour mes besoins de ces scripts me suffit.


comme toi j'ai finalement opté pour le même solution que toi
a bientôt - nono
Avatar de l’utilisateur
nono-mb
Aspirant
Aspirant
 
Messages: 122
Inscrit le: 17 Sep 2003 00:00
Localisation: Angers (France)

Messagepar Argenlos » 01 Avr 2004 19:31

Bonjour, il y a ceci
http://www.lgtaone.com/modules.php?name ... pic&t=6#55
http://www.lgtaone.com/modules.php?name ... load&cid=2
, qui à été repris par HaM et MaterSleepy, c'est trés bien sauf, qu'il y a un bug minime :roll:

Ce rpm va me faciliter la tâche...et vous?
Petit deviendra grand...
Avatar de l’utilisateur
Argenlos
Amiral
Amiral
 
Messages: 1120
Inscrit le: 31 Juil 2002 00:00
Localisation: Montagu vendée

Messagepar pascal69 » 08 Jan 2005 11:09

Salut tout le monde

Pour les newbies et même les autres il y a un trés bon script de sauvegarde RSNAPSHOT (http://rsnapshot.org)

Il permet de faire des sauvegardes incrémentiels, il utilise rsync, et crée des "liens durs". De plus vous pouvez faires des sauvegardes de serveur distant et ainsi rendre un serveur dédié aux sauvegardes.

Le problème avec mysqldump -u root --all-databases > alldatabases.sql est que si vous avez plusieurs clients sur votre serveur il mélange toutes les bases de tous les clients.

donc j'aime bien le principe du genre :
for i in $RSLT_CMD; do
#echo "mysqldump --opt --user=$MY_USER --password=$MY_PASSWD $i >$PATH2BACKUP/$i"
mysqldump --opt --user=$MY_USER --password=$MY_PASSWD $i >$PATH2BACKUP/$i$DATE.sql 2>/dev/null


si vous utilisez cron moi je préfère créer un fichier .my.cnf dans /root/ et ainsi ne pas mettre l'option -p rootpassword

mettez simplement dans le fichier /root/.my.cnf
[client]
user = root
password = <rootpassword>

biensure changez <rootpassword> par le vrai mot de passe mysql de root :)

Voila, si ça peut aider

Pascal
pascal69
Matelot
Matelot
 
Messages: 2
Inscrit le: 08 Jan 2005 11:01

Messagepar jibe » 08 Jan 2005 12:39

Salut,

Argenlos n'est pas encore passé ce matin, sinon il aurait certainement indiqué que, depuis son dernier post sur ce topic, il a très largement amélioré ce script qui est devenu une véritable contrib de sauvegarde.

Désolé, Argenlos, de t'avoir devancé pour cette annonce :wink:

Et merci, pascal69 : ça ne veut pas dire que tes infos sont inintéressantes, au contraire, mais c'est pour être plus exhaustif :wink:
"Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire" (Albert Einstein)

Autrefois, l'Etat défendait des valeurs. Maintenant, il défend des profits... (Anne Haunnime)
Avatar de l’utilisateur
jibe
Amiral
Amiral
 
Messages: 4366
Inscrit le: 17 Oct 2003 00:00
Localisation: Haute Savoie

Messagepar pascal69 » 08 Jan 2005 17:04

Lol pas de pbm :)

Et sinon je suis du 74 moi aussi, vers La roche sur foron :)

Et la il y a de la neige c'est cool

@++++
pascal69
Matelot
Matelot
 
Messages: 2
Inscrit le: 08 Jan 2005 11:01


Retour vers E-Smith / SME Server

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron