2017-03-16 83 views
2

OS solaris中产生\。Crontab行转义%在输出

我正在尝试从正常运行时间命令中记录系统信息。 为此,我安排了一项每小时运行一次的crontab作业。 正常运行时间随时间而不是日期时间输出,所以我将日期命令与正常运行时间结合在一起。

我想为此格式的日期时间格式yyyymmddHHMM格式化日期输出(日期+“%Y%m%d%H%M”)。

如果它不在crontab上,它可以很好地工作。 对于crontab 会导致错误,所以我需要使用****转义以使其正常工作。 因此,这里是我的cron作业线:

0 * * * * bash -c "date +'\%Y\%m\%d\%H\%M' | tr '\n' ' ' && uptime" >> /tmp/uptime.log 

因此,我希望出来是这样的:

201703161309 13:09同比增长52天(S),14:45,2个用户,负载 平均:0.99,1.41,1.45

但我得到的是:

\ 2017年\ 03 \ 16 \ 1 3 \ 09 13:09同比增长52天(S),14:45,2个用户,负载 平均:0.99,1.41,1.45

那么如何使其正常工作。

在此先感谢。

回答

1

由于您使用的是bash,因此您可以通过另一种方式来逃脱%$'\045'。这看起来很奇怪,但它应该工作(我没有solaris上测试它)

0 * * * * bash -c "date +$'\045'Y$'\045'm$'\045'd$'\045'H$'\045'M | tr '\n' ' ' && uptime" >> /tmp/uptime.log 
+0

这工作。谢谢 – aeliv002