Crontab 行转义 % 在输出中产生



OS solaris.

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

我想拥有日期时间格式 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 13:09 起 52 天, 14:45, 2 用户, 加载 平均: 0.99, 1.41, 1.45

但我得到的是:

\

2017\03\16\13\09 1:09pm 起 52 天, 14:45, 2 用户, 加载 平均: 0.99, 1.41, 1.45

那么如何让它正常工作。

提前谢谢。

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

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

最新更新