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

Linux Discussion :

la date de création/modification d'un fichier


Sujet :

Linux

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Points : 6
    Points
    6
    Par défaut la date de création/modification d'un fichier
    Bonjour,

    je découvre la programmation shell/bash et j'aimerais réaliser un script qui se déroulerait sur mon serveur web mutualisé.

    ce script parcourerait l'ensemble des fichiers xml d'un des dossiers du serveur, et ceux antérieurs à la date du jour -1.

    Mon problème est le suivant, je n'arrive pas à récupérer cette date dans une variable afin de la comparer.

    Comment faire ?

    D'avance merci à tous ceux qui m'aideront.

  2. #2
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    la commande shell que tu cherches est find (sans jeux de mots)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    find /chemin/ -type f -mtime +1 -print
    renvoi la liste des fichiers de plus de 1 jours (24heures en realitee) de tous les sous repertoires de chemin/

    par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find /pub/www/ -type f -name "*.xml" -mtime +1 -print
    y'a meme daystart comme option a la place de mtime pour definir une date au lieu de nombre de fois 24Heures.... option a ajouter a mtime

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find /pub/www/ -type f -name "*.xml" -daystart -mtime +1 -print

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    merci beaucoup pour la rapidité de la réponse !!

    je teste et te donne mon résultat d'ici demain matin !!

    encore merci

  4. #4
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    par contre fais attention au titre de ta question par contre....

    parceque c'est pas forcement la meme chose

    la date de creation/consultation/et modification d'un fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    TEST-FRSP:~/Documents/c # cat lsdates.c
    #define _POSIX_C_SOURCE 1
     
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
     
    /*
     * ce minisource permet juste de voir les vrais dates de
     * modification du fichier
     * d'acces au fichier
     * modification des parametres du fichiers
     *
     * l'auteur declare ce source libre de droit
    */
     
    static void printdate(char*, time_t);
    //fonction de formattage du format de la date et de l'heure pour
    //un affichage clair des lignes de texte
     
     
    //le programme doit recevoir en parametre le nom du fichier a analyser ou des fichiers a analyser
    int main(int argc, char *argv[])
    {
            int i ; // compteur d'arguments autrement dit de fichier a analyser
                    // sera aussi utiliser pour identifier sur quel fichier la boucle travaille
                    // a l'instant t
     
            for(i=1;i<argc;i++) //pour tout argument a la ligne de commande .....
            {
                    struct stat statbuf;
                    if(stat(argv[i], &statbuf) == -1 )
                    {
                            //genere une erreur proprement
                            perror(argv[i]);
                            continue; // mais passe directement a l'argument suivant
                                      // evidament car inutile de tanter de traiter un
                                      // argument invalide ce serai une perte de temps
                    }
                    printf("\n %s\n", argv[i]);
                    printdate("<= DERNIER ACCES" , statbuf.st_atime);
                    printdate("<= DERNIERE MODIFICATION" , statbuf.st_mtime);
                    printdate("<= DERNIERE MODIF DE CARACTERISTIQUE" , statbuf.st_ctime);
                    printf("\n");
            }
            return EXIT_SUCCESS;
    }
     
    static void printdate(char *s, time_t d)
    {
            struct tm *tm = localtime(&d);
            // le reste n'est que pure mise en forme
            printf("\n%02d/%02d/%02d-%02d:%02d:%02d - %s",
                    tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday,
                    tm->tm_hour, tm->tm_min, tm->tm_sec, s);
    }
    execution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    TEST-FRSP:~/Documents/c # gcc -Wall -O9 lsdates.c -o lsdates && strip lsdates
    TEST-FRSP:~/Documents/c # ./lsdates ../*
     
     ../NAS
     
    2007/07/08-16:44:03 - <= DERNIER ACCES
    2007/07/01-02:19:29 - <= DERNIERE MODIFICATION
    2007/07/01-02:19:43 - <= DERNIERE MODIF DE CARACTERISTIQUE
     
     ../c
     
    2007/07/10-21:03:02 - <= DERNIER ACCES
    2007/07/10-21:02:41 - <= DERNIERE MODIFICATION
    2007/07/10-21:02:41 - <= DERNIERE MODIF DE CARACTERISTIQUE
     
     ../fp
     
    2007/07/10-17:02:17 - <= DERNIER ACCES
    2007/07/01-02:20:22 - <= DERNIERE MODIFICATION
    2007/07/01-02:20:51 - <= DERNIERE MODIF DE CARACTERISTIQUE
     
     ../fp.csv
     
    2007/07/08-18:41:59 - <= DERNIER ACCES
    2007/07/08-16:36:45 - <= DERNIERE MODIFICATION
    2007/07/08-16:43:50 - <= DERNIERE MODIF DE CARACTERISTIQUE

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    d'accord, mais dans ce cas, comment récupérer la date de dernier accès en bash ??

    une autre question, la commande find que tu m'as donné fonctionne bien mais quand je fais la commande suivante, il ne veut pas supprimer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #!/bin/bash
     
    rm | find /home/user/www/quiz/ -type f -name "*.xml" -daystart -mtime +1  -print
    il me dit que rm n'a pas d'opérande....

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    euh ...

    j'ai trouvé pourquoi ca marché pas et j'ai même amélioré ma ligne de code ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    find /home/user/www/quiz/ -type f -name "*.xml" -daystart -mtime +1 -delete
    ca ne fonctionnait pas car ca ne faisait pas un jour révolu que mes fichiers étaient créés. J'ai donc avancé la date de mon pc, et là Magique ils ont été supprimé...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création/Modification d'un fichier XML
    Par georges_jung dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 05/06/2008, 13h32
  2. Connaître la date de dernière modification d'un fichier
    Par Olivier Regnier dans le forum Web
    Réponses: 9
    Dernier message: 08/11/2007, 15h34
  3. Date de dernière modification d'un fichier
    Par defacta dans le forum Langage
    Réponses: 1
    Dernier message: 04/09/2007, 13h10
  4. Date de derniere modification d'un fichier
    Par ninsekh dans le forum VB.NET
    Réponses: 1
    Dernier message: 31/08/2007, 20h11
  5. Réponses: 4
    Dernier message: 22/10/2006, 00h52

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