IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

[Php] Suppression de fichier ancien, mais pas tous


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 55
    Points : 40
    Points
    40
    Par défaut [Php] Suppression de fichier ancien, mais pas tous
    Bonjour,

    J''ai créé un script pour faire un dump sql vers un fichier.

    Ce script est appelé tous les jours par une tache cron.

    Je voudrais conserver les 21 derniers jours et 1 dump par semaine pour les plus anciens.

    Comment faire ?

    script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?
    //Edition des variables
    $serveur = 'localhost';
    $id = 'XXX';
    $base = 'XXX';
    $mdp = 'XXX';
    $file = date("Ymd-Hi").'-sql-backup.sql';
     
    //Commande
    system("/usr/bin/mysqldump --host=".$serveur." --user=".$id." --password=".$mdp." ".$base." > ".$file);
    ?>

  2. #2
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Voici l'algorithme que j'appliquerai :

    Le mieux est de mettre les vieilles sauvegardes (plus de 21 jours) dans un dossier à part, nommé par exemple "old_backup".

    - Tu listes tes fichiers par ordre de création décroissante (ou par nom décroissant car tu as eu la bonne idée de les nommer de tel façon que ça revient au même)
    - Tu boucles sur l'ensemble de tes fichiers :
    - Si ça fait moins de 21 jours, tu le laisses tranquille tu ne fais rien
    - Si ça fait plus de 21 jours : tu regardes s'il y en a déjà un de cette semaine là dans ton dossier "old_backup", si ce n'est pas le cas tu le transfères dans ce dossier, sinon tu le supprimes
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 55
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par Spartacusply Voir le message
    Si ça fait plus de 21 jours : tu regardes s'il y en a déjà un de cette semaine là dans ton dossier "old_backup", si ce n'est pas le cas tu le transfères dans ce dossier, sinon tu le supprimes
    Merci pour ton aide,

    l'idée du dossier est pas bête du tout.

    Par contre comment "regarder" s'il y a un fichier de la semaine ?

  4. #4
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Idem, tu liste les fichiers du dossier et tu compares leur date avec le fichier courant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function sameYearAndWeek($date1,$date2) {
          return (date('YW',strtotime($date1)) == date('YW',strtotime($date2)));
    }
    Si cette fonction retourne true, tu peux en déduire qu'ils sont de la même semaine.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 55
    Points : 40
    Points
    40
    Par défaut
    Ok,

    Je vais réaliser dans ce sens !

    Je reviendrais mettre mon script une fois terminé !

    Merci

Discussions similaires

  1. [XL-2010] XLAM-Macros pour plusieurs fichiers mais pas tous
    Par vbhttb dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 29/01/2013, 00h05
  2. suppression fichier (copy mais pas uname)
    Par Fench dans le forum Langage
    Réponses: 4
    Dernier message: 14/12/2009, 16h05
  3. Réponses: 1
    Dernier message: 08/04/2008, 13h46
  4. Réponses: 11
    Dernier message: 09/04/2006, 14h06
  5. Réponses: 7
    Dernier message: 12/08/2005, 09h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo