Di Linux, setiap file memiliki beberapa stempel waktu yang menyediakan beberapa analisis penting tentang kapan file atau atributnya dimodifikasi atau diubah. Mari kita lihat stempel waktu ini secara mendetail.
Apa itu stempel waktu Linux?
File apa pun di Linux biasanya memiliki tiga stempel waktu ini:
- waktu – waktu akses
- mtime – ubah waktu
- waktu – mengubah waktu
waktu
atime adalah singkatan dari waktu akses. Stempel waktu ini memberi tahu Anda kapan terakhir kali file diakses. Dengan akses, itu berarti jika Anda menggunakan cat, vim, less atau alat lain untuk membaca atau menampilkan konten file.
mtime
mtime adalah singkatan dari memodifikasi waktu. Stempel waktu ini memberi tahu Anda kapan terakhir kali file dimodifikasi. Dengan memodifikasi, artinya jika isi suatu file diubah dengan cara mengedit file tersebut.
ctime
ctime adalah singkatan dari waktu perubahan status. Stempel waktu ini memberi tahu Anda kapan terakhir kali properti dan metadata file diubah. Metadata mencakup izin file, kepemilikan, nama, dan lokasi file.
Bagaimana cara melihat stempel waktu file?
Anda dapat menggunakan perintah stat untuk melihat semua cap waktu file. Menggunakan perintah stat sangat sederhana. Anda hanya perlu memberikan nama filenya.
stat <filename>
Outputnya akan seperti ini:
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: -
Anda dapat melihat ketiga cap waktu (mengakses, memodifikasi, dan mengubah) waktu di output di atas. Ketiga stempel waktu di sini sama karena saya baru saja membuat file kosong ini dengan perintah sentuh.
Sekarang mari kita ubah stempel waktu ini.
Jika saya menggunakan perintah less untuk membaca file, itu hanya akan mengubah waktu akses karena konten dan metadata file tetap sama.
$ 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: -
Sekarang mari kita ubah waktu modifikasi. Saya akan menggunakan perintah cat untuk menambahkan teks baru ke file ini. Ini akan mencegah perubahan waktu akses.
$ 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: -
Apakah Anda melihat sesuatu yang aneh? Anda memodifikasi file dan mengharapkan mtime diubah tetapi juga mengubah ctime.
Ingat, ctime selalu berubah dengan mtime. Karena saat mtime berada di bawah kendali pengguna, ctime dikendalikan oleh sistem. Ini menunjukkan kapan terakhir kali blok data atau metadata file diubah. Jika Anda memodifikasi file, blok data berubah dan waktu berubah.
Anda dapat mengubah ctime sendiri dengan memodifikasi izin file menggunakan perintah chmod atau chgrp tetapi Anda tidak dapat mengubah mtime tanpa memodifikasi ctime.
Anda juga tidak dapat mengubah waktu di masa lalu dengan cara biasa. Ini adalah semacam fitur keamanan karena memberi tahu Anda kapan terakhir kali file diubah. Bahkan jika seseorang memodifikasi mtime dan mengaturnya di masa lalu untuk tujuan jahat, ctime akan menunjukkan waktu sebenarnya ketika mtime diubah.
Ingat :ctime akan selalu diubah oleh mtime change.
Apa kegunaan stempel waktu file?
Sangat membantu dalam menganalisa. Mungkin ada sejumlah situasi di mana Anda perlu merujuk ke stempel waktu file. Misalnya, Anda dapat melihat apakah file baru saja diubah atau tidak saat seharusnya diubah.
Salah satu penggunaan favorit saya adalah mencari file log aplikasi dengan mtime. Jalankan aplikasi dan masuk saja ke direktori induk aplikasi dan cari file yang telah dimodifikasi dalam beberapa menit terakhir.
Saya sudah menunjukkan kepada Anda di atas bahwa itu juga dapat membantu dalam menganalisis jika seseorang mengakses file atau memodifikasinya dengan jahat. Stempel waktu memainkan peran penting dalam situasi seperti itu.
Bagaimana cara mengetahui kapan file pertama kali dibuat?
Apakah Anda memperhatikan baris terakhir dari output perintah stat? Dikatakan 'Kelahiran'. Anda mungkin menebak bahwa ini mewakili peta waktu saat file 'lahir' (atau lebih tepatnya dibuat).
Sebenarnya, ada satu stempel waktu lagi yang disebut waktu pembuatan (cr). Tidak semua sistem file mendukung stempel waktu ini. Ext4 adalah salah satu sistem file Linux yang populer dan meskipun mendukung stempel waktu pembuatan, perintah stat saat ini tidak dapat menampilkannya. Mungkin versi perintah stat yang akan datang akan menampilkan stempel waktu pembuatan di bagian Kelahiran.