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