获取Win和Linux系统启动时间,类似uptime功能,用于判断是否修改过系统时间
2020-11-30 19:37
1251 查看
目录
前言
有时候需要判断系统是否有修改过时间,最简单的方法就是获取
当前时间A,然后sleep X秒,然后获取 时间B,如果 时间B - 时间A ≠ X,那就表示系统时间被修改过。
上面方案是可行的,但时间A和延时X在进程重启时不太好判断系统时间是否修改过时间。
已经有接口可以获取系统运行秒数,那么可以用当前时间减去运行秒数,得到系统启动时间,如果下一次计算出来的系统启动时间有变化则可以认为修改过系统时间。
测试代码
下面是我的测试代码,相关方法我已经写到我常用的库里面了。对外提供接口为获取系统运行时间(单位:秒),以及获取系统启动时间(为时间戳,如果没有修改时间则每次获取都一样)。
package main import ( "fmt" "time" "github.com/jan-bar/golibs/timer" ) func main() { fmt.Printf("run:%d,uptime:%s\n", timer.GetUpTime(), time.Unix(timer.GetSysUpTime(), 0).Format("2006-01-02 15:04:05")) }
Win测试
需要对比win的启动时间可以使用
systeminfo命令,下图就是运行结果,程序输出系统运行时间和启动时间点。
Linux测试
在Linux下系统运行时间是保存在
cat /proc/uptime的第一个值,因此可以用命令date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"
得到Linux的启动时间,如下图所示。
总结
本文提供了获取Win和Linux获取系统运行时间的方法,都是调用相关方法,不是用啥命令行获取的,效率还是杠杠的。
用法不止用来判断是否修改过系统时间,还可以用来做某些系统展示使用,总之系统提供的方法我们在合适的时候使用就行咯。
相关文章推荐
- linux c 获取系统启动时间 uptime
- 牛客网Java刷题知识点之File对象常用功能:获取文件名称、获取文件路径、获取文件大小、获取文件修改时间、创建与删除、判断、重命名、查看系统根目录、容量获取、获取某个目录下内容、过滤器
- linux获取系统启动时间
- 修改 linux 默认启动级别 设置系统时间 定时关机
- 修改 linux 默认启动级别 设置系统时间 定时关机
- Linux 获取文件时间信息 判断文件是否存在
- linux获取系统启动时间
- 程序中获取linux系统启动时间方法
- 获取AIX文件最后修改时间,类似Linux的time-style显示的时间格式
- Linux查看系统启动时间和负载,uptime命令
- linux获取系统启动时间示例详解
- 修改 linux 默认启动级别 设置系统时间 定时关机
- linux系统怎么判断路由转发功能是否开启?
- Linux 判断文件修改时间和系统时间差
- /proc/uptime详解,获取系统启动时间,系统负载率
- 修改linux系统启动时默认等待时间
- 程序中获取linux系统启动时间方法
- uptime命令查看系统启动时间和运行时间、查看linux系统负载
- Linux时间修改导致的系统启动问题
- Linux下查看系统上次启动时间命令:last reboot/ who -b /uptime