Marcas de tiempo ctime, atime y mtime en archivos y directorios de Linux 

Copyright © 2005-2017 LinuxTotal.com.mx
Se concede permiso para copiar, distribuir y/o modificar este documento siempre y cuando se cite al autor y la fuente de linuxtotal.com.mx y según los términos de la GNU Free Documentation License, Versión 1.2 o cualquiera posterior publicada por la Free Software Foundation.

Autor: Sergio González D.  

En Linux existen tres formas de controlar y mostrar la marca del tiempo en archvios y directorios. Asi es, cuando creas o editas un archivo se involucran tres controles de fecha y hora en el archivo.

  • ctime: 'change time' indica el tiempo de la última modificación que se realizó al archivo en términos de su inodo (inode). Es decir, cambios en los permisos, propietario, etc. También, lo utiliza el comando dump para determinar el último respaldo que se realizó al archivo. Es posible ver este tiempo con la opción c del comando ls. Ejemplo ls -lc
  • atime: 'access time' indica el tiempo en que el archivo fue por última accedido para mostrar su contenido. Por ejemplo cuando se usan los comandos cat, more, less o un script, en que se despliega el contenido del archivo se modificará su atime. Es posible ver este tiempo con la opción u del comando ls. Ejemplo ls -lu
  • mtime: 'modify time' indica el tiempo en que el contenido del archivo fue por última vez mofificado o editado, por ejemplo cuando usas un editor de texto o se altera por un script, etc. Con la opción l del comando ls se muestra este tiempo, que entonces, es el que estamos acostumbrados a observar con el listado ?ipico: ls -l

stat

Otra forma de ver estos tiempos todos a la vez es con el comando stat seguido del nombre del archivo:

#> stat /etc/passwd
  File: «/etc/passwd»
  Size: 2160            Blocks: 16         IO Block: 4096   fichero regular
Device: 302h/770d       Inode: 3439615     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2008-04-20 22:30:01.000000000 -0500
Modify: 2008-03-24 17:59:49.000000000 -0600
Change: 2008-03-24 17:59:49.000000000 -0600

stat no solo muestra las tres marcas de tiempo, sino también otro tipo de información útil y relevante como el tamaño del archivo, el total de bloques de discos utilizados, el número de inodo, los enlaces, sus permisos, etc.

Por cierto, el comando stat tiene la opción f que permite ver el estatus pero de un sistema de archivos completo, ejemplo:

$> stat -f /home
  File: "/home"
    ID: 0        Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 4960223    Free: 4915372    Available: 4659337
Inodes: Total: 5124480    Free: 5124172

Solo hay que indicar el sistema de archivos, en este caso '/home'. En sistemas de archivos con un uso intenso de manejo de archivos como pudiera ser un fileserver con samba para varios clientes Windows XP, sería relevante por ejemplo, estar observando el total de bloques o inodos libres en el dispositivo.


Consideraciones con la marca de tiempo atime

Linux tiene una opción especial en el comando mount que se llama 'noatime' que puede añadirse en el archivo de configuración /etc/fstab en los dispositivos que se crea conveniente, por ejemplo de la siguiente manera:

# vi /etc/fstab
/dev/sda2          /         ext3          defaults,noatime          1  2
...



# mount
/dev/sda2 on / type ext3 (rw,noatime)
none on /proc type proc (rw)
/dev/sda1 on /boot type ext3 (rw)
/dev/sda3 on /home type ext3 (rw)

Se observa como el filesystem '/' ahora tiene la opción 'noatime' y lo que hará es no actualizar esta marca de tiempo cuando cualquier archivo sea leido. La importancia de esto radica en que si no te importa saber cuando fue la última vez que un archivo fue accedido para mostrar su contenido, ganarás un pequeño rendimiento en el performance del disco, ya que se supone que escrituras al disco (para modificar el atime) son caras cuando se hace con varios archivos en sistemas muy utilizados.

Ahora bien, puedes lograr el mismo efecto de no modificar el atime pero por archivo, sin necesidad de hacerlo a nivel de todo el sistema de archivos. Y esto es con el comando chattr que permite varios atributos de un archivo, entre ellos dejar fijo el atime. Esto se logra con la opción A: (debes ser root)

# > chattr +A reporte.txt
# > lsattr reporte.txt
-------A----- reporte.txt


Próximamente escribiré un artículo sobre atributos de archivos, mientras tanto, puedes consultar mas sobre esto en las páginas del manual: man chattr


LinuxTotal en:

Si encuentras útil la información que proveé LinuxTotal, considera realizar un donativo que estimule a seguir proporcionando contenido de calidad y utilidad. Gracias.

Más artículos de LinuxTotal

Linux ofrece multitud de servicios o servidores, estos pueden iniciar o arrancar junto con la carga del sistema o pueden después ....


El directorio /proc es una bestia extraña. Realmente no existe, sin embargo puedes explorarlo. Sus archivos de tamaño 0 no son n....


mysqldump es una utilieria cliente de MySQL que te permite respaldar bases de datos. Aprende por ejemplos como utilizarlo. Puedes....


Muchos validadores de direcciones de correo electrónico devolverán errores cuando se enfrenten con una inusual pero válida dire....


Sistemas Linux con gran cantidad de usuarios, como servidores de correo, servidores samba, etc., tarde o temprano tienen el proble....


Observa la imagen siguiente, que corresponde a uno de los sitios de descargas de MySQL y notarás que todos los archivos que puede....


En Linux existen tres formas de controlar y mostrar la marca del tiempo en archvios y directorios. Asi es, cuando creas o editas u....


Si acostumbras trabajar en la línea de comandos de Linux, muy posiblemente uses el shell bash (Bourne Again Shell, derivado del b....


Una tarea administrativa algo común, es eventualmente tener que añadir un nuevo disco duro (IDE) al o a los que ya se tienen, de....


En el artículo de LinuxTotal.com.mx sobre permisos se explica lo que es un archivo con permisos SUID o SGID, pueden ser potencial....



Copyright © LinuxTotal.com.mx 2006-2017
info@linuxtotal.com.mx · linuxtotal.com.mx@gmail.com