Commande find et option ctime

Résolu/Fermé
bob031 Messages postés 8158 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 1 septembre 2014 - 1 juin 2007 à 13:23
 cours lunix - 31 janv. 2011 à 16:31
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:
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.

:-))

3 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
1 juin 2007 à 14:06
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)
1
bob031 Messages postés 8158 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 1 septembre 2014 472
1 juin 2007 à 14:19
tu sais que ................................tu es trop fort toi ! :-))

[root@localhost ~]#
find /var/lib/mysql/ -type f -name mysql-bin.0\* -cmin +1440 -exec rm -f {} \;


[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.

:-))
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
1 juin 2007 à 14:38
avec -ctime find arrondi n*24h, c'est pour cela qu'existe cmin en minutes
0