在 CentOS 上校验时间戳(timestamp)有效性,通常要看你指的是哪一类场景。下面按常见需求分别说明,并给出可直接用的命令。
date
CentOS 7/8/Stream 通常使用 chronyd:
chronyc tracking
关注字段:
System time:系统时间偏差Last offset:与 NTP 的偏差(秒)Leap status:是否正常✅ 正常示例:
Leap status : Normal
chronyc -a makestep
date
例如校验时间戳 1700000000:
date -d "@1700000000"
✅ 合法输出示例:
Sun Nov 19 21:13:20 CST 2023
❌ 非法时间戳会报错:
date: invalid date ‘@-1’
now=$(date +%s)
ts=1700000000
if [ "$ts" -gt "$now" ]; then
echo "时间戳在未来"
else
echo "时间戳在过去或当前"
fi
ts=1700000000
if [[ "$ts" =~ ^[0-9]+$ ]]; then
echo "格式合法"
else
echo "非法时间戳"
fi
stat filename
或:
date -r filename
openssl x509 -in cert.pem -noout -dates
示例:
notBefore=Dec 1 00:00:00 2023 GMT
notAfter=Dec 1 00:00:00 2024 GMT
journalctl -u chronyd
timedatectl
修改时区:
timedatectl set-timezone Asia/Shanghai
| 需求 | 命令 |
|---|---|
| 查看当前时间 | date |
| 校验时间是否同步 | chronyc tracking |
| 校验时间戳是否合法 | date -d @timestamp |
| 判断时间戳是否过期 | date +%s 对比 |
| 查看文件时间 | stat file |
如果你指的**“时间戳有效性”**是:
可以具体说明,我可以针对你的场景给出更精确的校验方法或脚本。