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
空になります。
このことを機能させるために、過去 3 時間、何百万ものことを試してきましたが、何も見つかりません。誰にもアイデアはありますか?
ノート:
/usr/bin/mpstat
cron で実行できます。毎分起動する偽のタスクを追加してテストし/usr/bin/mpstat -P ALL >> somefile
、出力を確認しました。できます。egrep
、tr
、およびcut
すべて cron の下で正常に機能します。私はそれが本当に eval 割り当て規則に関係していると考えています...しかし、それが比較的基本的な構造であることを考えると、なぜそれが問題になるのかわかりません...アダムの提案を試した後、どう考えればいいのかわかりません...
編集:使用法を取り除きましたeval
...まだサイコロはありません。