这是我正在编写的用于记录 CPU 负载的 bash 脚本片段:
#!/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
可以通过cron执行。我通过添加一个虚假任务来测试每分钟触发一次:/usr/bin/mpstat -P ALL >> somefile
并检查输出。有用。egrep
,tr
, 并且cut
在 cron 下都可以正常工作。我认为它确实与 eval 分配约定有关......但我不知道为什么这会是一个问题,因为它是一个相对基本的构造......在尝试了亚当的建议之后,我现在不知道该怎么想......
编辑:去掉eval
使用......仍然没有骰子。