Missing: Fecha de creación en UNIX
Hoy en el trabajo me han mandado hacer un shell script, que se encargara de buscar los ficheros de logs y eliminar los que tengan una antigüedad superior a 30 días. Pues bien, lo que en ningun momento he dudado, ha sido lo que más de cabeza me ha traido: Como encontrar la fecha de creación de un fichero.
De antemano sabía que las ultimas columnas del comando `ls -ltr` me daban la fecha de modificación, pense en buscar en el `man find` y -ctime pero no esta muy bien expliquicado. Así que fui a saco a buscar a google, cual fue mi sorpresa cuando lei esta frase:
This is a widespread misconception. UNIX filesystems do *not* normally store
the file creation date. The `ctime’ member of the stat structure is often
taken as such, but indeed it records the time of the last i-node *change*.
Vamos que el parametro -ctime y -mtime del comando find son lo mismo.
Después de leer, susodicha frase, el rallat entro en un colapso. Este colapso le llevo a pensar ciertas conclusiones:
- Unix está hecho por
humanossemi-dioses, lo que demuestra que puede tener deficiencias, vease esta misma ( a no ser que alguien me diga que desventaja tiene ). - Siempre va bien RTFM ( leer el puto manual )
Related posts:
- Trucos de un administrador UNIX Últimamente he estado pensando, lo que significa la experiencia....
Related posts brought to you by Yet Another Related Posts Plugin.


March 18th, 2008 at 12:56 pm
No conocías el logrotate?
http://www.hispafuentes.com/hf-doc/man/man8/logrotate.8.html
March 18th, 2008 at 1:11 pm
Pues es cierto, puede parecer un fallo “garrafal”, pero si lo miras bien … en tu caso da lo mismo. Si vas a eliminar ficheros de log, es porque ya no estan en uso, no ? Entonces mtime es lo que necesitas, ctime te da igual, sea o no la fecha de creación
salut.
March 19th, 2008 at 1:34 am
Después de consultar a tu profe de ASO, él me ha sugerido que te mires el tema 9 de los apuntes “Rotación de logs”. No sé si te lo puedes aplicar, pero es a base de crons y renombramientos (por lo que pasa de log a log.1, log.2… cada vez que se ejecuta el script, por lo que dependiendo de la frecuencia de ejecución “sabras” la fecha de creación del archivo indirectamente).
Si Unix está hecho por semi-dioses por el hecho de tener errores, Windows debió aparecer por generación espontánea del universo…
March 19th, 2008 at 4:20 am
Gracias Sergi, si me dan el ok, lo instalaré en las máquinas.
Sino usaré el que ya tengo con el parametro -mtime del find.
Emili, la frequencia es diaria. El script que hice me funcionará bien, gracias y dale las gracias al señor Perales
April 10th, 2008 at 11:23 pm
Simply outstanding ^_^! I like posts like that. Your blog is added to my favorites ;-). Continue writing.