Utilitaires
Scripts
Divers
Jeux
Rechercher
Quillevere.net
Paradigmes informatiques

Sauvegarder son site Internet depuis un FTP ou un Webservice

03/08/2021

Lorsque l'on administre un site Internet, il est nécessaire de planifier une récupération régulière du contenu ajouté par les utilisateurs, afin de pouvoir le restaurer en cas de problème. Cela concerne aussi bien la base de données que les fichiers envoyés.

Voici une classe PHP classe_sauvegarde.php(12 Ko) qui propose 2 façons de télécharger les fichiers d'un site Internet : par une URL ou par FTP/FTPS. Celles-ci peuvent être utilisées conjointement.

Un fichier de log peut être paramétré afin d'être généré à chaque exécution (avec conservation des N derniers fichiers créés).

Il convient, une fois le script d'appel mis en place, de réaliser une planification pour le lancer automatiquement à la fréquence désirée.

Prérequis

Il faut disposer d'une version de PHP >= 7.2 et activer les extensions cURL et FTP.

Aucune dépendance à une bibliothèque tierce n'est requise.

Récupération des fichiers en FTP/FTPS

Vous pouvez utiliser un accès FTP, en précisant l'adresse du serveur, le port, l'identifiant et le mot de passe. Une liste de chemins sources et destination est à donner, afin d'indiquer le ou les chemins distants à lire et leurs cibles de copie.

Tous les fichiers contenus dans les répertoires et sous-répertoires de chaque source seront traités. Si un fichier existe déjà dans le répertoire destination, le différentiel est réalisé depuis la date de modification, afin d'éviter de télécharger systématiquement tout le site. Ainsi, seule la dernière version est conservée, et la synchronisation est beaucoup plus rapide.

Les fichiers et répertoires locaux qui n'existent plus sur le dossier FTP seront supprimés afin d'assurer une synchronisation parfaite.

Récupération d'un fichier depuis un service WEB

Si vous disposez d'une adresse Web contenant la dernière archive des données à télécharger, vous pouvez préciser cette adresse et le programme récupérera le fichier et conservera les N dernières versions de celui-ci.

Remarque : il faut que votre clé d'utilisateur, restreignant l'usage, soit dans l'adresse indiquée.

Exemple d'appel

La classe proposée ici peut être appelée de la manière ci-dessous :

require_once("classe_sauvegarde.php");

$sauvegarde=new Sauvegarde();

// Paramètres pour le log (facultatif)
$sauvegarde->setRepertoireLog('/log', 30);
   
$sauvegarde->execute(

    // Nom du site (pour information)
    'sauvegarde monsite.org'
   
    // Paramètres pour la récupération via web service
    , [
        'url'=>'monsite.org/web_service'
        , 'nb_sauvegardes'=>15
        , 'destination'=>'/volume1/sauvegardes/monsite/web_service'
        ]
   
    // Paramètres pour la récupération via FTP
    , [
        'hote'=>'1.2.3.4'
        , 'port'=>21
        , 'compte'=>'ident'
        , 'mdp'=>'passe'
        , 'ssl'=>true
        , 'liste'=>[
                ['source'=>'/monsite.org/public'
                , 'destination'=>'/volume2/sauvegardes/monsite.org/public'
                ]
            ]
        ]
    );

Sécurisation de l'accès au FTP

Vous pouvez ajouter une sécurité supplémentaire en restreignant les IP autorisées à utiliser le compte FTP.

Par exemple, si vous utilisez ProFTPd :

  • Éditez le fichier de configuration :
    nano /etc/proftpd/proftpd.conf
  • Ajoutez le code suivant en fin de fichier, en replaçant mon_utilisateur par l'identifiant du compte FTP et 10.11.12.13 par l'IP publique contactant le serveur FTP.
    <IfUser mon_utilisateur>
        <Limit LOGIN>
        Allow 10.11.12.13
        DenyAll
        </Limit>
    </IfUser>
  • Rédémarrer le service :
    systemctl restart proftpd
Dernière modification le 03/08/2021 - Quillevere.net

Commentaires

Aucune inscription n'est requise si vous souhaitez

Rechercher sur le site

fr en rss RSS info Informations