如何验证我的 Bash 脚本中服务器上的时间是否设置正确?

如何验证我的 Bash 脚本中服务器上的时间是否设置正确?

我正在为非常重要的服务器编写终极备份脚本。我的脚本已经:

  • 创建备份
  • 验证复制的文件
  • 验证 gz 档案
  • 通过 scp 将文件发送到远程服务器后,比较本地和远程的 MD5
  • 删除超过 365 天的每月备份、超过 31 天的每周备份、超过 7 天的每日备份、超过 24 小时的每小时备份
  • 检查本地和远程机器上的可用磁盘空间
  • 如果发生错误则发送电子邮件报告
  • 发送每周备份的电子邮件报告

除此之外,我还错过了一件重要的事情——本地和远程的时钟验证,因为它会影响副本的命名和删除。

如何以简单可靠的方式确保 bash 中的日期和时间设置正确?

如果可能的话 - 如果该方法可以在带有 cygwin 的 Windows 服务器上运行就太好了。

我并不是在寻求完整的解决方案,只是建议采取正确而不是复杂的方法。

答案1

您可以在Linux中使用命令:

date +%s

在 Windows (PowerShell) 中

Get-Date -UFormat %s

要得到纪元时间. 这些数字很容易比较。

PS 对于 Windows,您可能需要将数字剥离为整数,如下所示:

$t3 = (Get-Date -UFormat %s).split(',')[0]
echo $t3

注意:此处逗号,是我的十进制数分隔符。根据你的语言,你可能需要更改它。

此命令将为您提供来自外部源的纪元时间(以便与您的机器进行比较)

curl -s "http://worldtimeapi.org/api/timezone/Europe/Rome" |jq '.unixtime'

请随意更改您的时区

相关内容