cronで実行すると、私のテキストファイルには何も記録されません。

cronで実行すると、私のテキストファイルには何も記録されません。

ファイルにテキストを書き込むスクリプトがあります。シェルから手動で呼び出すと正常に動作しますが、cronから呼び出すと正しく動作しないようです。ファイルが作成されましたが、何も記録されませんでした/tmp/tx_buf。スクリプトは次のとおりです。

#!/bin/bash

declare -i Threshold=1000
tmpfile="/tmp/tx_buf"

if [ -e $tmpfile ]
then
        echo "$tmpfile exists, read value"
        typeset -i last=$(cat $tmpfile)
        echo $last
fi
typeset -i val=$(cat /sys/class/net/eth0/statistics/tx_packets)
echo $val > $tmpfile
declare -i diff=`expr $val - $last`
echo "difference: $diff"
if [[ "$diff" -gt "$Threshold" ]]
then
        echo "music is playing, invoke action"
        `xdotool mousemove_relative 1 1`
else
        echo "no music playing, ignore"
fi

なぜ、驚いたの?

ベストアンサー1

次の方法でトラブルシューティングを実行できます。

スクリプトヘッダーを次のように変更します。

#!/bin/bash

1>/tmp/$0.log 2>&1 を実行します。
セット-x

...残りのスクリプトをここに挿入してください...

cronがスクリプトを起動したら、次のファイルを見つける必要があります。

/tmp/.log

これは、実行時に何が起こっているのかに関する詳細な情報を提供する必要があります。

おすすめ記事