发布于2026-08-21 阅读(0)
扫一扫,手机访问
CentOS 7 默认启用relatime,而不是禁用atime。relatime仅在atime早于mtime/ctime,或者超过24小时未更新时才会刷新atime,它兼顾了性能与兼容性。真正彻底禁用atime的是noatime,需通过/etc/fstab或mount -o remount进行配置。

系统级的文件访问时间(atime)更新行为由挂载选项决定,touch 命令只能修改单个文件的时间戳,无法改变内核对整个文件系统的 atime 更新策略。真正起作用的是 /etc/fstab 中的挂载参数。
常见错误是以为改了 touch -a 或调了 sysctl 就能全局开关 atime,其实完全不相关——touch 只是“写入”,而 atime 是否自动更新,取决于 mount 时是否带 noatime、relatime 或默认的 strictatime。
noatime:彻底禁用 atime 更新(推荐用于性能敏感场景,如数据库、Web 服务)relatime(CentOS 7 默认):仅当 atime 早于 mtime/ctime 时才更新,兼顾兼容性与性能strictatime:每次 read 都强制更新 atime(极少用,开销大)查看当前根文件系统挂载参数:
mount | grep " / "
输出中若含 relatime,说明已是 CentOS 7 默认行为;若含 noatime,则 atime 不会自动更新,此时即使执行 cat file,stat file 显示的 atime 也不会变。
用 mount -o remount 可在线调整,但仅对当前会话有效,重启后恢复 /etc/fstab 设置。
sudo mount -o remount,strictatime /sudo mount -o remount,relatime /sudo mount -o remount,noatime /执行后立即生效,可验证:
stat /etc/passwd | grep Access
再 cat /etc/passwd,对比前后 Access 时间是否变化。
直接改 /etc/fstab 中对应分区的挂载选项字段(第4列),例如:
/dev/vda1 / ext4 defaults,noatime 1 1
注意:defaults 已隐含 relatime,加 noatime 会覆盖它;若写成 defaults,relatime 则冗余,但无害。
sudo cp /etc/fstab /etc/fstab.baksudo mount -a 测试语法是否正确(无输出即成功)当文件系统挂载为 noatime 时,touch -a file 仍能成功——因为这是显式写入,绕过了内核的自动 atime 更新逻辑。但普通读操作(cat、less)不会触发 atime 变更。
touch -a file && stat file —— Access 时间一定变cat file && stat file —— Access 时间不变(noatime 下)touch 失效,是“自动更新”被挂载选项关掉了真正要调的不是 touch 参数,而是挂载选项;touch 只负责手动干预,不参与策略控制。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9