정기적 인 일정으로 웹 사이트에서 단일 이미지 가져 오기 같은 이미지를 매회 찍고 싶다.

나는 (웹 사이트에서) 같은 이미지를 매회 찍고 싶다. 엑스 결국 시간 경과 영상을 만들 수 있습니다.

내 문제는 다음과 같습니다.

  • 이미지를 잡을 일정을 설정하고
  • 파일 이름의 일부로 시간 / 날짜와 함께 이미지를 저장합니다.

파이썬과 같은 것을 사용하는 것이 가장 좋을까요?



답변

예를 들어 아바타를 사용합시다. (에 저장 /opt/download-avatar )

#!/bin/bash
URL="https://www.gravatar.com/avatar/554f043fa658cba9bbc2ee4c6d4e052d?d=identicon"
timestamp=$(date +%F_%T);
wget "$URL" -O "${timestamp}.png"

참고 : 파일 이름을 신기원에서 초로 저장하는 것이 좋습니다. timestamp=$(date +%s)

만들기 5 분마다 실행하는 cron 작업 (에 저장 /etc/cron.d/timelapse-avatar )

#!/bin/sh
*/5 * * * * /opt/download-avatar

스크립트를 실행 가능하게 만들기

chmod +x /opt/download-avatar
sudo chmod 755 /etc/cron.d/timelapse-avatar

당신이 사용하고 싶지 않다면 cron 다음 단순히 (에 저장 ~/start-timelapse )

#!/bin/bash
input="$1"
URL="https://www.gravatar.com/avatar/554f043fa658cba9bbc2ee4c6d4e052d?d=identicon"

if [ -z "$input" ]; then
  echo "USAGE: $0 [interval in minutes]"
  exit 1
else
  interval=$((60*input));
fi

while [ 0 = 0 ]; do
  timestamp=$(date +%s)
  wget "$URL" -O "${timestamp}.png"
  echo "Sleeping for $input minutes"
  sleep "$interval"
done;

실행 파일을 만들고 7 분 간격으로 실행

chmod +x ~/start-timelapse
cd ~
./start-timelapse 7

최신 정보:

감사 슬하 크 .

나이젤 , 기본적으로 cron 다음과 같이 실행된다. 뿌리 사용자. 이 질문과 관련이 없지만 기술적으로는 “환경 설정”과 같은 환경 변수없이 비 대화식으로 “특수 사용자”로 실행됩니다. $PATH,없이 dbus 세션 ID X 세션 ID 등

~/ 는 사용자의 홈 디렉토리 (환경 변수 $HOME ). 에 대한 기본적으로 사용자 , 이것은 예를 들어 /home/nigel 이 아니라면 뿌리 , 이것은 /root 그러므로 아마 크론 ~에 저장했습니다. /root/pdm-5min. 다음을 사용할 수 있습니다.

wget "$URL" -O "/home/nigel/pdm-5min/${timestamp}.png"

하지만 파일은 뿌리 , 그래서 나이젤 자신의 허락 없이는 이동, 삭제, 편집 할 수 없습니다. 뿌리 (또는 sudo )

따라서 실행을 선택할 수도 있습니다. cron 당신의 사용자로서 나이젤 .

#!/bin/sh
*/5 * * * * nigel /opt/download-avatar

저장하려는 디렉토리가 있는지 확인하십시오. 디렉토리 바로 앞에 추가하고자 할 수 있습니다. wget 선:

mkdir -p /home/nigel/pdm-5min/

마지막으로, 귀하의 " (인용 부호). 변수가 공백 (공백, 탭 등)을 유지하지만 각 작은 따옴표 또는 큰 따옴표가 일치하는지 확인하십시오. 옵션이 아닙니다.