Commande find et option ctime
Résolu
bob031
Messages postés
8158
Date d'inscription
Statut
Membre
Dernière intervention
-
cours lunix -
cours lunix -
Bonjour,
j'essaie de créé un fichier (lancé par cron) afin de virer des fichiers !
voici ma commande que je lance au prompt pour tester:
sachant que nous somme le 1er juin :
[root@localhost ~]#
-rw-rw---- 1 mysql mysql 117 mai 30 14:51 mysql-bin.000430
-rw-rw---- 1 mysql mysql 117 mai 30 20:32 mysql-bin.000431
-rw-rw---- 1 mysql mysql 98 mai 30 20:34 mysql-bin.000432
-rw-rw---- 1 mysql mysql 117 mai 30 22:34 mysql-bin.000433
-rw-rw---- 1 mysql mysql 117 mai 31 15:49 mysql-bin.000434
-rw-rw---- 1 mysql mysql 98 mai 31 17:00 mysql-bin.000435
-rw-rw---- 1 mysql mysql 117 mai 31 22:25 mysql-bin.000436
-rw-rw---- 1 mysql mysql 98 jun 1 09:02 mysql-bin.000437
-rw-rw---- 1 mysql mysql 3515 jun 1 09:02 mysql-bin.index
en utilisant l'option ctime +1 : pourquoi les fichiers en date du 30 mai ne sont-ils pas éliminés ??
D'avance merci.
:-))
j'essaie de créé un fichier (lancé par cron) afin de virer des fichiers !
voici ma commande que je lance au prompt pour tester:
find /var/lib/mysql/ -name mysql-bin.0\* -ctime +1 -exec rm -f {} \;
sachant que nous somme le 1er juin :
[root@localhost ~]#
ls -la /var/lib/mysql
-rw-rw---- 1 mysql mysql 117 mai 30 14:51 mysql-bin.000430
-rw-rw---- 1 mysql mysql 117 mai 30 20:32 mysql-bin.000431
-rw-rw---- 1 mysql mysql 98 mai 30 20:34 mysql-bin.000432
-rw-rw---- 1 mysql mysql 117 mai 30 22:34 mysql-bin.000433
-rw-rw---- 1 mysql mysql 117 mai 31 15:49 mysql-bin.000434
-rw-rw---- 1 mysql mysql 98 mai 31 17:00 mysql-bin.000435
-rw-rw---- 1 mysql mysql 117 mai 31 22:25 mysql-bin.000436
-rw-rw---- 1 mysql mysql 98 jun 1 09:02 mysql-bin.000437
-rw-rw---- 1 mysql mysql 3515 jun 1 09:02 mysql-bin.index
en utilisant l'option ctime +1 : pourquoi les fichiers en date du 30 mai ne sont-ils pas éliminés ??
D'avance merci.
:-))
A voir également:
- Find ctime
- Find and mount - Télécharger - Récupération de données
- Ava find - Télécharger - Divers Utilitaires
- Find junk files - Télécharger - Nettoyage
- Find grep - Forum Linux / Unix
- The system cannot find any bootable devices - Forum BIOS
3 réponses
voila ce que dit la man page, c'est la même chose pour ctime
-atime n
File was last accessed n*24 hours ago. When find figures out
how many 24-hour periods ago the file was last accessed, any
fractional part is ignored, so to match -atime +1, a file has to
have been accessed at least two days ago.
essaie avec -cmin +1440
1440 = 24h*60 min
chmod (changer les droits) et chown (changer le propriétaire d'un fichier) change la date de création du fichier (ctime)
-atime n
File was last accessed n*24 hours ago. When find figures out
how many 24-hour periods ago the file was last accessed, any
fractional part is ignored, so to match -atime +1, a file has to
have been accessed at least two days ago.
essaie avec -cmin +1440
1440 = 24h*60 min
chmod (changer les droits) et chown (changer le propriétaire d'un fichier) change la date de création du fichier (ctime)
qu'affiche ls -lac /var/lib/mysql ?
ils ont été "touchés" entre-temps
ils ont été "touchés" entre-temps
Salut,
non je pense pas qu'ils aient été "touchés"
comme tu peux le voir mysql en créé de nouveaux par jour (bon j'en avais déjà viré pas mal , mais là je souhaite passer par cron)
[root@localhost ~]#
-rw-rw---- 1 mysql mysql 117 mai 30 14:51 mysql-bin.000430
-rw-rw---- 1 mysql mysql 117 mai 30 20:32 mysql-bin.000431
-rw-rw---- 1 mysql mysql 98 mai 30 20:34 mysql-bin.000432
-rw-rw---- 1 mysql mysql 117 mai 30 22:34 mysql-bin.000433
-rw-rw---- 1 mysql mysql 117 mai 31 15:49 mysql-bin.000434
-rw-rw---- 1 mysql mysql 98 mai 31 17:00 mysql-bin.000435
-rw-rw---- 1 mysql mysql 117 mai 31 22:25 mysql-bin.000436
-rw-rw---- 1 mysql mysql 98 jun 1 09:02 mysql-bin.000437
-rw-rw---- 1 mysql mysql 3515 jun 1 09:02 mysql-bin.index
merci
ps : ctime c'est bien Recherche par date de création / mtime Recherche par date de dernière modification. / atime Recherche par date de dernier accès
non je pense pas qu'ils aient été "touchés"
comme tu peux le voir mysql en créé de nouveaux par jour (bon j'en avais déjà viré pas mal , mais là je souhaite passer par cron)
[root@localhost ~]#
ls -lac /var/lib/mysql
-rw-rw---- 1 mysql mysql 117 mai 30 14:51 mysql-bin.000430
-rw-rw---- 1 mysql mysql 117 mai 30 20:32 mysql-bin.000431
-rw-rw---- 1 mysql mysql 98 mai 30 20:34 mysql-bin.000432
-rw-rw---- 1 mysql mysql 117 mai 30 22:34 mysql-bin.000433
-rw-rw---- 1 mysql mysql 117 mai 31 15:49 mysql-bin.000434
-rw-rw---- 1 mysql mysql 98 mai 31 17:00 mysql-bin.000435
-rw-rw---- 1 mysql mysql 117 mai 31 22:25 mysql-bin.000436
-rw-rw---- 1 mysql mysql 98 jun 1 09:02 mysql-bin.000437
-rw-rw---- 1 mysql mysql 3515 jun 1 09:02 mysql-bin.index
merci
ps : ctime c'est bien Recherche par date de création / mtime Recherche par date de dernière modification. / atime Recherche par date de dernier accès
ctime est aussi la date du dernier chmod ou chown
heu ..j'ai pas bien compris ! Quoiqu'il en soit je n'ai fait aucun chmod ou chown sur ces fichiers !
Remarque :
au début j'avais utilisé mtime +3 qui avait bien marché en ligne de commande.
Je vais attendre quelques jours afin que de nouveaux fichiers mysql-bin.000xxx se créent ! Je pourrais recommencer mes tests !
merci à toi.
heu ..j'ai pas bien compris ! Quoiqu'il en soit je n'ai fait aucun chmod ou chown sur ces fichiers !
Remarque :
au début j'avais utilisé mtime +3 qui avait bien marché en ligne de commande.
Je vais attendre quelques jours afin que de nouveaux fichiers mysql-bin.000xxx se créent ! Je pourrais recommencer mes tests !
merci à toi.
[root@localhost ~]#
[root@localhost ~]# ls -lac /var/lib/mysql
-rw-rw---- 1 mysql mysql 117 mai 31 15:49 mysql-bin.000434
-rw-rw---- 1 mysql mysql 98 mai 31 17:00 mysql-bin.000435
-rw-rw---- 1 mysql mysql 117 mai 31 22:25 mysql-bin.000436
-rw-rw---- 1 mysql mysql 98 jun 1 09:02 mysql-bin.000437
-rw-rw---- 1 mysql mysql 3515 jun 1 09:02 mysql-bin.index
les fichiers du 30 mai ont bien été éliminés !
Dis moi si j'ai bien compris : pour que mtime/ctime/atime +1 fonctionne il faut que les fichiers aient été "touchés" dans les 48h précédentes, c'est bien ça ?
Donc si pas "touchés" dans les 48h précédentes : +1 ne marchera pas !
chmod (changer les droits) et chown (changer le propriétaire d'un fichier) change la date de création du fichier (ctime)
merci.
Encore merci pour ton aide.
:-))
J'ai regardé le man find et :
The descriptions of -atime, -ctime, and -mtime were changed from the
SVID description of n "days'' to "24-hour periods". The description is
also different in terms of the exact timeframe for the n case (versus
the +n or -n), but it matches all known historical implementations. It
refers to one 86400 second period in the past, not any time from the
beginning of that period to the current time. For example, -atime 3 is
true if the file was accessed any time in the period from 72 hours to
48 hours ago.
1er point) j'ai bien saisi que le calcul se fait par "période de 24h" et non plus en "jour" ! (quoique pour moi c'est la même chose : 1jour=24h, non ?)
Il n'empêche que "jour" ou "période de 24h" les fichiers du 30 mai auraient dû être effacés.
2ème point ) j'ai cru comprendre que l'option ctime correspondait à une recherche par date de création.
je prends un exemple (plus parlant pour moi) :
soit un fichier mysql-bin.000xxx créé disons le 27 mai 2007.
A partir de là 2 possibilités :
a) ce fichier n'a pas été modifié depuis.
b) ce fichier a été modifié disons le 28 mai.
nous sommes le 1 juin 2007 et je souhaite effacer ce fichier :
j'utilise l'option ctime +3
cas a)=> je m'attends à ce que le fichier soit éliminer
cas b) => que va-t-il se passer ???
merci.
J'abandonne ............pour le moment !
Néanmoins : problème résolu !
Merci.
soit un fichier mysql-bin.000xxx créé disons le 27 mai 2007.
Tu sais que pour créer un fichier à la date de ton choix, tu as la commande : très commode pour faire des tests...
man touch pour plus de détails.
;-))