Linux atime ctime mtime

Linux Timestamps: The Difference Between atime, mtime, ctime, and crtime

The Linux filesystem keeps track of different timestamps for each file on the system: mtime , atime , ctime , and crtime , all of which represent different file activities.

Description of Each Timestamp

atime is the last accessed time, which updates when the file contents are read through commands such as cat and grep or by an application.

mtime is the last modification time, which updates when you change the contents of a file.

ctime is the last change time, which updates when the file’s properties (i.e. permissions, name, location) change.

crtime is the creation time, which doesn’t update.

It’s important to remember the following:

  • atime can update by itself
  • When ctime updates, atime updates
  • When mtime updates, ctime and atime updates

How to Check Each Timestamp

We can use variations of ls to check individual timestamps.

We can append a filename to each of these to find the timestamp for a specific file.

In order to view all timestamps at once for a specific file, we can use stat file.txt .

We can also use fls and mactime to create a timeline of file activity, which specifies, in chronological order, when each file in the specified directory was created, accessed, and modified.

Uses

Knowing this can be very helpful in a variety of situations. It can help you:

  • Confirm that a file or directory was last modified on a specific date
  • Quickly find files that were recently updated
  • Verify if a file was ever accessed or moved

Источник

File Timestamps in Linux: atime, mtime, ctime Explained

Let’s see what are the various kinds of file timestamps in Linux, how to see the timestamps for a file and how to change the timestamps.

In Linux, every file has some timestamps that provide some crucial analytics about when the file or its attributes were modified or changed. Let’s see these timestamps in detail.

What are Linux timestamps?

Any file in Linux has these three timestamps typically:

atime

atime stands for access time. This timestamp tells you when was the last time the file was accessed. By access, it means if you used cat, vim, less, or some other tool to read or display the content of the file.

Читайте также:  Linux грузится только до grub

mtime

mtime stands for modify time. This timestamp tells you when was the last time the file was modified. Modifying means the contents of a file were changed by editing the file.

ctime

ctime stands for status change time. This timestamp tells you when was the last time the property and metadata of the file were changed. The metadata includes file permissions, ownership, name, and location of the file.

How to see the timestamps of a file?

You can use the stat command to see all the timestamps of a file. Using stat command is very simple. You just need to provide the filename with it.

The output will be like this:

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

You can see all three timestamps (access, modify and change) time in the above output. All three timestamps are the same here because I just created this empty file with the touch command.

Now let’s modify these timestamps.

If I use the less command to view the file, it will change only the access time because the content and metadata of the file remain the same.

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

Now let’s change the modify time. I’ll use the cat command to add new text to this file. This will prevent the change in access time.

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

Did you notice something weird? You modified the file and expected the mtime to be changed, but it also changed the ctime.

Remember, ctime is always changed with mtime. It’s because while mtime is under the control of user, ctime is controlled by the system. It represents the last time the data blocks or metadata of a file was changed. If you modify the file, the data blocks change, and thus ctime is changed.

You can change ctime alone by modifying file permissions using chmod or chgrp commands but you cannot modify mtime without modifying ctime.

You can also not change ctime in the past by normal means. It is a kind of security feature because it tells you the last time the file was changed. Even if someone modifies mtime and sets it in the past for malicious purposes, ctime will indicate the actual time when the mtime was changed.

Читайте также:  Создать raid массив linux

What is the use of file timestamps?

It helps a lot in analyzing. There could be several situations where you need to refer to the timestamps of a file. For example, you can see if a file was modified recently or not when it was supposed to be modified.

One of my favorite use was to locate log files of an application with mtime. Run the application and just go into the parent directory of the application and search for the files that have been modified in the last few minutes.

I already showed you above that it can also help in analyzing if someone accessed the files or modified them maliciously. Timestamps play an important role in such situations.

How to know when a file was originally created?

Did you notice the last line of stat command output? It says ‘Birth’. You may guess that this represents the timestmap when the file was ‘born’ (or created, to be more precise).

Actually, there is one more timestamp called creation time (cr). Not all filesystems support this timestamp. Ext4 is one of the popular Linux filesystems, and though it supports the creation timestamp, the stat command is currently unable to show it. Maybe the future versions of the stat command will show the creation timestamp in the Birth section.

Источник

Временные метки файлов в Linux: atime, mtime, ctime. Разъяснения

Временные метки файлов в Linux: atime, mtime, ctime. Разъяснения

Д авайте посмотрим, каковы различные типы временных меток файлов в Linux, как просмотреть временные метки для файла и как изменить метки времени.

В Linux каждый файл имеет некоторые временные метки, которые предоставляют некоторые важные аналитики о том, когда файл или его атрибуты были модифицированы или изменены. Давайте посмотрим на эти временные метки в деталях.

Что такое метки времени Linux?

Любой файл в Linux обычно имеет три временных метки:

atime

atime означает время доступа. Эта временная метка сообщает вам, когда был последний раз обращались к файлу. При доступе это означает, что если вы использовали cat, vim, less или какой-либо другой инструмент для чтения или отображения содержимого файла.

mtime

mtime означает время модификации. Эта временная метка сообщает вам, когда был последний раз модифицирован файл. Это означает, что содержимое файла было изменено путем редактирования файла.

ctime

ctime означает время изменения статуса. Эта временная метка сообщает вам, когда был последний раз были изменены свойства и метаданные файла. Метаданные включают права доступа, права собственности, имя и местоположение файла.

Как просмотреть временные метки файла?

Вы можете использовать команду stat для просмотра всех временных меток файла. Использование команды stat очень просто. Вам просто нужно указать имя файла.

stat andreyex.txt File: andreyex.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/andreyex) Gid: ( 1000/andreyex) Access: 2018-10-07 23:10:25.134647523 +0530 Modify: 2018-10-07 23:10:25.134647523 +0530 Change: 2018-10-07 23:10:25.134647523 +0530 Birth: -

Теперь давайте изменим эти временные метки.

Читайте также:  Linux insert new line

Если мы используем команду less для чтения файла, это изменит только время доступа, потому что содержимое и метаданные файла остаются неизменными.

$ less andreyex.txt $ stat andreyex.txt File: andreyex.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/andreyex) Gid: ( 1000/andreyex) Access: 2018-10-07 23:15:12.847568584 +0530 Modify: 2018-10-07 23:10:25.134647523 +0530 Change: 2018-10-07 23:10:25.134647523 +0530 Birth: -

Теперь давайте изменим время модификации. Мы будем использовать команду cat для добавления нового текста в этот файл. Это предотвратит изменение времени доступа.

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

Вы заметили что-то странное? Вы изменили файл и ожидали изменения mtime, но также изменили время ctime.

Запомните, ctime всегда изменяет mtime, это потому, что пока время изменения находится под контролем пользователя, ctime контролируется системой. Он представляет собой, когда в последний раз были изменены блоки данных или метаданные файла. Если вы изменяете файл, блоки данных изменяются и, следовательно, ctime изменяется.

Вы также не можете изменять ctime в прошлом обычными способами. Это своего рода функция безопасности, потому что она сообщает вам в последний раз, когда файл был изменен. Даже если кто-то изменяет mtime и устанавливает его в прошлом для злонамеренных целей, ctime укажет фактическое время, когда mtime было изменено.

Каково использование временных меток файлов?

Это помогает при анализе. Там может быть несколько ситуаций, когда вам нужно ссылаться на отметки времени файла. Например, вы можете увидеть, был ли файл изменен в последнее время или нет, когда он должен был быть изменен.

Одним из наших любимых способов было найти файлы журналов приложения с помощью mtime. Запустите приложение и просто зайдите в родительский каталог приложения и выполните поиск файлов, которые были изменены за последние несколько минут.

Мы уже показали вам выше, что он также может помочь в анализе того, кто обратился к файлам или модифицировал их злонамеренно. Временные метки играют важную роль в таких ситуациях.

Как узнать, когда был изначально создан файл?

Вы заметили последнюю строку вывода команды stat? В нем указывается «Birth». Вы можете догадаться, что это представляет собой timestmap, когда файл был «рожден» (или был создан, чтобы быть более точным).

Собственно, там является еще одна временная метка называется временем создания (cr). Не все файловые системы поддерживают эту метку времени. Ext4 — одна из популярных файловых систем Linux, и хотя она поддерживает временную метку создания, команда stat в настоящее время не может ее показать. Возможно, будущие версии команды stat покажут временную метку создания в разделе «Birth».

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Оцените статью
Adblock
detector