DigiKam to PHP Photo Album - cronjob

Cronjob

I have a shell script that runs hourly:

2 * * * * /mydata/Pictures_tools/generate_thumbnails.sh
The shell script uses locks to ensure that only one instance of it is running at a time (it can take a while to generate a lot of thumbnails if a large number of images are added/updated).

The script only generates thumbnails for images that have not already had a thumbnail generated.

#!/bin/sh

set -e

(

flock -x -w 10 200

cd /mydata/
find Pictures -type f -name '*.[Jj][Pp][Gg]' -print | 
while read file
do
	thumbdir="./Pictures_Resized/`dirname \"$file\"`"
	if [ \! -d "$thumbdir" ] ; then
		echo "`date` making $thumbdir"
		mkdir -p "$thumbdir"
	fi

	# convert to a 160x120 crop to fit
	target="./Pictures_Resized/${file%%.[Jj][Pp][Gg]}-160x120.JPG"
	if [ \! -f "$target" -o "$file" -nt "$target" ] ; then 
		echo "`date` creating $target";
		convert "$file" -auto-orient -strip -resize 160x120^ -gravity center -extent 160x120  "$target"
	fi

	# convert to 1024x768 - this should be a max in each direction
	target="./Pictures_Resized/${file%%.[Jj][Pp][Gg]}-1024x768.JPG"
	if [ \! -f "$target" -o "$file" -nt "$target" ] ; then 
		echo "`date` creating $target";
		convert "$file" -auto-orient -resize 1024x768 "$target"
	fi

done;

) 200>/var/lock/generate_thumbnails_2.sh