nada é gravado no meu arquivo de texto se executado dentro do cron

0

Eu tenho um script no qual escrevo algum texto em um arquivo. Ele funciona bem se eu manualmente invoco o shell, mas ele não parece funcionar habilmente se for invocado pelo cron. O arquivo é criado, mas nada é gravado em /tmp/tx_buf . O script parece:

#!/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

Por que isso, estou me perguntando?

    
por cerr 19.03.2017 / 16:58

1 resposta

2

Você poderia fazer algumas soluções de problemas da seguinte maneira:

Altere o cabeçalho do script assim:

#!/bin/bash

exec 1>/tmp/$0.log 2>&1
set -x

...insert the rest of you script here....

Após o cron iniciar seu script, você deve encontrar um arquivo chamado

/tmp/.log

Isso deve fornecer detalhes sobre o que estava acontecendo durante o tempo de execução.

    
por 19.03.2017 / 19:12