1

我目前正在使用 ESXI 并想获得 X 天前的日期我有这个命令行在其他 linux 上工作:

now=`date +"%Y/%m/%d"`
earlier=`date -d "$now -15 days" +%d/%m/%Y`

但是当我尝试在我的 esxi 服务器上使用它时:

earlier=`date -d "$now -15 days" +%d/%m/%Y`

不工作,我得到错误

date: invalid date '2018/01/30 -4 days'

所以我试着用不同的方式写日期,比如美国格式,但仍然有错误。

esxi 版本是 6.0.0

我在互联网上搜索过,但没有找到任何东西。

有人可以知道是什么问题吗?谢谢你。

编辑:对于那些有同样问题的人,我在下面的评论中得到了解决方案

4

1 回答 1

4

原来这是busybox日期。Busybox date 的功能非常有限,但幸运的是它支持(未记录)@seconds 语法:

date -d "@$(( $(busybox date +%s) - 86400 * 7 ))" +%d/%m/%Y

这当然需要您拥有现代版本的 bash。如果此命令不起作用,请尝试输入“bash”,如果有效,请尝试再次输入该命令。

如果您没有现代 bash ......那么您是否安装了 awk 或 bc ?Python?珀尔?基本上,战术目标是让日期吐出秒数,减去 7 天的秒数,然后再次将输出输入日期以转换格式。

老的

试试这个命令行。它避免了可能会混淆某些日期版本的 $now 引用。

date -d "15 days ago" +%d/%m/%Y

如果这不起作用,您能告诉我们您使用的是哪个版本的日期吗? date --version和/或date --help应提供必要的信息。

于 2018-01-30T16:54:57.763 回答