ctime,mtime,atime的区别
- 格式:docx
- 大小:14.15 KB
- 文档页数:3
本文由我司收集整编,推荐下载,如有疑问,请与我司联系Linux操作系统下文件的三个时间属性atime 、ctime 、mtime 2016/08/22 443 Linux操作系统下有三个主要的时间属性,分别是ctime (change time),atime(accsess time),mtime(modify time),下面一一解释。
atime: access time,是在读取文件或者执行文件时更改,即文件最后一次被读取时间说明:atimeTime when file data was last accessed ,changded by the following funtions: creat ,mknod,pipe,utime,read,` ctime:Change time,是在写入文件、更改所有者、权限或链接设置时随Inode 的内容更改而更改,即文件状态最后一次被改变的时间。
说明:ctime Time when file status was last changed. Changed by the following functions: chmod(), chown(), creat(),link(), mknod(), pipe(), unlink(2),utime(), and write(). mtime:Modified time,是在写入文件时随文件内容的更改而更改,是指文件内容最后一次被修改的时间。
说明:mtime Time when data was last modified. Changed by the fol- lowing functions: creat(), mknod(), pipe(), utime(), and write(). mtime和ctime 的区别在于,只有修改了文件的内容,才会更新文件的mtime,而对文件更名,修改文件的属主等操作,只会更新ctime。
linux 中inode的编码格式Linux 中inode的编码格式在Linux操作系统中,inode(索引节点)是用于存储文件元数据的重要数据结构。
每个文件和目录在磁盘上都有一个唯一对应的inode,并且通过这个inode 可以定位和访问相应的文件或目录。
那么,在Linux中,inode是如何进行编码格式呢下面将逐步介绍:1. 文件系统首先需要了解的是,Linux支持多种不同类型的文件系统,如Ext2、Ext3、Ext4等。
每种类型的文件系统可能采用不同版本或扩展来实现自己独特的inode编码格式。
例如,Ext2使用32位整数作为inode号码,并且以二进制形式直接表示该号码;而Ext4则使用128位无符号整数作为inode号码,并通过十六进制字符串进行表示。
2. inode 数据结构无论采用何种类型和版本的文件系统,所有与inode 相关联信息均被保存在一个固定大小区域内。
这个区域包含了很多字段, 比如:- 文件大小:记录了该文件所占据空间大小;- 创建时间和修改时间:记录了该文件最后被创建或者修改时候真实发生时间;- 用户id 和组id:因为Linux 支持多用户模式, 所以需要针对各用户提供权限;- 挂载点: 记录了文件所在的位置;- 硬链接数量: 表示有多少个硬连接指向此inode;等针对inode 信息是一个岗位比较大的课题,这里不再展开。
3. 文件名与inode号码当我们创建一个新文件或目录时,系统会为其分配唯一的inode号码,并将该inode号码与相应的文件名进行映射,以便可以通过文件名来访问到具体的inode。
此映射关系一般保存在文件系统中的某个特定区域(如Ext2中称为目录项)。
4. 查找和访问通过前面步骤建立起来的(inode, 文件名) 映射以后, 在进行查找和访问时只需要首先定位到与名称相关联目录遍历(readir) , 到dirdata / aim_name_field.然后读取其中存储索引节点(即inode编号)。
linux中atime,ctime和mtime的区别详解linux操作系统-电脑资料在linux中atime,ctime和mtime这些函数如果一不小心还真可能搞混乱了,下面我来给大家整理一下linux中atime,ctime和mtime 函数区别吧,。
猜测man手册中应当有这三个时间的相关说明,于是尝试man atime、man st_atime都没有相关文档。
后来想到stat可以查看文件的这三个时间,就用man stat查找,虽然有文档,但是没有这三个时间的相关说明。
正一筹莫展之际,突然想到c语言的stat函数也可以查看文件的状态,立马就用man 2 stat查看手册,果然找到了,摘抄在这里:The field st_atime is changed by file accesses, for example, by execve(2), mknod(2),pipe(2), utime(2) and read(2) (of more than zero bytes). Other routines, like mmap(2), mayor may not update st_atime.The field st_mtime is changed by file modifications, for example, by mknod(2), truncate(2),utime(2) and write(2) (of more than zero bytes). Moreover, st_mtime of a directory ischanged bythe creation or deletion of files in that directory. The st_mtime field is not changed forchanges in owner, group, hard link count, or mode.The field st_ctime is changed by writing or by setting inode information (i.e., owner,group, link count, mode, etc.).有了英文手册,理解起来就简单些了,从上面分析:•atime:access time文件被访问的最后时间。
linux命令(重新整理)Linux基本操作命令首先介绍一个名词“控制台(console)”,它就是我们通常见到的使用字符操作界面的人机接口,例如dos。
我们说控制台命令,就是指通过字符界面输入的可以操作系统的命令,例如dos命令就是控制台命令。
我们现在要了解的是基于Linux操作系统的基本控制台命令。
有一点一定要注意,和dos命令不同的是,Linux的命令(也包括文件名等等)对大小写是敏感的,也就是说,如果你输入的命令大小写不对的话,系统是不会做出你期望的响应的。
模式切换1、由字符到图型#startx或#init 52、由图形到字符#logout或init 33、注销#logout或exit或ctrl+d4、关机#poweroff或init 0或shutdown now或halt -p5、重启#reboot或init 6或shutdown -r now获得帮助#help提供内部命令的帮助#man或info提供外部命令的帮助。
如果你的英文足够好,那完全可以不靠任何人就精通linux,只要你会用man。
Man实际上就是察看指令用法的help,学习任何一种UNIX类的操作系统最重要的就是学会使用man这个辅助命令。
man是manual(手册)的缩写字,它的说明非常的详细,但是因为它都是英文,看起来非常的头痛。
建议大家需要的时候再去看man,平常吗,记得一些基本用法就可以了。
ls这个命令就相当于dos下的dir命令一样,这也是Linux控制台命令中最为重要几个命令之一。
ls最常用的参数有三个:-a -l -F。
ls -aLinux上的文件以“.”开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们的,而用ls -a除了显示一般文件名外,连隐藏文件也会显示出来。
ls -l(这个参数是字母L的小写,不是数字1)这个命令可以使用长格式显示文件内容,如果需要察看更详细的文件资料,就要用到ls -l这个指令。
Zookeeper简单操作使⽤(⼆)1 安装配置ZooKeeper1.1 基本安装将下载的apache-zookeeper-3.5.5-bin.tar.gz⽂件使⽤命令tar -xzvf 解压到 /usr/java ⽬录,并将原⽬录名修改为zookeeper-3.5.5。
进⼊zookeeper-3.5.5⽬录并创建两个⼦⽬录 data 和logs。
# mkdir data logs# echo 创建⼀个唯⼀的zookeeper实例号,我是⽤IP最后⼀个字节# cd data# vim myid // 输⼊ 128 后保存退出128# echo 复制 zoo_sample.cfg 为 zoo.cfg# cp zoo_sample.cfg zoo.cfg# 修改参数 dataDir# vim zoo.cfgdataDir=/var/lib/zookeeper然后修改 /etc/profile,增加修改相应的环境变量# vim /etc/profileexport PGDATA=/usr/java/postgres/dataZOOKEEPER_HOME=/usr/java/zookeeper-3.5.5PATH=$ZOOKEEPER_HOME/bin:$PATHexport ZOOKEEPER_HOME PATH# zkServer.sh start //启动服务# zkServer.sh status //查看服务状态# zkServer.sh stop //停⽌服务Zookeeper使⽤的默认端⼝是2181,可以在conf/zoo.cfg中修改这个端⼝号。
安装完成后,需要在防⽕墙开启端⼝# firewall-cmd --zone=public --add-port=2181/tcp –permanent# firewall-cmd –reload1.2 ZooKeeper安装为服务创建⾃动启动的脚本# cd /etc/rc.d/init.d# touch zookeeper# chmod +x zookeeper# vim zookeeper#!/bin/bash#chkconfig:2345 10 90#description:service zookeeper#set java environmentJAVA_HOME=/usr/java/jdk8u222-b10JRE_HOME=/usr/java/jdk8u222-b10/jreCLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/libPATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/binexport JAVA_HOME JRE_HOME CLASS_PATH PATHexport PGDATA=/usr/java/postgres/dataZOOKEEPER_HOME=/usr/java/zookeeper-3.5.5PATH=$ZOOKEEPER_HOME/bin:$PATHexport PATH ZOOKEEPER_HOMEsu root ${ZOOKEEPER_HOME}/bin/zkServer.sh "$1"// 添加到启动脚本# chkconfig --add zookeeper// ⼿⼯启动# service start zookeeper1.3 控制台使⽤zookeeper命令⾏连接到zookeeper# zhCli.sh -server 127.0.0.1:2181关于 zookeper的常⽤使⽤命令百度即可或者⽤help命令查看。
Linux文件有3个修改时间,很多朋友都喜欢弄混淆,也包括我在内,现在列出来供参考。
1)modification time (mtime,修改时间):这个时间指的是文件内容修改的时间,而不是文件属性的修改,当数据内容修改时,这个时间就会改变,用命令ls -l默认显示的就是这个时间:2)status time (ctime,状态时间):当一个文件的状态改变时,这个时间就会改变,例如更改了文件的权限与属性等,它就会改变。
3)access time (atime,访问时间):当读取文件内容时,就会更改这个时间,例如使用cat 去读取/etc/man.config,那么该文件的atime就会改变。
例如:# ls -l --full-time /etc/man.config-rw-r--r-- 1 root root 4522 2007-11-17 18:47:54.000000000 +0800 /etc/man.config# ls -l --time=atime --full-time /etc/man.config-rw-r--r-- 1 root root 4522 2010-03-15 14:20:20.000000000 +0800 /etc/man.config# ls -l --time=ctime --full-time /etc/man.config-rw-r--r-- 1 root root 4522 2008-07-11 16:21:55.000000000 +0800 /etc/man.config-----------------------------------------------------------------------------------#cat /etc/man.config执行之后再查看atime,该时间已经更改# ls -l --time=atime --full-time /etc/man.config-rw-r--r-- 1 root root 4522 2010-03-15 14:24:30.000000000 +0800 /etc/man.config更改文件权限:# chmod o-r /etc/man.config查看ctime,已经更改。
简名全名中⽂名含义atimeaccess time 访问时间⽂件中的数据库最后被访问的时间mtimemodify time 修改时间⽂件内容被修改的最后时间ctime change time 变化时间⽂件的元数据发⽣变化。
⽐如权限,所有者等linux 中⽂件的三种time (atime,mtime,ctime )linux 下⽂件有3个时间的,分别是atime,mtime,ctime 。
有些博友对这3个时间还是⽐较迷茫和困惑的,我整理了下,写下来希望对博友们有所帮助。
1 这三个time的含义2 如何查看这3个time[root@centos7 time ]# pwd/app/time[root@centos7 time ]# lltotal 8-rw-------. 1 root root 1933 Nov 11 08:14 anaconda-ks.cfg-rw-r--r--. 1 root root 59 Nov 11 08:15 issue[root@centos7 time ]# stat issueFile: ‘issue’Size: 59 Blocks: 8 IO Block: 4096 regular fileDevice: 805h/2053d Inode: 261123 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Context: unconfined_u:object_r:etc_runtime_t:s0Access: 2017-11-11 08:15:05.650986739 +0800Modify: 2017-11-11 08:15:05.650986739 +0800Change: 2017-11-11 08:15:05.650986739 +0800Birth: -[root@centos7 time]# ls -l #默认的ls -l 显⽰的是mtimetotal 8-rw-------. 1 root root 1933 Nov 11 08:14 anaconda-ks.cfg-rw-r--r--. 1 zhaojiedi root 71 Nov 11 09:05 issue[root@centos7 time]# ls -l --time=atime #列出⽂件的atimetotal 8-rw-------. 1 root root 1933 Nov 11 08:14 anaconda-ks.cfg-rw-r--r--. 1 zhaojiedi root 71 Nov 11 09:12 issue[root@centos7 time]# ls -l --time=ctime #列出ctimetotal 8-rw-------. 1 root root 1933 Nov 11 08:14 anaconda-ks.cfg -rw-r--r--. 1 zhaojiedi root 71 Nov 11 09:03 issue3 三个time 的测试3.1 测试准备⼯作测试前,我们需要先关闭⽂件系统的relatime 特性。
UNIX与ORACLE备份与恢复网友:fuguizhong 发布于: 2008.06.27 22:55 (共有条评论) 查看评论 | 我要评论不要忘记mtime,atime,以及ctime.unix系统为每个文件都记录这三个不同的时间,第一个是mtime,即修改时间。
无论何时,只要文件内容被改变,mtime的值就会被相应修改。
第二个是atime,即访问时间。
只要文件被访问(比如运行或读取),它就会被修改。
第三个是ctime,即变更时间。
当文件的属性发生变化(比如改变权限或者所有关系)时,ctime的值就会被改变。
管理员用ctime来查找黑客。
备份会改变atime,tar,cpio,dd都会这样做,dump通过原始设备来读取文件系统,因此它不会改变atime.dump的语法。
dump levelunbdsf blkg-factor density size device-name file_system例子:把/home完全备份到一个称做/dev/rmt/0cbn的本地磁带驱动器上。
# dump 0unbdsf 126 141000 11500 /dev/rmt/0cbn /home把/home完全备份到一个称做/backup/home.dump的光学CD驱动器上。
# dump 0unbdsf 126 141000 11500 /backup/home.dump /home以上命令由三个不需要参数的选项(0,u and n)以及四个需要一个协作参数的选项(b,d,s andf)组成。
命令选项:0---9 指定DUMP应该进行的备份级别。
b 指定DUMP就应该使用的块因子。
u 指定DUMP更新dumpdates文件。
n 完成操作时要通知操作员组的成员。
d(密度) and s(大小)告诉DUMP备份卷有多大,DUMP用这些数字来估计要使用何种磁带。
f 告诉DUMP要使用什么设备。
W,w 告诉DUMP执行一次空运行来告诉你什么文件系统需要备份。
Shutdown -r now Shutdown -r 11:30 Shutdown -r +1 shutdown -h now Shurdown -h 12:09 默认执行sync 将内存中数据回填到硬盘shutdown -k shutdown -cInit 0 关机Init 3 命令行模式Init 5 图形模式查看当前运行级别runlevelCat /etc/inittab | greep idInit 6Export LANG=zh_CN.gbkTime xxx脚本,要花多少时间Cal 08 2015查看日历Wall “广播公告”Whatis --help man setup yasr(suse)Locate ls home 查找Updatedb 查找LocaleCat /etc/sysconfig/il8n 默认的语系Where is vsftpd.conf 查看位置Ifconfig eth0 192.168.1.11 netmask 255.255.255.0Ifconfig eth0 upIfconfug eth0 dowIfup eth0Ifdown eth0/etc/sysconfig/network-scripts/ifcfg-eth0网络配置命令route路由ping检测主机SSH IPXXXXXXXXXXXWho am i 查看增加用户信息last最近/etc/hosts/etc/hosts/sysconfig/networkUnameJava -version输出版本系统信息Sh version.shUname -a输出全部Find -name xxx到bin ./vesionUname -m 查32位和64位id查看增加所属用户组groups查看组Reboot 重启init0关机init5图形界面init3命令行模式init6重启halt硬件关机poweroff-f强行关机sync 将内存中数据回填到硬盘Startx 进入X-我window logout回命令行Cal 日历cal 2011 date-s 07/13/2011 date +%Y/%m/%d date -s 11:55:00 clock --systohc将时间保存到硬件date月日时分年hwclock -w 将时间写入芯片clock --systohc计算运行某个程序所需要的时间time sh myshell.shWall 广播wall hello whatis命令介绍apropos帮助一览help cd is --help info is相关信息setup系统设定工具修改/etc/sysconfig locale显示语系Ifconfig ifconfig eth0 ipnetmask 子母掩码ifconfig eht0 up 启用ifconfig ehto down禁用Route路由netstat -a 显示所有端口接口socket netstat -n IP地址显示netstat -p显示进程号在/etc/sysconfig/network-cripts netconfigGroupadd f1Useradd -g 组-d /home/存放用户目录-m user1Passwd usel 密码Usermod -g 修改用户Userdel -r 连用户家目录文件一起删掉mv 改名移动Mkdir -i -p递归Rm 删除Cp -r 文件路径a.txr(root) cp -r /root/a.txt /home/b.txtRm -r 递归Rm-d 强制删除文件文件夹Cat -n对输出行编号-v 显示控制字符-bPs -ef > 将系统中的所有进程输出到testfile中Gpasswd f1 组密码mkdir /user5 创建文件夹userdel -r user4 删除用户cp -r user415 user414Gpasswd -a user3 first 将用户装到first组中newgrp firstService vsftp restar 服务重启service sshd staus运程登陆的服务状态catv /ect/issue查询系统版本lsb_release -a 查看系统信息Getconf lon_bit 获取变量的值挂载Mount /dev/cdrom /media/卸载Umount /dev/cdrom /media/ cdromMount -t vfat /dev/sda2 /mnt/usbLs /mnt/usbUmount /dev/sda2Fdisk -l usb的挂载Mkdir /mnt/usb mount -t vfat /dev/sda2 /mnt/usb umount /dev/sda2#tar -cvf 名.tar 源文件打包备份信息文件命Tar -xvf 名.tar 解包XTar -zcvf 名.tgz.gz 源文件文件压缩Tar -zxvf 目标文件名.tgz压缩Gzip -c 源文件〉名。
本文由我司收集整编,推荐下载,如有疑问,请与我司联系关于LINUX三种时间戳的详细说明(带实验) 2018/03/11 98 Linux系统将时间标记分三类: atime(Access time):档案上次被读取的时间。
ctime(statusChange time):档案的属性或内容上次被修改的时间。
mtime(Modified time):档案的内容上次被修改的时间。
下面我将用实验给大家讲解一下: [root@localhost ~]# touch a.txt ==》创建文件a.txt [root@localhost ~]# stat a.txt ==》查看时间戳 File: “a.txt” Size: 0 Blocks: 0 IO Block: 4096 普通空文件 Device: fd00h/64768dInode: 674903 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2018-03-10 13:29:04.130157512 +0800 Modify: 2018-03-10 13:29:04.130157512 +0800 Change: 2018-03-10 13:29:04.130157512 +0800 [root@localhost ~]# echo 1 a.txt ==》向文件a.txt追加内容 [root@localhost ~]# stat a.txt ==》查看追加内容后的文件时间戳 File: “a.txt” Size: 1 Blocks: 8 IO Block: 4096 普通文件 Device: fd00h/64768dInode: 674903 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2018-03-10 13:29:04.130157512 +0800 Modify: 2018-03-10 13:29:19.351159892 +0800==》时间戳改变 Change: 2018-03-10 13:29:19.351159892 +0800 ==》时间戳改变 [root@localhost ~]# chmod +x a.txt ==》修改文件a.txt的权限 [root@localhost ~]# stat a.txt ==》查看修改权限后的文件时间戳。
当你同熟练的UNIX用户进行交谈时,你经常会听到他们傲慢地讲出术语“改变时间(change time)”和“修改时间(modification time)”。
对于许多人(和许多字典而言),改变和修改是相同的。
这里会有什么不同那?
改变和修改之间的区别在于是改某个组件的标签还是更改它的内容。
如果有人说chmod a-w myfile,那么这是一个改变;如果有人说echo foo >> myfile,那么
这是一个修改。
改变是文件的索引节点发生了改变;修改是文本本身的内容发生了变化。
[文件的修改时间也叫时间标志 (timestamp).]
只要讨论改变时间和修改时间,就不可能不提到“访问时间(access time)”.访问时间是文件最后一次被读取的时间。
因此阅读一个文件会更新它的访问时间,当它的改变时间并没有变化(有关文件的信息没有被改变),它的修改时间也同样如此(文件本身没有被改变)
有时,在许多地方改变时间或者“ctime”被错误地写成“创建时间”,包括某些UNIX参考手册。
不要相信他们
下面是我man出来的内容,仅供参考!
st_atime
Time when file data was last accessed. Changed by the
following functions: creat(), mknod(), pipe(),
utime(2), and read(2).
st_mtime
Time when data was last modified. Changed by the fol-
lowing functions: creat(), mknod(), pipe(), utime(),
and write(2).
st_ctime
Time when file status was last changed. Changed by the
following functions: chmod(), chown(), creat(),
link(2), mknod(), pipe(), unlink(2), utime(), and
write().
ls显示出的time应该是mtime。
touch后,文件的三个时间应该都会改变,可以试一试。
问题描述
文件的 ctime、mtime、atime 之间有什么区别?
配置信息
解决方法
文件的 Access time,atime 是在读取文件或者执行文件时更改的。
文件的 Modified time,mtime 是在写入文件时随文件内容的更改而更改的。
文件的 Create time,ctime 是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容
更改而更改的。
因此,更改文件的内容即会更改 mtime 和 ctime,但是文件的 ctime 可能会在 mtime 未发生任何变化时更改 - 在权限更改,但是文件内容没有变化的情况下。
ls(1) 命令可用来列出文件的 atime、ctime 和 mtime。
ls -lc filename 列出文件的 ctime
ls -lu filename 列出文件的 atime
ls -l filename 列出文件的 mtime
atime不一定在访问文件之后被修改,因为:使用ext3文件系统的时候,如果在mount的
时候使用了noatime参数那么就不会更新atime的信息。
而这是加了 noatime 取消了, 不代表真實情況.反正, 這三個 time stamp 都放在 inode 中.若 mtime, atime 修改, inode 就一定會改, 既然 inode 改了, 那 ctime 也就跟著要改了.之所以在 mount option 中使用 noatime, 就是不想 file system 做太多的修改, 而改善讀取效能.。