Rechercher : dans
Par :

Commande find et option ctime

Dernière réponse le 2 jun 2007 à 15:18:11 bob031, le 1 jun 2007 à 13:23:37 
 Signaler ce message aux modérateurs

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.

:-))
Configuration: Linux Mandriva
Firefox 2.0.0.1

Meilleures réponses pour « commande find et option ctime » dans :
[Commande] “grep” récursif VoirLorsque l'option -r (ou -d recurse) de la commande grep n'est pas disponible, comme sous HP-UX, il faut l'utiliser conjointement avec la commande find. Par exemple, pour chercher récursivement la chaîne «CCM» dans tous les fichiers réguliers à...
[Vista] Afficher la commande Exécuter du menu Démarrer VoirAfficher la commande "Exécuter" du menu Démarrer Lors de l'acquisition de votre nouveau système d'exploitation Vista, vous vous apercevrez que la commande "Exécuter", qui est assez coutumière et serviable chez son petit frère XP, n'existe...
Liste des commandes Windows VoirRemarques : Certaines commandes sont dangereuses (l’exemple de SYSKEY) et peuvent causer des problèmes pouvant conduire au formatage. D’autres commandes ne sont pas exécutables sous Windows XP ou des versions antérieures, je ne les ai pas...
Systèmes d'exploitation - DOS - Astuces VoirAvoir accès au lecteur de CD-ROM Le lecteur de CD-ROM se déclare dans les fichiers config.sys et autoexec.bat. Dans le fichier config.sys il faut déclarer le gestionnaire de périphérique pour votre lecteur CD-ROM (bien qu'il soit détecté...
Les commandes AS/400 VoirLes commandes de l’AS/400 Il existe environ un millier de commandes dans l'OS/400, regroupées sous le nom de « Langage de Contrôle ». Un utilisateur pourra les lancer depuis la ligne Option ou Commande située au bas de l'écran, quand celle-ci est...
Commandes Linux VoirTableau des principales commandes Linux Commande Description équivalent DOS ls liste le contenu d'un répertoire dir cd change de répertoire cd cd .. répertoire parent cd.. mkdir crée un nouveau...

1

dubcek, le 1 jun 2007 à 13:26:58

Qu'affiche ls -lac /var/lib/mysql ?
ils ont été "touchés" entre-temps

Répondre à dubcek

2

bob031, le 1 jun 2007 à 13:36:21

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 ~]#

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

Répondre à bob031

3

dubcek, le 1 jun 2007 à 13:51:48

Ctime est aussi la date du dernier chmod ou chown

Répondre à dubcek

4

bob031, le 1 jun 2007 à 14:01:19

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.

Répondre à bob031

5

dubcek, le 1 jun 2007 à 14:06:39

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)

Répondre à dubcek

6

bob031, le 1 jun 2007 à 14:19:43

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.

:-))

Répondre à bob031

7

dubcek, le 1 jun 2007 à 14:38:35

Avec -ctime find arrondi n*24h, c'est pour cela qu'existe cmin en minutes

Répondre à dubcek

8

bob031, le 1 jun 2007 à 15:09:40

Toujours 2 points pas très clairs !

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.

Répondre à bob031

9

bob031, le 1 jun 2007 à 15:22:38

Beaucoup de points pas clairs !
J'abandonne ............pour le moment !

Néanmoins : problème résolu !

Merci.

Répondre à bob031

10

jipicy, le 1 jun 2007 à 16:13:13

Salut,

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 :

touch -t "date_de_ton_choix" fichier
très commode pour faire des tests...

man touch pour plus de détails.

;-)) Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

11

bob031, le 1 jun 2007 à 17:10:04

Salut Jipicy,

touch -t "date_de_ton_choix" fichier
C'est exactement ce que je cherchais !

Tu as raison : "très commode" !

:-))

Répondre à bob031

12

bob031, le 1 jun 2007 à 17:38:20

Bon, j'ai fait quelques tests : je comprends un peu mieux !

option ctime : marche pô sur les fichiers créés avec la commande touch ! (mais je m'en fiche ....et toc !)
option mtime : marche très bien avec les fichiers créés avec la commande touch !

alors ou c'est moi qui a un problème de vocabulaire ou c'est la machine car par définition la commande touch créé un fichier (puisqu'il n'existait pas aupatavant). Et pourtant la commande ctime signifie "date de création" mais ne vire pas les fichiers créés.
Alors que la commande mtime oui !

par contre que je fasse :
ctime +1 ou mtime +1 : les fichiers âgés de 2 jours sont quand même conservés ! (mais là aussi je m'en fiche car je ferais pas +1 ....et toc !).

FIN !

Me reste plus qu'à utiliser tout ça par cron ......

:-))

Répondre à bob031

13

dubcek, le 2 jun 2007 à 15:12:08

La commande touch crée le fichier si il n'existe pas, sinon elle modifie la date (mtime)du fichier existant. voir les options

Répondre à dubcek

14

 bob031, le 2 jun 2007 à 15:18:11

Merci à toi dubcek ! :-))
Je commence à saisir les "nuances".

:-))

Répondre à bob031