GNU/Linux >> Linux Esercitazione >  >> Linux

Timestamp dei file in Linux:spiegazione di atime, mtime, ctime

In Linux, ogni file ha alcuni timestamp che forniscono alcune analisi cruciali su quando il file o i suoi attributi sono stati modificati o modificati. Vediamo questi timestamp in dettaglio.

Cosa sono i timestamp di Linux?

Qualsiasi file in Linux ha in genere questi tre timestamp:

  • atime – tempo di accesso
  • mtime:modifica l'ora
  • ctime – cambia l'ora

atime

atime sta per tempo di accesso. Questo timestamp ti dice quando è stata l'ultima volta che è stato effettuato l'accesso al file. Per accesso, significa se hai usato cat, vim, less o qualche altro strumento per leggere o visualizzare il contenuto del file.

mtime

mtime sta per modificare il tempo. Questo timestamp ti dice quando è stata l'ultima volta che il file è stato modificato. Per modifica, significa se il contenuto di un file è stato modificato modificando il file.

ctime

ctime sta per tempo di modifica dello stato. Questo timestamp ti dice quando è stata l'ultima volta che la proprietà e i metadati del file sono stati modificati. I metadati includono i permessi del file, la proprietà, il nome e la posizione del file.

Come vedere i timestamp di un file?

Puoi usare il comando stat per vedere tutti i timestamp di un file. Usare il comando stat è molto semplice. Devi solo fornire il nome del file con esso.

stat <filename>

L'output sarà così:

stat abhi.txt 
  File: abhi.txt
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 10305h/66309d	Inode: 11936465    Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/abhishek)   Gid: ( 1000/abhishek)
Access: 2018-08-30 12:19:54.262153704 +0530
Modify: 2018-08-30 12:19:54.262153704 +0530
Change: 2018-08-30 12:19:54.262153704 +0530
 Birth: -

Puoi vedere tutti e tre i timestamp (accesso, modifica e modifica) nell'output sopra. Tutti e tre i timestamp sono gli stessi qui perché ho appena creato questo file vuoto con il comando touch.

Ora modifichiamo questi timestamp.

Se uso il comando less per leggere il file, cambierà solo il tempo di accesso perché il contenuto e i metadati del file rimangono gli stessi.

$ less abhi.txt 
$ stat abhi.txt 
   File: abhi.txt
   Size: 0             Blocks: 0          IO Block: 4096   regular empty file
 Device: 10305h/66309d    Inode: 11936465    Links: 1
 Access: (0644/-rw-r--r--)  Uid: ( 1000/abhishek)   Gid: ( 1000/abhishek)
 Access: 2018-08-30 12:25:13.794471295 +0530
 Modify: 2018-08-30 12:19:54.262153704 +0530
 Change: 2018-08-30 12:19:54.262153704 +0530
  Birth: -

Ora cambiamo il tempo di modifica. Userò il comando cat per aggiungere nuovo testo a questo file. Ciò impedirà la modifica del tempo di accesso.

$ cat >> abhi.txt 
 demo text
 ^C
 $ stat abhi.txt 
   File: abhi.txt
   Size: 10            Blocks: 8          IO Block: 4096   regular file
 Device: 10305h/66309d    Inode: 11936465    Links: 1
 Access: (0644/-rw-r--r--)  Uid: ( 1000/abhishek)   Gid: ( 1000/abhishek)
 Access: 2018-08-30 12:25:13.794471295 +0530
 Modify: 2018-08-30 12:32:34.751320967 +0530
 Change: 2018-08-30 12:32:34.751320967 +0530
  Birth: -

Hai notato qualcosa di strano? Hai modificato il file e ti aspettavi che fosse cambiato mtime, ma ha anche cambiato ctime.

Ricorda, ctime è sempre cambiato con mtime. È perché mentre mtime è sotto il controllo dell'utente, ctime è controllato dal sistema. Rappresenta l'ultima volta che i blocchi di dati oi metadati di un file sono stati modificati. Se modifichi il file, i blocchi dati cambiano e quindi ctime viene modificato.

Puoi cambiare ctime da solo modificando i permessi dei file usando i comandi chmod o chgrp ma non puoi modificare mtime senza modificare ctime.

Inoltre, non è possibile modificare ctime in passato con mezzi normali. È una sorta di funzionalità di sicurezza perché ti dice l'ultima volta che il file è stato modificato. Anche se qualcuno modifica mtime e lo imposta in passato per scopi dannosi, ctime indicherà l'ora effettiva in cui è stato modificato mtime.

Ricorda :ctime sarà sempre modificato da mtime change.

Qual ​​è l'utilizzo dei timestamp dei file?

Aiuta molto nell'analisi. Potrebbero esserci diverse situazioni in cui è necessario fare riferimento ai timestamp di un file. Ad esempio, puoi vedere se un file è stato modificato di recente o meno quando avrebbe dovuto essere modificato.

Uno dei miei usi preferiti era individuare i file di registro di un'applicazione con mtime. Esegui l'applicazione e vai nella directory principale dell'applicazione e cerca i file che sono stati modificati negli ultimi minuti.

Ti ho già mostrato sopra che può anche aiutare ad analizzare se qualcuno ha avuto accesso ai file o li ha modificati in modo dannoso. I timestamp svolgono un ruolo importante in tali situazioni.

Come sapere quando un file è stato originariamente creato?

Hai notato l'ultima riga dell'output del comando stat? Dice "Nascita". Puoi immaginare che questo rappresenti la mappa temporale in cui il file è stato "nato" (o creato per essere più precisi).

In realtà, c'è un altro timestamp chiamato tempo di creazione (cr). Non tutti i filesystem supportano questo timestamp. Ext4 è uno dei più diffusi filesystem Linux e sebbene supporti il ​​timestamp di creazione, il comando stat al momento non è in grado di mostrarlo. Forse le versioni future del comando stat mostreranno il timestamp di creazione nella sezione Nascita.


Linux
  1. Spiegazione di hard link e soft link in Linux

  2. Linux:quali file system su Linux archiviano il tempo di creazione?

  3. Linux:tutto è un file?

  4. Ubuntu – Linux – Tempo di cambio file rispetto al tempo di modifica?

  5. Timestamp dei file in Linux:spiegazione di atime, mtime, ctime

Comando dell'ora di Linux

Comando Linux cksum spiegato per principianti (con esempi)

Spiegazione del comando Linux Stat

Come modificare un file senza modificarne i timestamp in Linux

Timestamp dei file Linux spiegati con esempi

Permessi e proprietà dei file Linux spiegati con esempi