Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1340 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  filtrer les fichiers plus vieux qu'un jour (solaris)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

filtrer les fichiers plus vieux qu'un jour (solaris)

n°1063678
dams78
développateur
Posté le 01-08-2008 à 09:55:39  profilanswer
 

bonjour,
je travaille sur un serveur solaris et je dois travailler sur des fichiers d'un dossier, seulement je ne dois prendre que les fichiers créés (ou modifiés) de moins d'un jour.
je pensais récupérer la date du fichier et la comparer avec la date du jour (en utilisant le nombre de secondes depuis 1970)
seulement la fonction date ne fonctionne pas avec l'argument %s (qui permet de récupérer ce nombre de secondes)
 
de plus pour récupérer la date du fichier je ne sais pas trop comment faire, j'ai trouvé un script perl, qui permet apparement d'obtenir les dates en secondes (description très vague, donc je ne comprend pas trop ce qu'il me retourne)

perl -e '($atime,$mtime,$ctime)=(stat($ARGV[0]))[8..10];print "$atime, $mtime, $ctime\n";' file_name


 
merci de votre aide


---------------
dam's (debianer), ma galerie Flickr
mood
Publicité
Posté le 01-08-2008 à 09:55:39  profilanswer
 

n°1063683
o'gure
Modérateur
Multi grognon de B_L
Posté le 01-08-2008 à 10:05:41  profilanswer
 

Regarde le manpage de find (version solaris) pour faire ça de manière plus simple.


---------------
Relax. Take a deep breath !
n°1063695
dams78
développateur
Posté le 01-08-2008 à 10:43:37  profilanswer
 

j'ai effectivement trouvé ça
find $mon fichier -atime -1
mais avec touch j'ai modifier la date de mes fichiers pour tester et ceux qui datent du 30 juillet apparaissent quand même...


---------------
dam's (debianer), ma galerie Flickr
n°1063698
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 01-08-2008 à 10:50:00  profilanswer
 

atime c'est pas ce qu'il te faut... c'est mtime :o


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1063728
dams78
développateur
Posté le 01-08-2008 à 11:32:08  profilanswer
 

d'accord est ce que tu sais à quoi cela correspond?
merci
 
au passage le find me fait des trucs bizzard, est ce que c'est possible qu'il se base sur une date de consultation du fichier plutôt qu'une date de modification?

Message cité 1 fois
Message édité par dams78 le 01-08-2008 à 11:32:18

---------------
dam's (debianer), ma galerie Flickr
n°1063759
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 01-08-2008 à 13:24:41  profilanswer
 

oui, car j'ai lu le man de find.


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1063764
dams78
développateur
Posté le 01-08-2008 à 13:43:33  profilanswer
 

black_lord a écrit :

oui, car j'ai lu le man de find.


moi aussi je te rassure, mais le find nous fait vraiment des trucs bizzare
je vais creuser du côté du perl alors
 
--
edit, je suis entrain de chercher, mais peut être que vous savez comment récupérer le nombre de secondes écoulées depuis 1970 en perl?
comme ça je le soustrai à $ctime et c'est bon :)
 
--
reedit : perl -e 'print time;'

Message cité 1 fois
Message édité par dams78 le 01-08-2008 à 13:53:38

---------------
dam's (debianer), ma galerie Flickr
n°1063765
o'gure
Modérateur
Multi grognon de B_L
Posté le 01-08-2008 à 13:54:02  profilanswer
 

dams78 a écrit :

d'accord est ce que tu sais à quoi cela correspond?
merci

 

au passage le find me fait des trucs bizzard, est ce que c'est possible qu'il se base sur une date de consultation du fichier plutôt qu'une date de modification?

 
dams78 a écrit :


moi aussi je te rassure, mais le find nous fait vraiment des trucs bizzare
je vais creuser du côté du perl alors


http://www-inf.int-evry.fr/cours/U [...] ind.1.html

Citation :

-atime n
    dernier acces au fichier il y a n*24 heures.


Citation :

-mtime n
    Fichier dont les donnees ont ete modifiees il y a n*24 heures.


[:spamafote]
Non il n'a pas un comportement bizarre.


Message édité par o'gure le 01-08-2008 à 13:54:33

---------------
Relax. Take a deep breath !
n°1063769
dams78
développateur
Posté le 01-08-2008 à 13:59:06  profilanswer
 

j'ai trouvé ça :
perl -e '($atime,$mtime,$ctime)=(stat($ARGV[0]))[8..10];$ctime=time-$ctime;print "$ctime";' fichier


---------------
dam's (debianer), ma galerie Flickr
n°1063770
dams78
développateur
Posté le 01-08-2008 à 14:01:07  profilanswer
 

en fait si j'utilise le find cela plante sur notre serveur de préprod, donc je pense utiliser la fonction perl et faire un test pour chaque fichier
 
merci de votre aide en tout cas


---------------
dam's (debianer), ma galerie Flickr
mood
Publicité
Posté le 01-08-2008 à 14:01:07  profilanswer
 

n°1063772
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 01-08-2008 à 14:01:40  profilanswer
 

réinventer la roue plutôt que de trouver pourquoi ça plante [:prozac]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1063782
dams78
développateur
Posté le 01-08-2008 à 14:09:52  profilanswer
 

on fait au plus pressé surtout...
pour info je peux vous mettre mon script :

Code :
  1. #/bin/sh
  2. if [ $# = "2" ]
  3. then
  4. rm $2/*
  5. ls -tr $1 | while read file
  6. do
  7.  secondes=`perl -e '($atime,$mtime,$ctime)=(stat($ARGV[0]))[8..10];$ctime=time-$ctime;print "$ctime";' $1/$file`
  8.  if [ $secondes -lt 86400 ]
  9.  then
  10.   newFile=`echo "$file" | awk -F'-' '{ print $1 }' | awk -F'.' '{ print $1 }'`
  11.   cat $1/$file >> $2/$newFile
  12.   touch -r $1/$file $2/$newFile
  13.  fi
  14. done
  15. else
  16. echo "premier parametre : dossier des fichiers a concatener"
  17. echo "deuxieme parametre : dossier de sortie"
  18. fi


le find se trouvait après le ls (qui permet d'avoir les fichiers dans l'ordre de création) on a supposé que c'était à cause de ça


---------------
dam's (debianer), ma galerie Flickr
n°1063892
e_esprit
Posté le 02-08-2008 à 12:01:59  profilanswer
 

Ben find est pas censé prendre une liste de fichiers en argument, mais un ou plusieurs repertoires où faire ses recherches.
Qui plus est il les prends en ligne de commande, et non pas sur l'entrée standard, alors faut pas s'étonner si un ls machin/ | find ... plante [:ddr555]


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  filtrer les fichiers plus vieux qu'un jour (solaris)

 

Sujets relatifs
[Linux FS embarqué] système de fichiers dans une flashsolaris 10 copier contenu d'un folder dans le folder parent
Comparaison de deux fichiers[Internet à la maison] comment avoir des fichiers logs du Net?
Linux sur un vieux pc : quelle distrib ?Script supprimant/déplacant des fichiers vieux de x jours
Bloquer utilisation de types de fichiersNombre fichiers maximum dans un dossier sous Linux debian ?
Créer une image de disquette a partir de fichiers 
Plus de sujets relatifs à : filtrer les fichiers plus vieux qu'un jour (solaris)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR