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

时间:2018-01-30 16:47:36

标签: date busybox esxi esx

我目前正在开发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

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

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

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

1 个答案:

答案 0 :(得分:1)

事实证明这是busybox日期。 Busybox日期的功能非常有限,但幸运的是它支持(无证)@seconds语法:

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

这当然要求你有一个现代版本的bash。如果此命令不起作用,请尝试键入" bash"如果可行则尝试再次输入命令。

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

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

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

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