Crontab line escape % 在输出中生成 \
Crontab line escape % makes \ in the output
OS 太阳系.
我正在尝试通过 uptime 命令记录系统信息。
为此,我在 crontab 中安排了一个每小时运行一次的作业。
uptime 带有时间输出但没有 datetime,所以我将 date 命令与 uptime 结合起来。
我想要日期时间格式 yyyymmddHHMM 为此,我将日期输出格式化为格式 (date +"%Y%m%d%H%M")。
如果它不在 crontab 上,它工作得很好。
对于 crontab % 导致错误,所以我需要使用 **** 转义 % 以使其工作。
所以这是我的 cron 工作行:
0 * * * * bash -c "date +'\%Y\%m\%d\%H\%M' | tr '\n' ' ' && uptime" >> /tmp/uptime.log
所以我希望结果是这样的:
201703161309 1:09pm up 52 day(s), 14:45, 2 users, load
average: 0.99, 1.41, 1.45
但我得到的是:
17 1:09pm up 52 day(s), 14:45, 2 users, load
average: 0.99, 1.41, 1.45
那么如何让它正常工作呢
提前致谢。
由于您正在使用 bash,因此还有另一种方法可以避免 %
:$'5'
。这看起来很奇怪,但它应该可以工作(我没有 solaris 来测试它)
0 * * * * bash -c "date +$'5'Y$'5'm$'5'd$'5'H$'5'M | tr '\n' ' ' && uptime" >> /tmp/uptime.log
OS 太阳系.
我正在尝试通过 uptime 命令记录系统信息。 为此,我在 crontab 中安排了一个每小时运行一次的作业。 uptime 带有时间输出但没有 datetime,所以我将 date 命令与 uptime 结合起来。
我想要日期时间格式 yyyymmddHHMM 为此,我将日期输出格式化为格式 (date +"%Y%m%d%H%M")。
如果它不在 crontab 上,它工作得很好。 对于 crontab % 导致错误,所以我需要使用 **** 转义 % 以使其工作。 所以这是我的 cron 工作行:
0 * * * * bash -c "date +'\%Y\%m\%d\%H\%M' | tr '\n' ' ' && uptime" >> /tmp/uptime.log
所以我希望结果是这样的:
201703161309 1:09pm up 52 day(s), 14:45, 2 users, load average: 0.99, 1.41, 1.45
但我得到的是:
17 1:09pm up 52 day(s), 14:45, 2 users, load average: 0.99, 1.41, 1.45
那么如何让它正常工作呢
提前致谢。
由于您正在使用 bash,因此还有另一种方法可以避免 %
:$'5'
。这看起来很奇怪,但它应该可以工作(我没有 solaris 来测试它)
0 * * * * bash -c "date +$'5'Y$'5'm$'5'd$'5'H$'5'M | tr '\n' ' ' && uptime" >> /tmp/uptime.log