GNU/Linux >> Znalost Linux >  >> Linux

Soubor Časová razítka v Linuxu:atime, mtime, ctime Vysvětleno

V Linuxu má každý soubor nějaká časová razítka, která poskytují některé zásadní analýzy o tom, kdy byl soubor nebo jeho atributy upraveny nebo změněny. Podívejme se na tato časová razítka podrobně.

Co jsou časová razítka Linuxu?

Každý soubor v Linuxu má obvykle tato tři časová razítka:

  • atime – doba přístupu
  • mtime – úprava času
  • ctime – změnit čas

čas

atime znamená přístupový čas. Toto časové razítko vám řekne, kdy byl soubor naposledy otevřen. Přístupem to znamená, zda jste ke čtení nebo zobrazení obsahu souboru použili cat, vim, less nebo nějaký jiný nástroj.

mtime

mtime znamená upravit čas. Toto časové razítko vám řekne, kdy byl soubor naposledy změněn. Modifikovat znamená, že obsah souboru byl změněn úpravou souboru.

ctime

ctime znamená čas změny stavu. Toto časové razítko vám řekne, kdy byla naposledy změněna vlastnost a metadata souboru. Metadata zahrnují oprávnění k souboru, vlastnictví, název a umístění souboru.

Jak zobrazit časová razítka souboru?

K zobrazení všech časových razítek souboru můžete použít příkaz stat. Použití příkazu stat je velmi jednoduché. Stačí s ním zadat název souboru.

stat <filename>

Výstup bude vypadat takto:

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: -

Ve výše uvedeném výstupu můžete vidět všechny tři časové značky (přístup, úprava a změna). Všechna tři časová razítka jsou zde stejná, protože jsem právě vytvořil tento prázdný soubor dotykovým příkazem.

Nyní upravíme tato časová razítka.

Pokud ke čtení souboru použiji příkaz less, změní se pouze doba přístupu, protože obsah a metadata souboru zůstávají stejné.

$ 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: -

Nyní změňme čas úpravy. K přidání nového textu do tohoto souboru použiji příkaz cat. Tím zabráníte změně doby přístupu.

$ 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: -

Všimli jste si něčeho divného? Upravili jste soubor a očekávali, že se změní mtime, ale také se změnilo ctime.

Pamatujte, že ctime se vždy mění s mtime. Je to proto, že zatímco mtime je pod kontrolou uživatele, ctime je řízeno systémem. Představuje, kdy byly naposledy změněny datové bloky nebo metadata souboru. Pokud soubor upravíte, změní se datové bloky a tím se změní i ctime.

Samotné ctime můžete změnit úpravou oprávnění k souboru pomocí příkazů chmod nebo chgrp, ale nemůžete upravit mtime bez úpravy ctime.

Také nemůžete změnit ctime v minulosti normálními prostředky. Je to druh bezpečnostní funkce, protože vám řekne, kdy byl soubor naposledy změněn. I když někdo upraví mtime a nastaví jej v minulosti pro škodlivé účely, ctime bude indikovat skutečný čas, kdy byl mtime změněn.

Pamatujte si :ctime bude vždy upraveno změnou mtime.

Jaké jsou použití časových razítek souborů?

Hodně to pomáhá při analýze. Může nastat řada situací, kdy budete potřebovat odkazovat na časová razítka souboru. Můžete například vidět, zda byl soubor nedávno změněn nebo ne v době, kdy měl být změněn.

Jedním z mých oblíbených použití bylo vyhledání souborů protokolu aplikace s mtime. Spusťte aplikaci a přejděte do nadřazeného adresáře aplikace a vyhledejte soubory, které byly v posledních několika minutách upraveny.

Již jsem vám ukázal výše, že může také pomoci při analýze, zda někdo k souborům přistupoval nebo je úmyslně upravil. Časová razítka hrají v takových situacích důležitou roli.

Jak zjistit, kdy byl soubor původně vytvořen?

Všimli jste si posledního řádku výstupu příkazu stat? Je tam napsáno ‚Narození‘. Můžete hádat, že to představuje časovou mapu, kdy se soubor ‚narodil‘ (nebo přesněji vytvořen).

Ve skutečnosti existuje ještě jedno časové razítko nazvané čas vytvoření (cr). Ne všechny souborové systémy toto časové razítko podporují. Ext4 je jeden z populárních linuxových souborových systémů a přestože podporuje časové razítko vytvoření, příkaz stat to v současnosti nedokáže zobrazit. Možná budoucí verze příkazu stat budou zobrazovat časové razítko vytvoření v sekci Narození.


Linux
  1. Příkaz wc pro Linux vysvětlený pro začátečníky (6 příkladů)

  2. Linux – Jak zjistit datum vytvoření souboru?

  3. Ubuntu – Linux – Čas změny souboru versus čas úpravy?

  1. Soubor Časová razítka v Linuxu:atime, mtime, ctime Vysvětleno

  2. Jak přesměrovat výstup příkazu time do souboru v Linuxu?

  3. Jaké souborové systémy v Linuxu ukládají čas vytvoření?

  1. Vysvětlení pevných odkazů a měkkých odkazů v Linuxu

  2. Linux – jaké souborové systémy v systému Linux ukládají dobu vytvoření?

  3. Linux – všechno je soubor?