如果从 cron 中运行,则不会将任何内容写入我的文本文件

如果从 cron 中运行,则不会将任何内容写入我的文本文件

我有一个脚本,可以在其中将一些文本写入文件。如果我从 shell 手动调用它,它工作得很好,但如果从 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

这应该提供有关运行时发生的情况的详细信息。

相关内容