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,

2番目の変数($ 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コマンドのみを使用します。

関連情報