Dans cette partie du tutoriel, je vous propose deux scripts PHP qui vous permettront la suppression de fichiers de sauvegarde de façon automatique en utilisant une tâche Cron, afin d'éviter d'atteindre toute limite de stockage qui vous est impartie sur l'espace d'hébergement que vous utilisez lors des transferts via FTP de vos sauvegardes de serveur à serveur.
La procédure est la même que dans la section "Sauvegarde avancée en mode PERL (sauvegardes automatiques)" à propos du lancement de la tâche Cron qui exécutera le script PHP.
- Afin d'éviter toute modification de votre part dans les scripts, je vous invite à créer, sur votre espace d'hébergement à l'endroit que vous jugez convenable pour vous, un dossier nommé "backup" dans ce dossier vous allez créer un autre dossier, qui se nommera lui "backupext", puis vous allez y glisser le script "backup_delete.php" suivant vos besoins et le fichier "index.html" dans le dossier "backup" après l'avoir paramétré selon vos besoins :
- (Script_1_gz.rar) Ce premier script PHP est fonctionnel, je l'ai testé personnellement, je l'ai juste modifié pour nos besoins, il supprimera tous les X fois, selon la tâche Cron que vous avez configuré, les fichiers de sauvegardes compressés qui ont comme extension .gz, il est bien évident que vous devez avoir configuré pour vos sauvegardes dans la partie "Configuration de MySqlDumper" de ce tutoriel la compression de celle-ci, voir le cas n°2 de cette capture.
- (Script_2_gz_sql.rar) Ce deuxième script que je n'ai pas réussi à faire fonctionner sur mon serveur, mais qui fonctionne sur d'autres après test de Simon, permet quant à lui exactement la même action que le précédant, si ce n'est qu'il supprimera aussi en plus des fichiers de sauvegarde en .GZ, les fichiers ayant une extension en .sql (sauvegardes non compressées donc).
- Une fois le script choisi il vous faut indiquer en éditant le fichier "backup_delete.php" que vous trouverez dans l'archive du script sélectionné, à l'aide de la plus part des éditeurs de texte comme notepad ou mieux notepad++ que vous trouverez ICI, la ligne suivante dans le fichier selon la version choisie:
Script 1:
Code:
suppression( "backupext" , "gz" , "259200" );
Script 2:
Code:
suppression( "backupext" , array("gz","sql") , "259200" );
- Changer la valeur en rouge, cette valeur est le temps en secondes de l'ancienneté de vos fichiers qui seront effacés, attention à ne pas vous tromper, la valeur par défaut indique que tous fichiers ayant plus de 3 jours d'ancienneté se verront effacés automatiquement dés lors que le script sera exécuté, dans notre cas en utilisant une tâche Cron.
- Quelques petits exemples de valeurs, après à vous de jouer de la calculette:
- 3600 --> 1 heure
- 86400 --> 1 jour
- 604800 --> 7 jours
- 1296000 --> 15 jours
- Une fois la valeur modifiée, si nécessaire, enregistrez le fichier "backup_delete.php" et uploadez-le dans votre dossier "backup" que vous avez précédemment créé si vous avez bien suivi mes directives, uploadez aussi le fichier "index.html" dans ce même dossier, mais aussi dans le dossier qui se nomme "backupext" qui va contenir vos sauvegardes, une fois cela fait, vous devriez voir comme arborescence ceci, si comme moi vous avez décidé de placer le dossier "backup" à la racine de votre espace d'hébergement :
- Dans mon exemple j'ai donc créé mon dossier "backup" à la racine de mon espace d'hébergement comme vous pouvez le constater sur la capture.
- J'ai créé aussi mon dossier "backupext" qui contiendra les sauvegardes qui seront transférées dans ce dossier, je l'ai CHMODE en "755".
- Comme vous pouvez le voir mon script est en place après sa modification pour le changement de valeur correspondant au temps de vie de mes fichiers de sauvegardes, c'est lui qui exécutera la suppression des fichiers de sauvegarde qui sont stockés dans le dossier "backupext".
- J'ai placé le fichier "index.html" comme vous pouvez le constater et je l'ai aussi mis dans le dossier "backupext" (!! Très IMPORTANT !!).
- Comme tout précédemment dans la partie de ce tutoriel "Sauvegarde avancée en mode PERL (sauvegardes automatiques)" nous allons donc ajouter une tâche Cron de façon à ce que le script "backup_delete.php" s'exécute automatiquement à chaque fois que vous le désirez, pour ce faire suivez les mêmes instructions que précédemment en passant par Cpanel ou un autre panel, ou bien des services gratuits indiqués plus bas :
-----------------------------------------------------------------------------------------------

Dans cette partie du tutoriel, je vais vous expliquer comment exécuter de façon automatique des sauvegardes quotidiennes, mais vous pourrez paramétrer la tâche de façon à ce qu'elle puisse se lancer de façon hebdomadaire, ou mensuelle, etc...
- Dirigez-vous dans votre Cpanel et allez directement dans le module "Avancé", puis cliquez sur l'option "tâches Cron" voir capture:
- Une fois que vous avez cliqué sur ce lien, vous aurez normalement deux choix, j'ai opté pour ce tutoriel pour le mode "Standard" car plus simple pour le réglage du moment de l'exécution de la tâche Cron.
- Une fois le bouton "Standard" cliqué vous devriez tomber sur cette nouvelle page, suivez attentivement les indications ci-dessous elles sont importantes pour la bonne exécution de vos sauvegardes !
- Pas obligatoire, mais ici indiquez l'email qui doit recevoir les notifications d'exécution des tâches Cron, utile pour les débuts pour voir si tout se passe bien.
- Dans ce champ indiquez au tout début la commande "wget" (sans les guillemets) et faites un espace puis collez l'url du chemin de votre fichier "backup_delete.php", vous avez un exemple plus bas...
- Je veux que la suppression automatique se fasse tous les jours sans exception à 0h10 (normal le temps que la sauvegarde prévue à 0h00 est le temps de se finir), donc dans ce menu déroulant je sélectionne "Chaque mois" pour que ma tâche Cron se lance les douze mois de l'année.
- Ici je sélectionne "chaque jour de la semaine" car je désire que cela se fasse tous les jours de la semaine.
- Idem que la partie au-dessus, vu que je veux que la tâche Cron se lance tous les jours.
- Dans ce menu déroulant je précise l'heure à laquelle la tâche doit se lancer, donc pour mon exemple je sélectionne "0 = 12 AM/Minuit".
- Et enfin dans ce menu déroulant je choisi les minutes (donc 10mns dans mon exemple), une fois cela fait, vérifiez bien vos paramètres et cliquez en bas sur le bouton "Enregistrer Crontab".
Si tout est bien paramétré et que les fichiers sont dans les bons dossiers sur votre espace de téléchargement, les suppressions se feront donc automatiquement à la fréquence que vous avez choisie.
-----------------------------------------------------------------------------------------------
Service Gratuit
Ou en passant par des services gratuits tels que (nécessite une inscription):
-----------------------------------------------------------------------------------------------
- Une fois votre Cpanel configuré du coté des délais de lancement de la tâche Cron, ou le service proposé par un site tiers pour l'exécution de vos tâches Cron, il ne vous suffit plus qu'à indiquer l'url ou se trouve le script PHP sans oublier de faire précéder cette url de wget en les espacant, dans mon cas la ligne de commande pour exécuter la tâche Cron est la suivante:
Code:
wget http://ombre.fr/backup/backup_delete.php
- Et voila la suppression de vos fichiers avec une ancienneté au delà de ce que vous avez fixé lors du paramétrage du fichier "backup_delete.php" plus haut, se fera automatiquement, ce qui évitera toutes surcharge de l'espace disque alloué.
A savoir: Si vous décidez de changer le nom du dossier "backup" ou du fichier "
backup_delete.php" il vous faudra modifier l'url indiqué dans votre tâche Cron après
wget afin qu'elle puisse pointer sur le bon chemin ! Si vous décidez de changer le nom du dossier de destination de vos fichiers de sauvegardes, il vous faudra aussi modifier la ligne de commande du fichier "
backup_delete.php" suivante en changeant la valeur en rouge par le nom du dossier renommé par vos soins:
Script 1:
Code:
suppression( "backupext" , "gz" , "259200" );
Script 2:
Code:
suppression( "backupext" , array("gz","sql") , "259200" );
Cette partie du tutoriel est maintenant finie
Si l'un des deux scripts posent problèmes merci de me prévenir.
Liens sociaux