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

이는 런타임에 무슨 일이 일어나고 있는지에 대한 자세한 정보를 제공해야 합니다.

관련 정보