在一个班轮中打印打印日期

时间:2018-03-20 15:33:53

标签: bash mongodb

我有一个小的bash one liner打击mongo并得到一些统计数据 - 虽然工作正常但我也希望在前缀上得到日期。这是当前有效的代码:

--quiet --eval "db.getCollectionNames().forEach(function (n) { var s = db[n].stats(); print('namespace=' + s['ns'] +',count=' + s['count']+',avgObjSize=' + s['avgObjSize']+',storageSize=' + s['storageSize']) })"

现在我想在名称空间之前打印出日期,所以我尝试了一些但却无法让它工作......想法?

d="$(date +'%D %r %Z')"

我累了把它作为一个新的VAR加入......

{ var s = db[n].stats(); **var d="$(date +'%D %r %Z')";** print(**d**'namespace=' + s['ns'] +',count=' + s['count']+',avgObjSize=' + s['avgObjSize']+',storageSize=' + s['storageSize']) })"

但在输出上没有这样的运气

EDIT 还尝试在--eval之前添加它,当eval在mongo端工作时,我仍然无法获得打印日期。

d="$(date +'%D %r %Z')" --quiet --eval "db.getCollectionNames().forEach(function (n) { var s = db[n].stats(); print('namespace=' + s['ns'] +',count=' + s['count']+',avgObjSize=' + s['avgObjSize']+',storageSize=' + s['storageSize']) })"

1 个答案:

答案 0 :(得分:2)

这是您的本地bash格式化日期,因此它只是javascript中的一个字符串:

--quiet --eval "db.getCollectionNames().forEach(function (n) { var s = db[n].stats(); print('d=$(date +'%D %r %Z') namespace=' + s['ns'] +',count=' + s['count']+',avgObjSize=' + s['avgObjSize']+',storageSize=' + s['storageSize']) })"