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.
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.
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.
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.
La classe proposée ici peut être appelée de la manière ci-dessous :
Vous pouvez ajouter une sécurité supplémentaire en restreignant les IP autorisées à utiliser le compte FTP.
Par exemple, si vous utilisez ProFTPd :
RSS | Informations |