Nouveau tuto en utilisant RSYNC ici : https://www.webrankinfo.com/forum/t/article-beta-sauvegarder-un-dedie-part-ii.95025/ (plus sécurisé...)
Bonsoir,
Ce soir , ayant eu un disque dur USB en plus sur mon serveur j'ai décidé de me lancer dans la rédaction d'un script basique (et compréhensible) de backup pour un serveur dédié
On a par exemple le dossier /backup/
Le script va supprimer le dossier de sauvegarde vieux de deux jours
Le script va créer un répertoire dans le dossier backup a la date du jour (ex : 13012008)
Le script va créer une archive .tar du dossier /var/www (possibilité de faire une boucle et un tar par site assez facilement )
Le script va faire un dump sous la forme nom_table.sql.gz pour chaque table mysql
Les sauvegardes mysql et des sites étant bien sur placée dans le répertoire a la date du jour
Si vous avez des améliorations ou des demandes n'hesitez pas
Pour la mise en place
Moi je l'ai mis dans : /etc/save/save
Il faut faire :
chmod +x /etc/save/save (pour qu'il soit executable)
chown root /etc/save/save (seul root peut modifier le fichier)
chmod 700 /etc/save/save (seul root peut voir le fichier)
Moi je planifie ca tout les jours a 3h du matin, pour ca on fait :
crontab -e
Puis on ajoute la règle :
00 3 * * * sh /etc/save/save
Ron
Bonsoir,
Ce soir , ayant eu un disque dur USB en plus sur mon serveur j'ai décidé de me lancer dans la rédaction d'un script basique (et compréhensible) de backup pour un serveur dédié
On a par exemple le dossier /backup/
Le script va supprimer le dossier de sauvegarde vieux de deux jours
Le script va créer un répertoire dans le dossier backup a la date du jour (ex : 13012008)
Le script va créer une archive .tar du dossier /var/www (possibilité de faire une boucle et un tar par site assez facilement )
Le script va faire un dump sous la forme nom_table.sql.gz pour chaque table mysql
Les sauvegardes mysql et des sites étant bien sur placée dans le répertoire a la date du jour
Si vous avez des améliorations ou des demandes n'hesitez pas
Code:
#!/bin/bash
echo Script de sauvegarde ...
#
# Sauvegarde - script basique
# Fontenay Ronan
# Aide pour la rédaction de ce script : http://snippets.prendreuncafe.com/snippet/67
###### Debut Initialisation ######
#user mysql :
strMysqlUser=""
#mot de passe mysql de l'user:
strPassword=""
#dossier ou on stockera les backups
#/!\ Penser a mettre un slash de chaque coté : ex : /media/backup/
repTravail="/backup/"
dateActuelle=$(date +%d%m%Y)
datePassee=$(date --date '2 days ago' +%d%m%Y)
repTravailActuel=$repTravail$dateActuelle
echo - Suppression du repertoire $repTravail$datePassee
rm -rf $repTravail$datePassee
echo -----------------------------------------------------
echo - Création du repertoire $repTravailActuel
mkdir $repTravailActuel
echo -----------------------------------------------------
echo - Package de /var/www/ en $repTravailActuel/www.tar
tar -cf $repTravailActuel/www.tar /var/www/*
echo -----------------------------------------------------
echo - Backup MYSQL
echo -----------------------------------------------------
listDatabase=$(mysql --user=$strMysqlUser --password=$strPassword --exec="SHOW DATABASES;" | tail -n +2)
#dump de chaque base dans un fichier
for lineDatabase in $listDatabase
do
echo Debut du dump de la base $lineDatabase vers $repTravailActuel
mysqldump --user="$strMysqlUser" --password="$strPassword" "$lineDatabase" | gzip > "$repTravailActuel"/"$lineDatabase".sql.gz
echo Dump compressé dans $repTravailActuel/$lineDatabase.sql.gz
echo -----------------------------------------------------
done
echo Fin de la sauvegarde
exit 0
Pour la mise en place
Moi je l'ai mis dans : /etc/save/save
Il faut faire :
chmod +x /etc/save/save (pour qu'il soit executable)
chown root /etc/save/save (seul root peut modifier le fichier)
chmod 700 /etc/save/save (seul root peut voir le fichier)
Moi je planifie ca tout les jours a 3h du matin, pour ca on fait :
crontab -e
Puis on ajoute la règle :
00 3 * * * sh /etc/save/save
Ron