Cron이 파일에 올바르게 추가되지 않습니다.

Cron이 파일에 올바르게 추가되지 않습니다.

아래와 같이 Raspberry Pi의 온도를 기록하는 스크립트(logtemps.sh)가 있습니다.

TIME1=$(date +%s)
TEMP1=$(</sys/class/thermal/thermal_zone0/temp)
sleep 1s

TIME2=$(date +%s)
TEMP2=$(</sys/class/thermal/thermal_zone0/temp)
sleep 1s

TIME3=$(date +%s)
TEMP3=$(</sys/class/thermal/thermal_zone0/temp)
sleep 1s

echo "$TIME1,$TEMP1"
echo "$TIME2,$TEMP2"
echo "$TIME3,$TEMP3"

달리기는 ./logtemps.sh(예를 들어) 다음을 제공합니다.

1499618156,55843
1499618157,56382
1499618158,55843

이것은 계획대로 진행되고 있습니다.

매분 실행되고 temps.txt.txt를 사용하여 파일에 출력을 추가하도록 cronjob을 설정했습니다 */2 * * * * /home/pi/temp-cron/logtemps.sh >> /home/pi/temp-cron/temps.txt 2>&1.

그러나 내가 볼 때 temps.txt그것은 준다

1499618041,
1499618042,
1499618043,
1499618161,
1499618162,
1499618163,

두 번째 변수($TEMPn)는 완전히 무시되는 것 같습니다.

cronjob은 설치용 이므로 crontab -e내 사용자( )로 pi실행 해야 하므로 직접 실행하지 않으면 어떤 차이가 있는지 알 수 없습니다.

답변1

나는 내용을 변수로 읽는 logtemps.sh데 사용합니다 . 이것은 특징입니다$(<file)file세게 때리다, 그러나 cron은 명령을 실행합니다.. 이 문제를 해결하려면 crontab의 행을 다음으로 변경하십시오.

*/2 * * * * bash /home/pi/temp-cron/logtemps.sh >> /home/pi/temp-cron/temps.txt 2>&1

(에 추가 bash)

또는 #!/bin/bash스크립트 상단에 추가하여 항상 bash.

바라보다혜택 4)#!이 도입된 버전 8 Unix로 업데이트되었습니다.

Cron에서 실행되는 시간이 너무 길기 때문에 sh스크립트는 bash항상 shebang 명령만 사용합니다.

관련 정보