Articles - Logiciel & scripts

Sauvegarde site perso FREE (v3)

  |   2110  |   Poster commentaire  |  Logiciel & scripts

Version pour Windows --> Voir la v2


Version modifiée OVH --> Voir la v4



Objectif



Suite au démantèlement hardware de mon serveur orange (qui sera recyclé dans le cadre d'un futur projet de webradio), c'est mon serveur NAS cerise qui dorénavant devra sauvegarder ce site internet.

Or le seul problème c'est que mon serveur orange fonctionnait sous Windows XP SP3, mon serveur cerise lui fonctionne sous Ubuntu Server, c'est à dire Linux. Ce qui signifie que les scripts Batch/DOS et WinSCP que j'avais écrits (en v2) ne pourront pas être portés sur mon nouveau serveur.
Par conséquent j'ai dû le réécrire en shell linux (Bash), d’où l’apparition d'une version 3. Il est nettement plus simplifié que l'autre et il y en a plus qu'un seul !

Comment se déroule le script ?



Il a le même objectif et se déroule de la même façon que le script v2 coté Windows. Le seul changement étant que chaque sauvegarde se trouve dans un sous-répertoire à part (horodaté) et dans chaque sous-répertoire les fichiers sont nommés de manière uniforme.

Le script se déroule toujours en 3 PHASES :

  • 1 - On récupère la base de données MySQL depuis la page backup de Free avec wget.
  • 2 - On récupère les fichiers désirés par protocole FTP avec wget.
  • 3 - On compresse les fichiers (ceux récupérés par protocole FTP avec wget) dans un tar.gz.


Au final chaque lancement du script (instance de "job") se termine par 3 fichiers :

  • un files.tar.gz contient tout ce qui a été aspiré du site (via wget).
  • un sql_database.gz contient la base de données exportée (SQL).
  • un backup.log le fichier journal détaillé.


Évidemment ces noms sont modifiables dans le script... le script étant en clair.

Téléchargement



Le script modifié est disponible à cette adresse : http://jonathan.dupre.free.fr/scripts/v3/backup_free.sh

Personnalisation



Ce script est à adapter pour chez vous, n'oubliez pas de modifier les point suivants :

  • Ligne 23 : le dossier de stockage de vos sauvegardes (ne pas oublier le dernier slash / à la fin !)
  • Lignes 33, 34 et 35 : vos identifiants Free (mot de passe FTP et mot de passe base de données)


En crontab :

Code BASH :
 
# Script de sauvegarde du site internet free
30 01 * * * /usr/local/bin/backup_free.sh > /dev/null 2>&1
 


Les sauvegardes :

Code BASH :
root@cerise:/nas/sauvegardes/site# ll
total 16K
10101993 drwxr-xr-x 4 jonathan jonathan 4,0K 2013-04-12 02:32 ./
 9699329 drwxr-xr-x 7 jonathan jonathan 4,0K 2013-04-09 23:37 ../
10101995 drwxr-xr-x 2 root     root     4,0K 2013-04-10 10:42 2013-04-10_02h16m01s/
10101998 drwxr-xr-x 2 root     root     4,0K 2013-04-12 02:32 2013-04-12_01h30m01s/
 


Contenu d'une sauvegarde :

Code BASH :
root@cerise:/nas/sauvegardes/site/2013-04-12_01h30m01s# ll
total 1,6G
10101998 drwxr-xr-x 2 root     root     4,0K 2013-04-12 02:32 ./
10101993 drwxr-xr-x 4 jonathan jonathan 4,0K 2013-04-12 02:32 ../
10101996 -rw-r--r-- 1 root     root     2,1K 2013-04-12 02:32 backup.log
10102608 -rw-r--r-- 1 root     root     1,6G 2013-04-12 02:32 files.tar.gz
10102000 -rw-r--r-- 1 root     root     274K 2013-04-12 01:30 sql_database.gz
 


Purge automatique des sauvegardes de plus de 15 jours en crontab :

Code BASH :
# Commande de purge des sauvegardes du site free de plus de 15 jours.
00 03 * * * find /nas/sauvegardes/site/ -type d -ctime +15 -exec rm -r {} \; > /dev/null 2>&1
 


Historiques des versions



Version 1.0c (du 28 avril 2015) : Améliorations faites :

  • Sortie du script si problème avec les répertoires (rajout de "exit 2" et "exit 3")
  • Corrections de fautes diverses


Version 1.0b (du 20 mars 2014) : Améliorations faites :

  • Le script supporte la différentiation des mots de passe si vous en avez un différent entre l'accès FTP et le serveur MySQL.


Version 1.0a (du 09 avril 2013) : Version INITIALE. Limitations connues / Améliorations à faire :

  • Il manque des tests pour le rendre plus robuste
  • Le mot de passe en clair qui apparait dans la ligne de commande de wget si on fait un "ps -ef".


Améliorations / Autres



Chez moi le script se lance sous root, ce qui n'est pas top. Il est évidemment possible de le lancer avec n'importe quel utilisateur du moment où ce dernier possède les droits d'écriture dans le dossier des sauvegardes.

Conclusion



Testé et approuvé sous Ubuntu Server 13.10. :top