【发布时间】:2016-03-24 03:49:41
【问题描述】:
这是我正在编写的用于记录 CPU 负载的 bash 脚本的 sn-p:
#!/bin/bash
# ... irrelevant nonsense ...
cmd1="/usr/bin/mpstat -P ALL | egrep '(AM|PM)([[:space:]]+)(0)' | tr -s ' ' | cut -d' ' -f4"
ldsys="$(echo $cmd1 | /bin/sh)"
# ... irrelevant nonsense ...
$ldsys 在常规从控制台执行脚本时设置正确。它是金色的。 问题出在:使用 crontab 执行时,$ldsys 为空。
在过去的三个小时里,我已经尝试了数百万种方法来尝试让这件事发挥作用......但我找不到任何东西。有人有什么想法吗?
注意事项:
/usr/bin/mpstat可以被执行 克朗。我通过添加每分钟触发的虚假任务进行测试:/usr/bin/mpstat -P ALL >> somefile并检查输出。它有效。egrep、tr和cut在 cron 下都可以正常工作。-
我认为它确实与 eval 分配约定有关......但我不知道为什么这会是一个问题,因为它是一个相对基本的构造......在尝试了 Adam 的建议之后,我现在不知道该怎么想...
编辑:去掉了eval的用法...仍然没有骰子。
【问题讨论】:
-
查看我在stackoverflow.com/questions/3639415/variables-in-crontab/… 上关于在 crontab 中使用变量的回答
标签: bash shell cron eval crontab