私は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"
また、親ディレクトリを作成します-p
。mkdir
それ以外の場合、親ディレクトリがないとスクリプトは失敗します。ファイルシステムパスを保持する変数を上書きするのも良い習慣です"
。これシェルスクリプトでより多くのことをしたい場合は、良い概要であり、読む価値があります。
通常、set -x
スクリプトの先頭に追加すると、デバッグ目的でより多くの情報が印刷されます。
答え3
問題を分析して解決してください。まず、写真を撮って保存するように指示します。
写真を撮っているかどうかはどうすればわかりますか?自分のホームディレクトリにあるテストディレクトリなど、よく知られていて書き込み可能な場所に保存してみましたか?オプションがあるように見えるコマンドを実行しています-v
が、これは詳細設定と非常によく似ています。時間をかけてコマンドの出力を見てください。コマンドが要求したすべての操作を実行しない理由がわかります。
次に、自動化を試してください。これにはスクリプトを使用しないでください。次のようなものを使用してくださいcron
重要なことは、これを徐々に行うことです。