명령줄을 통해 이를 달성할 수 있습니까?
구문: 다음을 사용하여 이미지를 캡처할 수 있습니다.
raspistill -o image.jpg
하지만 매분마다 cron을 통해 이 명령을 실행하고 다음과 같은 결과를 얻을 수 있기를 원합니다.
image1.jpg, image2.jpg, image3.jpg 등...
답변1
접미사 값이 마음에 들지 않으면 이미지가 오름차순이면 날짜와 시간을 사용할 수 있습니다.
raspistill -o "$(date --utc +'image%Y%m%d%H%M.jpg')"
%S
필요한 경우 몇 초 정도 연장할 수 있습니다.
이것을 행으로 추가하려는 경우 %
항목에 특수 문자가 있다는 점을 기억하십시오 crontab
. 문제를 회피하고 (매우 짧은) 스크립트에 넣고 거기에서 해당 스크립트를 호출 하거나 cron
각 스크립트 앞에 %
백슬래시를 넣으십시오 \
. 자세한 내용은 man 5 crontab
(검색 )을 참조하세요 %
.
답변2
#!/bin/sh
num=1
outfile="image$num.jpg"
while [ -e "$outfile" ]; do
num=$(( num + 1 ))
outfile="image$num.jpg"
done
raspistill -o "$outfile"
위 스크립트의 루프는 num
변수를 1씩 증가 시키고 outfile
사용되지 않은 파일 이름이 발견될 때까지 해당 숫자를 사용하여 새 출력 파일 이름을 생성합니다.
파일 이름이 있는지 테스트하는 것과 새 파일을 만드는 것 사이의 경쟁 조건으로 인해 스크립트의 여러 복사본이 동시에 실행되는 경우 이 작업이 실패할 수 있습니다. raspistill
새 파일을 만드는 데 1분 이상 걸리지 않는 한 1분 간격으로 스크립트를 실행하는 데 문제가 없습니다 . 이 경우 touch "$outname"
루프 뒤에 추가하여 가능한 한 빨리 파일 이름을 "청구"하십시오(그러나 그 동안 스크립트를 호출하는 것은 여전히 실패할 수 있습니다).
"실패"란 다음을 사용하여 스크립트를 두 번 이상 호출하는 것을 의미합니다.동일한파일 이름은 raspistill
.