esxi 上的命令行无法获取 X 天前的日期

1 esx date esxi busybox

我目前正在使用 ESXI,并且想要获取 X 天前的日期,我在其他 linux 上使用此命令行:

now=`date +"%Y/%m/%d"`
earlier=`date -d "$now -15 days" +%d/%m/%Y`
Run Code Online (Sandbox Code Playgroud)

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

earlier=`date -d "$now -15 days" +%d/%m/%Y`
Run Code Online (Sandbox Code Playgroud)

不起作用,我收到错误

date: invalid date '2018/01/30 -4 days'
Run Code Online (Sandbox Code Playgroud)

所以我尝试以不同的方式(例如美国格式)写入日期,但仍然有错误。

esxi版本是6.0.0

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

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

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

Set*_*son 5

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

date -d "@$(( $(busybox date +%s) - 86400 * 7 ))" +%d/%m/%Y
Run Code Online (Sandbox Code Playgroud)

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

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

老的

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

date -d "15 days ago" +%d/%m/%Y
Run Code Online (Sandbox Code Playgroud)

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