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

Solaris Discussion :

Tri de fichiers par date sur une partition


Sujet :

Solaris

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Tri de fichiers par date sur une partition
    Bonjour,

    je souhaites créer un script bash qui, en cas d'espace disque limité (ex: + de 90% de la partition), efface les fichiers *.dat les plus anciens pour retourner à un espace disque de 80% par exemple.

    L'idée est donc de lister tous les fichiers *.dat par ordre chronologique présent sur la partition, puis les supprimer un à un par ordre récursif jusqu'à atteindre l'espace disque souhaité (ex: 80%).

    Je bloque sur la façon de générer une telle liste à mettre dans un fichier.

    - "ls -ltrR / | grep *.dat | sort -k6,6M -k7n" ne me retourne rien.

    - "find / -name *.dat -exec ls -lt {} \;" ne me les trie pas. Et un "| sort -k6,6M -k7n" à la suite ne donne rien.

    Je précise qu'il y a un grand nombre de fichier à trier (>>10000). Peut être est ce le problème...


    Merci pour votre aide.

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 123
    Points
    28 123
    Par défaut
    Bonjour

    Citation Envoyé par damien_27 Voir le message
    - "find / -name *.dat -exec ls -lt {} \;" ne me les trie pas. Et un "| sort -k6,6M -k7n" à la suite ne donne rien.
    -exec ls -lt ne sert a rien. il vaut mieux utiliser l'option -ls de find. Ce qui te donnerait :
    find / -name "*.dat" -ls

    Ensuite, tu peux donc piper la sortie vers un sort pour trier le contenu. Cependant, tu vas avoir un soucis sur le tri dans la mesure ou il faut trier sur le mois, le jour et un troisieme champs qui contient l'heure ou l'annee (annee si date superieure a 6 mois si mes souvenirs sont bons - a moins que ca ne depende des systemes).
    Bref, un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -name "*.c" -ls | sort -k8,8M -k9n

Discussions similaires

  1. Tri de fichiers par date de modification
    Par Pandza dans le forum Langage
    Réponses: 3
    Dernier message: 06/03/2014, 10h47
  2. Réponses: 1
    Dernier message: 19/12/2011, 16h01
  3. tri de fichier par date de création
    Par seveldan dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 02/02/2011, 08h37
  4. Tri de fichier par date
    Par airod dans le forum Général Python
    Réponses: 1
    Dernier message: 27/06/2007, 13h48
  5. Supprimer un fichier par rapport a une date
    Par NewB dans le forum Linux
    Réponses: 2
    Dernier message: 25/06/2003, 13h44

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