Cron 작업은 SH 스크립트에서 작동하지 않습니다.

Cron 작업은 SH 스크립트에서 작동하지 않습니다.

크론 작업에 문제가 있습니다. 많은 것을 시도했지만 아무것도 작동하지 않습니다. 저는 crontab -ecron을 편집하는 데 사용하는 Raspbian을 사용하고 있습니다.

1분마다 2개의 스크립트를 실행해야 합니다. Python 스크립트(.py)에서는 작동하지만 SH에서는 작동하지 않습니다.

*/1 * * * * /home/root/domoticz/scripts/DOMOTICZ/Home.py
*/1 * * * * /home/pi/Get_temp_bleville.sh

나는 많은 포럼을 읽었고 테스트 목적으로 시도한 스크립트 상단에 추가 #!/bin/sh하거나 추가했습니다.#!/bin/bashchmod 777 Get_temp_bleville.sh

지역, 그룹 소유자(pi 및 루트) 및 다음 구문을 변경해 보았습니다.

*/1 * * * * /bin/sh /home/pi/Get_temp_bleville.sh
*/1 * * * * /bin/bash /home/pi/Get_temp_bleville.sh
*/1 * * * * bash /home/pi/Get_temp_bleville.sh
*/1 * * * * sh /home/pi/Get_temp_bleville.sh
*/1 * * * * root /home/pi/Get_temp_bleville.sh

할 것이 없다:(

$ ls
-rwxrwxrwx 1 pi   pi    228 déc.  19 21:19 Get_temp_bleville.sh

./scriptor를 통해 직접 bash스크립트를 시작 하면 sh작동합니다!

이것은 쉘 스크립트입니다

SH 스크립트:

#!/bin/sh
# Get Weather by API
wget -N http://api.wunderground.com/api/3b048a56ce883f41/conditions/q/pws:I76DOLLE2.json

# Get Temperature and parse file + create txt file with the temparature value
cat pws\:I76DOLLE2.json | jq '.current_observation.temp_c' | xargs echo > Temp_bleville.txt

어떡해?

답변1

비대화형으로 실행되는 쉘 스크립트를 디버깅할 때 나는 항상 다음으로 시작합니다.

#!/bin/sh # or other shell

하지만 즉시 따라해 보세요

# this redirects output to your log file & sends errors there also
exec > [full path of your own log file] 2>&1 
# This makes the script output each command as it is executed
set +x

이러한 이유로 다음과 같이 경로를 설정하거나 명령 앞에 전체 경로 이름을 추가하십시오.

export PATH=/bin:/usr/bin

또는

/usr/bin/wget -N http://api.wunderground.com/api/3b048a56ce883f41/conditions/q/pws:I76DOLLE2.json

관련 정보