当前位置:首页 » 操作系统 » linux时间比较

linux时间比较

发布时间: 2025-08-07 07:53:36

1. linux下用shell获取指定文件的最后修改时间并与系统时间比对,如果相差时间超过3分钟则执行另一个脚本

使用date命令加上合适的时间格式化字符串(+%s),会显示当前时间(或-d参数指定的时间)与1970-01-01 00:00:00相差的秒数(详细可以参考date的man手册)

所以基本想法就是使用date命令分别获取当前时间与文件修改时间的秒数,然后看这2个秒数之间是否有相差180秒以上。

获取当前时间比较简单,直接date +%s就ok了

下面看看如何获取文件时间

使用stat 命令后面跟一个文件名可以获取文件的状态,包括文件修改时间。其中文件修改时间会单独一行显示,格式如下:Modify: 2013-02-21 17:58:05.404876407 +0800 (具体的精度可能系统不同略微有些差别,但大致格式是这样)

所以我们可以stat myfilename | grep Modify来获取文件的修改时间的信息,然后通过awk分别获取时间的日期和时间段

stat myfilename | grep Modify | awk '{print $2}' #这句获取了日期段,即上面例子里面的2013-02-21

stat myfilename | grep Modify | awk '{split($3,var,".");print var[1]}' #这句获取了时间段,即上面例子里面的17:58:05,具体关于awk的使用可以参考awk的使用手册

那么现在可以获取文件修改时间与1970-01-01 00:00:00相差的描述了,就是date -d "$file_date $file_time" +%s

那么这个时间与当前时间想减的结果与180相比就可以知道是否满足条件了,满足条件的话就可以执行相应的命令。

参考代码如下:

current_datetime=`date +%s`
filedate=`stat tt.txt | grep Modify | awk '{print $2}'`
filetime=`stat tt.txt | grep Modify | awk '{split($3,var,".");print var[1]}'`
file_datetime=`date -d "$filedate $filetime" +%s
timedelta=`expr $current_datetime - $file_datetime`
if [ "$timedelta" -gt "180" ];then
echo "match condition"
fi

2. linux里date命令显示的时间和自己的不对。说是cst,什么意思,是时区问题吗。

CST代表


  1. ChinaStandardTime

  2. CentralStandardTime


如果是第一种情况,就不需要更改时区。因为中国标准时间就是北京时间。


如果是第二种情况,使用的就是美国中部时间,需要修改时区。


不过我个人认为,你说的时间不一样,不一定是时区问题。也有可能是你启用了UTC导致的。


如果你使用了UTC,那么你BIOS里面的时间,就是UTC 0的时间。简言之,从北京时间中减去8个小时即可。


我的机器使用的就是UTC。

date 命令,使用不同参数,显示出不同结果,使用-u 后,显示出的时间就是UTC时间。


3. clockdiff命令如何准确测量两台Linux主机的时间差

clockdiff命令通过发送带有时间戳的IP报文或ICMP报文来准确测量两台Linux主机之间的时间差。以下是使用clockdiff命令测量时间差的关键步骤和注意事项:

  1. 基本使用

    • 语法:clockdiff [参数] [ip地址]
    • 示例:clockdiff 202.38.64.9
  2. 使用IP时间戳

    • 参数o:使用IP时间戳进行测量。这可以提供更精确的时间戳信息,因为IP时间戳记录了报文经过每个路由器的时间。
    • 示例:clockdiff o 202.38.64.9
  3. 详细时间戳信息

    • 参数o1:提供更详细的时间戳信息,包括每个路由器的时间戳记录。
    • 注意:并非所有路由器都支持记录IP时间戳,因此详细信息的可用性取决于网络环境。
  4. 考虑网络环境

    • clockdiff的准确性可能受到路由配置的影响。某些路由器可能不会记录或使用ICMP或IP时间戳。
    • 在使用clockdiff之前,确保网络环境稳定,并且路由器配置允许时间戳的记录和传输。
  5. 解析ping命令的数据

    • 可以通过ping命令配合T选项获取时间戳,然后使用clockdiff命令解析这些数据。但这种方法通常不如直接使用clockdiff的内置时间戳功能准确和方便。
  6. 结果解释

    • clockdiff命令输出的时间差表示两台主机之间的系统时间差异。正值表示目标主机的时间比本地主机快,负值表示目标主机的时间比本地主机慢。

综上所述,clockdiff命令是一种有效的工具,用于测量两台Linux主机之间的时间差。在使用时,应注意网络环境的稳定性和路由器的配置,以确保测量结果的准确性。

4. linux shell 如何比较2个文件最后修改时间的大小

仅攻参考
#!/bin/bash -
# 获取文件列表,并删除第一行的total ***
filelist=`ls -lt --full-time $* | sed '1d'`
time=()
file=()
#修改shell的字段分割符
IFS=$'\n'
for f in ${filelist}
do
#取出每行的文件名字段,放入数组file中
filename=`echo $f | awk '{printf("%s", $9);}'`
file+=($filename)
#取出每行的时间字段,转换成EPOCH秒数值(方便比较),放入数组time中
date_modified=`echo $f | awk '{printf("%s %s", $6, $7);}'`
timestr=`date --date="$date_modified" +%s`
time+=($timestr)
done

#取出数组中元素个数,即文件数
#数组file和数组time中每个元素一一对应,即一个文件对应其修改时间值
cnt=${#file[*]}
for((i=0;i<$cnt-1;i++))
do
#如果前者的修改时间大于后者,则输出提示
if [ ${time[$i]} -gt ${time[$i+1]} ];then
echo "Modification time: ${file[$i]} > ${file[$i+1]}"
fi
done

5. Linux中三个重要时间

系统大全为您提供Linux中三个重要时间
一、定义
Changtime:简称ctime,一个文件或目录的更改时间。在Linux中,基本上无法知道一个文件的精确创建时间,更改时间是指文件或目录的属性(所有者,权限等等)被修改的时间。如果一个文件需要备份的话,mp命令需要用到ctime,你可以用ls-lc命令查看ctime。
Accesstime:简称atime,一个文件或目录的访问时间。就是一个文件的数据最后一次被访问的时间,例如:显示一个文件的内容或运行一个shell脚本会更新文件的atime,你可以用ls-lu命令查看。
Modifytime:简称mtime,一个文件或目录的修改时间。就是文件的目前内容最后被修改的时间,这是一个在长目录列表中显示的时间
二、如何修改
在Linux中,状态命令会显示三次,
例如:$catfile文件的atime将更新
$chmodg+wfile文件的ctime将更新
$echo“Filecontentss”>file文件的ctime和mtime将更新。
Linux文件与目录的三种时间状态:
1mtime:最后一次修改文件或目录的时间
2ctime:最后一次改变文件或目录(改变的是原数据即属性)的时间,如记录该文件的inode节点被修改的时间。而且chmod,chown等命令也能改变该值。
3atime:最后一次访问文件或目录的时间。
对于文件,当修改mtime时ctime必须随着改变,因为文件大小等都是属性,有人说atime也一定会改变,要想修改文件必须先访问,其实是不对的,不访问文件也能修改,如#echo“Thosisatest”>>/etc/issue,issue文件内容会改变,但并没有访问文件,所以atime并没有改变。
对于目录,访问一个目录其atime改变,mtime,ctime不变。修改一个目录,在一个目录下touch一个文件,mtime和ctime会改变,atime不一定会变。
使用stat命令可以查看三个时间值,例如statfilename,也可以使用ls-lfile查看文件修改时间,ls-lcfile查看文件状态改动时间,ls-lufile查看文件访问时间。
以上就是系统大全给大家介绍的如何使用 Linux中三个重要时间 的方法都有一定的了解了吧,好了,如果大家还想了解更多的资讯,那就赶紧点击系统大全官网吧。 
 
本文来自系统大全http:///如需转载请注明!
 

热点内容
sql表的复制 发布:2025-09-18 11:02:25 浏览:67
三位密码锁忘记密码如何重置 发布:2025-09-18 10:21:52 浏览:184
linux怎么编译c文件 发布:2025-09-18 09:55:16 浏览:305
python安装后无法运行 发布:2025-09-18 09:45:57 浏览:239
安卓手机怎么剪辑音乐 发布:2025-09-18 09:44:16 浏览:784
服务器地址修改在哪找 发布:2025-09-18 09:42:41 浏览:444
sntp服务器地址 发布:2025-09-18 09:28:36 浏览:555
phpunit 发布:2025-09-18 09:25:19 浏览:573
怎么改服务器的ip地址吗 发布:2025-09-18 09:24:33 浏览:14
编译703n固件 发布:2025-09-18 08:50:59 浏览:541