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.
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 -lccat, 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 -luls se muestra este tiempo, que entonces, es el que estamos acostumbrados a observar con el listado ?ipico: ls -lOtra 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.
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 ... (reinicias el equipo o montas de nuevo con: 'mount -o remount /' y después deberás de tener algo como lo siguiente:) # 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 (con lsattr es posible ver los atributos establecidos, si deseas quitarlo entonces usa: 'chattr -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
| AÑADIR ESTE ARTÍCULO A MIS FAVORITOS |
Más artículos sobre Linux y Open Source