大容量ファイルを含むシェルスクリプト - 時間の経過

大容量ファイルを含むシェルスクリプト - 時間の経過

私はRaspberry Piで毎分画像をキャプチャするシェルスクリプトを作成しました。ずっと写真を撮りましたが、保存ができなくて何かちょっと間違っているような気がしました。このスクリプトがうまくいくかどうかを指摘できる人がいるかどうか疑問に思います。

#!/bin/bash
DATE=$(date +"%Y-%m-%d")
TIME=$(TIME +"%H%M%S")
if[! -d /media/pi/organ/$DATE]; then mkdir /media/pi/organ/$DATE; fi
raspistill -vf -ISO 100 -o /media/pi/organ/$DATE/$TIME.jpg

追加情報: raspistill -vf -ISO 100 -o /media/pi/organ/$DATE.jpg仕事

また、毎分実行するようにcrontabを追加しましたが、これも機能しました。

* 8-20 * * * /home/pi/camera.sh 2>&1

4週間以上放置すると、ファイル数がフォルダ制限を超えるかと心配され、分けて試してみました。

このスクリプトを追加すると動作が停止し、ここで問題を解決する方法がわかりません。

答え1

この行では:

TIME=$(TIME +"%H%M%S")

変数timeをTIME引数で呼び出されたコマンドの出力に設定します。+"%H%M%S"

TIME私が知る限り、RaspberryPiにはコマンドはありません。次のように変更する必要があります。

TIME=$(date +"%H%M%S")

答え2

構文にいくつかのエラーがあります。date変数の割り当てを意味するようですTIME。私の提案は次のとおりです。

#!/bin/bash

DATE=$(date +"%Y-%m-%d")
TIME=$(date +"%H%M%S")
OUTDIR="/media/pi/organ"

if [ ! -d "${OUTDIR}/${DATE}" ]
then 
    mkdir -p "${OUTDIR}/${DATE}" 
fi
raspistill -vf -ISO 100 -o "${OUTDIR}/${DATE}/${TIME}.jpg"

また、親ディレクトリを作成します-pmkdirそれ以外の場合、親ディレクトリがないとスクリプトは失敗します。ファイルシステムパスを保持する変数を上書きするのも良い習慣です"これシェルスクリプトでより多くのことをしたい場合は、良い概要であり、読む価値があります。

通常、set -xスクリプトの先頭に追加すると、デバッグ目的でより多くの情報が印刷されます。

答え3

問題を分析して解決してください。まず、写真を撮って保存するように指示します。

写真を撮っているかどうかはどうすればわかりますか?自分のホームディレクトリにあるテストディレクトリなど、よく知られていて書き込み可能な場所に保存してみましたか?オプションがあるように見えるコマンドを実行しています-vが、これは詳細設定と非常によく似ています。時間をかけてコマンドの出力を見てください。コマンドが要求したすべての操作を実行しない理由がわかります。

次に、自動化を試してください。これにはスクリプトを使用しないでください。次のようなものを使用してくださいcron

重要なことは、これを徐々に行うことです。

関連情報