Crontab行escape%在输出中生成\

时间:2017-03-16 15:02:04

标签: shell escaping crontab solaris

OS solaris。

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

我想要为此设置日期时间格式yyyymmddHHMM我使用格式格式化日期输出(日期+"%Y%m%d%H%M")。

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

java.util.UUID

所以我希望是这样的:

  

201703161309 1:09 pm up 52 day(s),14:45,2个用户,加载   平均值:0.99,1.41,1.45

但我得到的是:

  

\ 2017 \ 03 \ 16 \ 13 \ 09 1:09 pm up 52 day(s),14:45,2个用户,加载   平均值:0.99,1.41,1.45

所以如何让它正常工作。

提前致谢。

1 个答案:

答案 0 :(得分:1)

当您使用bash时,有另一种方法可以逃避%$'\045'。这看起来很奇怪,但它应该有用(我没有solaris来测试它)

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