温度ログを書くための小さな bash コードを書いてみました。ロギング ファイルに 100 のタイムポイントと測定ポイントが書き込まれ、データが一時ファイルに移動され、元のファイルへの記録が再開されます。一時ファイルは 100 秒ごとに削除されます。これは、記録の最後の数分だけが必要であり、ゴミを防ぎたいためです。
その上、コードは不必要に複雑に見えるかもしれません (私は初心者です) - どこが間違っていますか? カウンター(何が起こっているかを確認するためだけに印刷されています)が100までカウントされると思っていましたが、印刷されるだけです:
1
2
100 ではなく 2 つのタイムポイントのみをファイルに書き込みます。コードは次のとおりです。
#!/bin/bash
COUNTER=0
#Initial temporary file is created
echo '' > temperaturelogtemporary.txt;
#100 timepoints are written into temperaturelog.txt
while true; do
echo `date` '->' `acpi -t`>> temperaturelog.txt;
sleep 1;
#as soon as 100 timepoints are recorded...
if [[ $COUNTER > 100 ]];
then
#...the old temporary file is removed and
#the last records are renamed into a new temporary file
rm temperaturelogtemporary.txt;
mv temperaturelog.txt temperaturelogtemporary.txt;
COUNTER=0;
fi
COUNTER=$(($COUNTER + 1));
echo $COUNTER;
done