The Pi cron utility is the simplest way to do this. This script that I am using should be close, you will have to change the 'wget' to use the Pi camera module instead of an IP camera. It is also overlaying weather data onto the image and trimmimg it to an size. The weather data is coming from a Meteobridge provided file. It saves the images in a 'day-of-year'-'image number' format and then each night I build a timelapse file.
SCRIPT START###
#!/bin/bash
echo "#### Starts at [`date`] ##### "
###
## Modified/Installed 2016-03-21
## Executed via cron on the 5s
## */5 * * * * /var/www/html/WebCam/WU_PhotoUpdate.scr
#######
#######
cd /var/www/html/WebCam
### /home/pi/MeteoData.txt is created from meteobridge ftp download service
DAY=`date +%A`
DATE=`grep Date /home/pi/MeteoData.txt | cut -d: -f2- `
TIME=`grep Time /home/pi/MeteoData.txt | cut -d: -f2- `
TEMP=`grep Temp /home/pi/MeteoData.txt`
BARO=`grep Bar /home/pi/MeteoData.txt`
HUMI=`grep Hum /home/pi/MeteoData.txt`
WIND=`grep Wind /home/pi/MeteoData.txt`
GUST=`grep Gust /home/pi/MeteoData.txt`
RAIN=`grep Rain /home/pi/MeteoData.txt`
RATE=`grep Rate /home/pi/MeteoData.txt`
ISDAY=`grep isday /home/pi/MeteoData.txt | cut -c8`
case ${ISDAY} in
0 )
COL_CODE=CYAN ;;
1 )
COL_CODE=BLACK ;;
esac
##### Get Photo From Sharx Web Cam
######
mv jpeg.jpg OLD_jpeg.jpg 2>/dev/null
wget
http://192.168.254.36:80/live/0/jpeg.jpg mv jpeg.jpg WU_jpeg.jpg
######
##### Use Image Magick to put weather data onto photo
######
convert WU_jpeg.jpg -fill GRAY -draw "fill-opacity 0.35 rectangle 300 0 1715 60" -pointsize 24 -fill ${COL_CODE} -draw "text 310 25 ' ${DAY} ${DATE} ${TIME}
===${TEMP} ${BARO} ${HUMI} ${WIND} ${GUST} ${RAIN} ${RATE}===" -crop 1384x776+300+0 Adjusted.jpg
########
####### Send to WU
HOST='webcam.wunderground.com'
USER='WU_USER_ID'
PASSWD='WU_USER_PASSWD'
FILE='Adjusted.jpg'
ftp -n -v $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
binary
put $FILE
quit
END_SCRIPT
echo "########
########
WU DONE @ [`date`]
########
########"
######
##### Save photo Y or N
SAVE_PHOTO=Y
#SAVE_PHOTO=N
FILE_NAME=`cat NUMBER`
if [ "$SAVE_PHOTO" = "Y" ]
then
mv Adjusted.jpg ./Photos/`date +%j`-$FILE_NAME.jpg
else
rm Adjusted.jpg
fi
# FILE_NAME is reset to 0 each night at 2358 by timelapse creator utility
FILE_NAME=`expr ${FILE_NAME} + 1`
case $FILE_NAME in
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 )
FILE_NAME=0${FILE_NAME}
;;
esac
echo "$FILE_NAME">NUMBER
######
echo "##### ENDS at [`date`] #####"
SCRIPT END ###