Comando DEBUGFS: mostra i tempi di creazione dei file in Linux
Nei sistemi simili a Unix come Linux, tutto è considerato un file e tutte le informazioni su un file (metadati o attributi del file come ora di creazione, ultima modifica ecc.), tranne il contenuto effettivo del file, sono archiviate in un inode e Linux identifica ogni singolo file tramite il suo numero di inode diverso dal nome file leggibile dall'uomo.
Inoltre, il programma Linux stat è un'utilità utile per visualizzare lo stato del file o del file system. Mostra informazioni come numero di inode, ora di nascita del file, ultima modifica dei dati, ultimo accesso, ultimo cambiamento di stato e molto altro. Combineremo entrambi i programmi per trovare il tempo effettivo di creazione dei file in Linux.
In questo articolo spiegheremo come trovare uno degli attributi critici di un file utilizzando i programmi debugfs e stat per ottenere le seguenti informazioni di creazione/accesso per un file in Filesystem Linux.
- ctime: mostra l'ora di modifica del file.
- atime: mostra l'ora di accesso al file.
- mtime: mostra l'ora di modifica del file.
- crtime: mostra l'ora di creazione del file.
Trova la data di creazione del file in Linux
1. Per trovare la data e l'ora di creazione del file, “crtime” consiste nel trovare l'inode del file utilizzando il comando stat su un file chiamato “About-TecMint ”.
stat About-TecMint
File: 'About-TecMint'
Size: 260 Blocks: 8 IO Block: 4096 regular file
Device: 80ah/2058d Inode: 14420015 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 1000/ tecmint) Gid: ( 1000/ tecmint)
Access: 2017-02-23 14:15:20.263337740 +0530
Modify: 2015-10-22 15:08:25.236299000 +0530
Change: 2016-08-01 10:26:36.603280013 +0530
Birth: -
In alternativa, puoi utilizzare il comando ls -i su un file chiamato "About-TecMint".
ls -i About-TecMint
14420015 About-TecMint
Dall'output dei comandi precedenti, il numero di inode del file è 14420015. Prendi nota di questo numero di inode univoco poiché lo utilizzeremo nei passaggi seguenti.
2. Ora dobbiamo trovare il filesystem root in cui risiede il nostro file, esegui semplicemente il seguente comando df -h per identificare il filesystem root.
df -h
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 788M 9.7M 779M 2% /run
/dev/sda10 324G 277G 31G 91% /
tmpfs 3.9G 192M 3.7G 5% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/loop3 87M 87M 0 100% /snap/core/4486
/dev/loop0 87M 87M 0 100% /snap/core/4407
/dev/loop1 82M 82M 0 100% /snap/core/4206
/dev/loop2 181M 181M 0 100% /snap/vlc/190
/dev/loop4 189M 189M 0 100% /snap/vlc/158
cgmfs 100K 0 100K 0% /run/cgmanager/fs
tmpfs 788M 40K 788M 1% /run/user/1000
Dall'output sopra, il filesystem per la partizione root è /dev/sda10
(prendi nota di questo filesystem). Questo sarà diverso sul tuo sistema.
3. Successivamente, utilizza il comando debugfs per trovare l'ora di creazione del file chiamato “About-TecMint”, con il - R
flag che indica a debugfs di eseguire il singolo comando esterno specificato con il numero di inode 14420015 (stat in questo caso) e quindi di uscire.
sudo debugfs -R 'stat <14420015>' /dev/sda10
Inode: 14420015 Type: regular Mode: 0777 Flags: 0x80000
Generation: 2130000141 Version: 0x00000000:00000001
User: 1000 Group: 1000 Size: 260
File ACL: 0 Directory ACL: 0
Links: 1 Blockcount: 8
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x579ed684:8fd54a34 -- Mon Aug 1 10:26:36 2016
atime: 0x58aea120:3ec8dc30 -- Thu Feb 23 14:15:20 2017
mtime: 0x5628ae91:38568be0 -- Thu Oct 22 15:08:25 2015
crtime: 0x579ed684:8fd54a34 -- Mon Aug 1 10:26:36 2016
Size of extra inode fields: 32
EXTENTS:
(0):57750808
(END)
Dall'output sopra riportato risulta chiaro che il file “About-TecMint” è stato creato il lunedì 1 agosto 10:26:36 2016
come fornito da crtime . Vedrai anche "ctime", "atime" e "mtime" del tuo file.