美文网首页
按照自定义修改系统文件修改时间(atime和mtime)

按照自定义修改系统文件修改时间(atime和mtime)

作者: 花生草 | 来源:发表于2023-07-30 16:56 被阅读0次

为了保证磁盘空间,系统中都有日志清理的功能,所以会有测试日志清理的功能,是否可以正常工作的需求。
为了满足这个测试需求,关键点是要支持修改系统文件的自定义的时间。原因在于日志清理基本原则,是依据日志的新旧,在达到保留日期期限、后者磁盘使用率的条件时,从旧到新按照顺序清理日志

查询了一些资料,发现只支持对atime,mtime的修改成任意的值,不能实现对ctime的修改为一个较旧的时间。如果有方法,欢迎评论.
通过stat命令可以查看这3个值

stat testmodule.log.2023-07-26.0
  File: ‘testmodule.log.2023-07-26.0’
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: fd10h/64784d    Inode: 205898820   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2023-07-26 01:00:00.000000000 +0800
Modify: 2023-07-26 01:00:00.000000000 +0800
Change: 2023-07-31 16:36:38.323777021 +0800
名称 定义
atime 文件中数据最后被访问时间
mtime 文件中数据最后被修改时间
ctime 文件的权限、拥有者、组、链接最后发生改变的时间

以下是具体的脚本,传入1个参数,表示要产生几天前的数据

if [ $# != 1 ];then
    echo "Wrong parameters"
    exit 0
fi
days=$1
dirs=("log1" "log2")
for((i =0; i < ${#dirs[@]};i++));do
    cd ${dirs[$i]}
    rm -f testmodule.log*
    touch testmodule.log
    for(( j=1; j <= $days;j++))do
        timestr=`date -d "$j days ago" +%Y-%m-%d`
        echo "touch -d \"$timestr 01:00\" testmodule.log.$timestr.0"
        touch -d "$timestr 01:00" testmodule.log.$timestr.0
        done
    cd -
done

实际效果为

-rw-r--r-- 1 root root 0 Jul 31 16:36 testmodule.log
-rw-r--r-- 1 root root 0 Jul 26 01:00 testmodule.log.2023-07-26.0
-rw-r--r-- 1 root root 0 Jul 27 01:00 testmodule.log.2023-07-27.0
-rw-r--r-- 1 root root 0 Jul 28 01:00 testmodule.log.2023-07-28.0
-rw-r--r-- 1 root root 0 Jul 29 01:00 testmodule.log.2023-07-29.0
-rw-r--r-- 1 root root 0 Jul 30 01:00 testmodule.log.2023-07-30.0

相关文章

  • 文件操作

    文件时间 stat 访问时间:atime,查看内容 //RHEL6会延后修改atime修改时间:mtime...

  • 笔记6 文件查找

    atime 访问时间mtime 修改时间ctime 创建时间,改变时间dtime 删除时间 grep 文件过...

  • 1.find命令、磁盘管理

    find 根据文件名查找 根据文件类型查找 根据文件大小查找 根据时间戳atime访问,mtime修改,ctime...

  • 每日一个linux命令08-touch

    1. 命令解析 命令用途: 更新文件时间戳(访问时间aTime,修改时间mTime、状态时间)或创建不存在的文件 ...

  • touch更改文件时间戳

    概述 Unix文件系统中的文件或文件夹有三个时间戳,分别为atime、ctime和mtime。 atime表示最后...

  • Linux touch修改文件的atime和mtime

    touch命令格式如下: touch [-acdmt] 文件参数:-a : 仅修改access time。-c :...

  • 23.Linux文件的三种时间

    注:访问时间:atime 表示上一次的访问时间,只有在文件被打开时才会改变 cat修改时间:mtime 表示的是文...

  • Linux下文件的三个时间戳:atime,mtime,ctime

    在linux系统下每个文件都有三个时间戳,分别为atime,mtime,ctime,具体解释如下: atime(a...

  • 文件的隐藏属性

    Linux系统中文件除了显而易见的几个属性(权限(rwx),时间(mtime,ctime,atime))还有一些隐...

  • linux 查找02

    find 时间相关-mtime : 指定时间段被修改过的文件-ctime : 指定时间段被修改文件状态的文件-at...

网友评论

      本文标题:按照自定义修改系统文件修改时间(atime和mtime)

      本文链接:https://www.haomeiwen.com/subject/ppyspdtx.html