대용량 파일이 포함된 셸 스크립트 - 시간 경과

대용량 파일이 포함된 셸 스크립트 - 시간 경과

저는 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

중요한 것은 이 작업을 점진적으로 수행하는 것입니다.

관련 정보