Sauvegarder régulièrement ses médias en utilisant FullSync

L’opération de sauvegarde de IMG en local peut être fastidieuse. Une solution est d’automatiser cette tâche en utilisant un logiciel de backup.

Sauvegarder

Lorsqu’on administre un site SPIP, il est recommandé de faire des sauvegardes régulières (pour recupérer son site en cas de crash serveur, d’incendie, de fermeture de compte chez un gratuit, de piratage, ...)

Pour effectuer une sauvegarde complète, il faut :
-  récupérer les données de la base en récuperant le fichier dump.xml
-  récuperer tous les médias en FTP.

Article complet : Sauvegarder vos données

Sauvegarder avec FullSync pour SPIP

L’opération de récupération des médias en local peut être fastidieuse.
Une solution est d’automatiser cette tâche en utilisant un logiciel de backup.

Nous allons utiliser le logiciel libre FullSync (disponible en .exe pour windwos, en .jar pour les autres OS).
-  Lire sa notice sur framasoft
-  Télécharger FullSync

L’avantage de ce logiciel est :
-  de supporter le FTP
-  de permettre une sauvegarde différentielle
-  de supporter les expressions régulières pour filtrer ce que l’on veut sauvegarder
-  de programmer les échances des sauvegardes

Paramétrer FullSync - Créer un nouveau profil

Créer un nouveau profil

-  Source : Les parametres FTP de votre site en ajoutant le chemin de répertoire IMG dans lequel SPIP place tous les médias.
-  Destination : L’endroit sur votre disque dur pour sauver les fichiers (utiliser le bouton « ... » pour parcourir)
-  Type : Backup pour sauvegarder les médias
-  Scheduling : Si vous voulez programmer les sauvegardes (voir après)
-  Ruleset :Bien cocher l’option Subdirectories pour récupérer les sous-répertoires et ajouter la regex cache.* pour exclurer les dossiers d’images temporaires du type cache-34x34 si vous utilisez les options graphiques de SPIP (vignettes, ...)

Paramétrer FullSync - Programmer les sauvegardes

Ici, par exemple tous les 3 de chaque mois mais si vous préférez tous les mardis ...

Paramétrer FullSync - Lancer une sauvegarde

Dans l’écran principal, appuyer sur la flèche verte ... c’est parti !

Une liste des fichiers distants apparait. En bas vous avez le choix de tout récupérer (everething) ou seulement récupérer les nouveaux fichiers (change only)

Lancer, attendre (un peu long car le FTP ne semble pas multi-thread) ... et vos données sont sauvegardées en local. ouf !

Voir aussi

D’autre part, pour sauvegarder automatiquement la base de données il existe le plugin sauveauto. On pourra d’ailleurs utiliser de nouveau FullSync pour récupérer les sauvegardes de la base de données.

FullSync ne semble plus en développement. Si jamais quelqu’un a du courage pour reprendre le projet et son code source en java ...

Discussion

8 discussions

  • Je découvre le logiciel ! C’est ce qu’il me fallait !

    J’ai juste une petite question sur la programmation de la tâche !
    Il faut que le PC soit allumé au moment voulu ça c’est évident mais il faut également que le logiciel soit démarré au moment voulu. Il faudrait donc que Fullsync soit lancé comme service au démarrage et ça n’a pas l’air d’être le cas !

    Je m’explique. Je sais par exemple que mon PC est allumé tous les dimanches matins. J’aurais aimé faire la sauvegarde à ce moment là. Mais si je dois penser à cliquer pour lancer l’application, au final, je fais une sauvegarde manuelle.

    Une idée ?

    Merci d’avance !

    Répondre à ce message

  • 3

    Si FullSync n’est plus développé, pourquoi ne pas utiliser CobianBackup ?
    http://www.cobian.se/

    Petit logiciel performant et facile à configurer, sous GNU depuis peu.

    Cordialement, Henri

    • Je ne connaissais pas CobianBackup ... à tester donc et pourquoi pas proposer votre contrib’ sauvegarde de spip avec CobianBackup si l’essai est concluant ?

      détail : FullSync conserve l’avantage d’être multi-plate forme alors que CobianBackup semble uniquement disponible sous Windows.

    • Salut !
      Il faut que j’apprene à manipuler Spip mais je me sers déja de linux et je fait mes backup comme ça :
      http://fmueth.free.fr/blog/index.php/2006/10/21/8-sauvegarde-ftp

      c’est un bash qui permet de faire le backup de votre site base de donnée y compris et en casi incrémental (c’est pas du rsync mais ça a le mérite de marcher même chez free) couplé à fcron ça marche impec et tout est automatisé ;)

      Le script est sous gpl donc à faire tourner !

    • Pourquoi ne pas utiliser Cobian backup ?

      Parce qu’il ne supporte pas le SFTP. Dommage.

    Répondre à ce message

  • Joseph Tux

    Bonjour,
    un peu trop pressé..

    Désolé, j’ai omis de signer mon post ( sur rsync )

    Répondre à ce message

  • Sous Linux, BSD ( et je crois OsX ) il existe rsync depuis logtemps, sans java.

    Il peut tout faire très finement, via FTP avec ou sans SSH, très simplement en ligne de commande ou en script.

    Il est très bien documenté, et très éprouvé ( par l’âge ;) De nombreuse documentations et scripts existent dans la littérature et sur le web

    exemple : en ligne de commande

    rsync -a -e ssh --exclude-from ${a_exclus} --delete ${r_a_source} ${r_actuel} 

    Que j’ai mis en script, avec sauvegardes incrémentales localement ( artisanales et lourdes, il ya surement mieux à faire )
    ( Il y a aussi des améliorations à faire, mais il fonctionne sans problème. Amélioration à faire : ne pas avoir à entrer la passephrase gpg avec SSH2 pour qu’il soit lancé par cron de façon transparente )

    cat le_site_bkp.sh

    #! /bin/bash -
    echo "$0";
    ## Rappel: FAIRE un dump avant la sauvegarde
    invite1="LA BASE DE DONNÉE A-T-ELLE été sauvegardée par le webmestre ?"
    invite2="Continuer = oui - Arréter maintenant = non: "
    echo "$invite1"
    read -p "$invite2" reponse;
    case $reponse in
            o|O) echo "$(basename $0) va être exécuté";;
            n|N) echo " Sauvez la base maintenant "; exit;;
            *) echo "$reponse n'est pas une réponse valide. "; exit;;
    esac
    
    # TOP DEPART
    debut=<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGF0ZSArJXM8L2NvZGU+"></span>
    
    ## dépendances:
    # LE FICHIER D'EXCLUSION: 'home/le_site_spip/.rsync/lesite_spip_bkp/exclus.rsync'
    # cp , rsync , find, ssh et la phrase de passe
    
    #+ - + - + - + - + - + - + - + -
    #       A Rsync de FAI sur /actuel/ ( = mise à jour réelle rapide )
    #+ - + - + - + - + - + - + - + -
    
    #Déclarations:
    rsync_tmp='/tmp/'
    rsync_local=${rsync_tmp}rsync--version-local
    rsync_FAI=${rsync_tmp}rsync--version-FAI
    
    ## Lancement du programme principal
    principal
    
    ############################################
    
    #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-
    ## PROGRAMME PRINCIPAL
    function principal ()
    {
    #######
    
    #       DÉCLARATIONS
    r_a_source='utilisateur@lesite_spip.info:./';
    r_actuel='/home/le_site_spip/lesite_spip.info/SAUVEGARDES/actuel/';
    
    ### TODO fichier d'exclusion des sauvegardes ( caches ) /spip/local/:
    a_exclus='/home/le_site_spip/.rsync/lesite_spip_bkp/exclus.rsync'
    #       DÉCLARATIONS:
    r_backup='/home/le_site_spip/lesite_spip.info/SAUVEGARDES/backup/';
    v_date="$(date +_%Y_%m_%d__%Hh%M)";
    v_b_extension="${v_date}.backup";
    #       Déclarations:
    r_copies='/home/le_site_spip/lesite_spip.info/SAUVEGARDES/copies';
    r_destination="${r_copies}/${v_date}";
    r_effacement="${r_destination}/";
    
    
    #######
    #       COMMANDE rsync
    ## Cette commande efface ou remplace sans vergogne les fichiers supprimés ou modifiés
    ## Cette commande doit enregistrer les fichiers dump ( base de données MySQL )
    ## Il ne faut donc pas exclure le répertoire tmp ni l'ensemble des fichiers dump
    ## Les fichiers "cache" ne devraient pas être sauvegardés
    echo
    echo "2 Exécution de rsync"
    rsync -a -e ssh --exclude-from ${a_exclus} --delete ${r_a_source} ${r_actuel} || (echo ERREUR de la commande: $! ; exit 1 );
    
    #+ - + - + - + - + - + - + - + -
    #       B Copie locale vraie de .../actuel/ sur .../backup/ avec renommage ( date )
    #+ - + - + - + - + - + - + - + -
    echo "" ;
    echo "          ETAPE B"
    echo "3 Copie de ${r_actuel}* "
    echo "vers ${r_backup}"
    echo "Les fichiers remplacés prennent l'extension: ${v_b_extension}" ;
    cp -au -S ${v_b_extension} ${r_actuel}* ${r_backup} || ( echo "ERREUR de la commande $!"; exit 2);
    
    #+ - + - + - + - + - + - + - + -
    #       C PSEUDOS SAUVEGARDES INCREMENTALES DU REPERTOIRE "actuel"
    #+ - + - + - + - + - + - + - + -
    echo "" ;
    echo "          ETAPE C"
    echo "4 Création du répertoire: $r_destination"
    ###TODO         SYNTAXE D'ERREUR À VÉRIFIER
    mkdir "$r_destination" || ( echo "erreur $!" ; exit 3) ;
    
    #       B Création de L'IMAGE du site précédent la mise à jour:
    #       L'ensemble du site est recréé par des liens symboliques sur .../actuel/
    #       dans ce répertoire (nommé par la date de la sauvegarde)
    echo
    echo "5 Création récursive des liens physiques "
    echo "de        ${r_backup}*"
    echo "sur       ${r_destination}"
    echo "Avec les noms actuels"
    #echo "cp -la   ${r_backup}* ${r_destination}"
    cp -la ${r_backup}* ${r_destination} || (echo "ERREUR DE LA COMMANDE: $!" ; exit 4 );
    
    # TOP FIN:
    fin=<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGF0ZSArJXM8L2NvZGU+"></span>
    
    echo -e "\a\n\n\tFIN de <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+YmFzZW5hbWUgJDA8L2NvZGU+"></span>\n\a"
    
    # DUREE:
    echo "DUREE totale: $(($fin - $debut)) secondes";
    }

    Répondre à ce message

  • 2

    bonjour a tous je me lance mais .............

    d’abord je suis chez free ; j’ai donc paramétrée comme ça :

    Sauvegarde_spip_bachant (an error occured comparing filesystems.)
    destination : c :\Documents and Settings\Administrateur\Bureau\Sauvegarde_spip_bachant

    j’ai une erreur : an exception occurend : null

    java.lang.NullPointerException
    at java.util.Hashtable.get(Unknown Source)
    at net.sourceforge.fullsync.FileSystemManager.createConnection(FileSystemManager.java:43)
    at net.sourceforge.fullsync.impl.AbstractTaskGenerator.execute(AbstractTaskGenerator.java:95)
    at net.sourceforge.fullsync.Synchronizer.executeProfile(Synchronizer.java:45)
    at net.sourceforge.fullsync.ui.MainWindow._doRunProfile(MainWindow.java:626)
    at net.sourceforge.fullsync.ui.MainWindow.access$400(MainWindow.java:52)
    at net.sourceforge.fullsync.ui.MainWindow$25.run(MainWindow.java:604)
    at java.lang.Thread.run(Unknown Source)

    On peu m’orienter ; merci

    • erational

      C’est possible, les erreurs du logiciel ne sont pas très parlantes.

      Dans 80% des cas, il s’agit des paramètres du FTP qui ne sont pas corrects. Bien vérifier et faire des tests.

      Les adresses FTP doivent du type :
      protocole ://nom_hote/chemin/

      Exemple :
      -  ftp://195.111.129.133/public_html/IMG/
      -  ftp://ftp.foo.org/www/IMG/

      Dans les autres cas, il s’agit d’un problème de connection ou alors le serveur FTP est inaccessible.

      bonne chance !

    • alors peu etre que stephane peu m’aider vu que ci dessous ; il a reussie chez free

    Répondre à ce message

  • 1
    Barnbast

    Salut à tous,
    Petite question, sauriez-vous m’expliquer comment sauvegarder un disque dur, du genre DOSSIERS (E :), partition du disque dur principal, sur un disque dur externe SAUVEGARDE (F :) ?
    Je viens de télécharger FullSync et j’avoue ne rien y comprendre...
    Merci de votre aide.

    • Barnbast

      Merci quand même, la réponse m’a été apportée sur le forum de Framasoft grâce à ce lien

    Répondre à ce message

  • Stéphane

    A noter que cela semble fonctionner de serveur à serveur. Je viens de faire un test sur Free et ça à l’air ok.

    Répondre à ce message

  • Arghh, j’arrive pas à l’utiliser sur un 60GP de chez OVH.
    Quelqu’un aurait -il essayé ?

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom