shell script com grande quantidade de arquivos - timelapse

2

Eu criei um script de shell para capturar imagens a cada minuto no meu pi de framboesa. Acho que algo não está certo, já que está tirando fotos, mas não as salva. Gostaria de saber se alguém poderia apenas apontar se esse script deve funcionar:

#!/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

Sou novo no linux scripting, portanto, por favor, gentil comigo :) Muito obrigado antecipadamente por todos os seus comentários.

Informação adicional: raspistill -vf -ISO 100 -o /media/pi/organ/$DATE.jpg trabalhado

Eu também adicionei o crontab para rodar a cada minuto e isso funcionou também:

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

Minha preocupação era deixá-lo por mais de quatro semanas para que a quantidade de arquivos excedesse o limite de uma pasta, então tentei dividi-la.

Quando adicionei este script, ele parou de funcionar e não sei como solucionar problemas aqui.

    
por Andras Sebestyen 20.03.2016 / 12:14

3 respostas

5

Nesta linha:

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

você define o tempo variável para a saída de um comando TIME chamado com +"%H%M%S" como argumento.

AFAIK não há comando TIME no RaspberryPi. Você deve mudar isso para:

TIME=$(date +"%H%M%S")
    
por 20.03.2016 / 12:33
2

Existem alguns erros na sintaxe e acho que você quis dizer date na atribuição da variável TIME . Aqui está minha sugestão:

#!/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"

O -p de mkdir também cria os diretórios pai, caso contrário, o script falhará se os diretórios pai não estiverem presentes. Também é bom para cobrir variáveis que mantêm os arquivos do sistema de arquivos com " . Este é uma boa visão geral e vale a pena lê-lo se você quiser fazer mais no shell de scripts.

Em geral, adicionar set -x no início do script também imprime mais informações para depurar as coisas.

    
por 20.03.2016 / 12:33
1

Quebre seu problema e resolva-o em pedaços. Primeiro, pegue o comando que tira a foto e salva-a.

Como você sabe que está tirando uma foto? Você já tentou salvá-lo em um local bem conhecido e gravável, como um diretório de teste no seu diretório pessoal? Você está executando um comando que parece ter -v como uma opção, que se parece muito com uma configuração detalhada. Passe algum tempo olhando para a saída do comando porque provavelmente está dizendo por que ele não pode fazer tudo o que você está pedindo.

Só então tente torná-lo automático. Não use um script para isso. Use algo como cron

A chave é fazer isso em incrementos.

    
por 20.03.2016 / 12:22