> ${CRONLOG}*/1 * *" /> > ${CRONLOG}*/1 * *" />

centos – 如何在crontab输出的日志中设置DATE变量?

centos – 如何在crontab输出的日志中设置DATE变量?
我正在玩一些日期变化的aroudn

DATE = $(date)

但那也没有用

crontab -e

CRONLOG=/tmp/log/crontab.logDATEVAR=`date +20%y%m%d_%H%M%S`* * * * * echo $DATEVAR >> /tmp/log/crontab.log*/2 * * * * echo "$DATEVAR hello" >> ${CRONLOG}*/1 * * * * echo 'every minute' >> ${CRONLOG}

这只是输出文本

我想在crontab.log中创建一个日志条目,每次更新都有一个时间戳

我怎么能在CentOS 6上做到这一点?

UPDATE

DATEVAR=date +20%y%m%d_%H%M%S*/1 * * * * /bin/echo [CRON] $($(DATEVAR)) >> /tmp/log/crontab.log

我尝试时只渲染[CRON]和NOTHING = /

Cron不是shell – 它不像shell那样解析命令.因此,您的变量被分配为静态文本.

我对这个问题有三种解决方案:

选项1:
使用shell脚本生成命令,包含您想要的任何变量和逻辑 – 并从cron调用该shell脚本.

* * * * * /path/to/myscript.sh

myscript.sh:

DATEVAR=`date +20%y%m%d_%H%M%S`echo $DATEVAR >> /tmp/crontab.log

选项2:
在命令中直接包含date命令,并且由于整个命令被传递给shell,因此日期将被处理替换为实际日期.

* * * * * /bin/echo `date +20%y%m%d_%H%M%S` >> /tmp/crontab.log

选项3:在cron中设置字符串变量,并将其传递给要处理的命令(注意 – 百分号不需要转义,变量本身包含在$()中以在单独的shell中执行 – 反引号应该工作相同):

DATEVAR=date +20%y%m%d_%H%M%S* * * * * /bin/echo $($DATEVAR) >> /tmp/crontab.log

(在上面的所有情况中,您当然可以使用变量作为日志路径,而不是“硬编码”它.)

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部