[bash]
#!/bin/sh
#set -x
basedirectory= »/media/CANON_DC/DCIM/ »
sshinfo= »xxx@yyy.com »
serverdir= »/home/xxx/photos/ »
processfile ()
{
extension=`echo « ${2} » | awk -F . ‘{ print $NF }’ | tr ‘[:upper:]’ ‘[:lower:]’`
if [ « ${extension} » = « jpg » -o « ${extension} » = « jpeg » ] ; then
localcksum=`cksum « ${1}${2} » | awk ‘{ print $1 » » $2 }’`
serverfilename=`echo « ${localcksum} » | awk ‘{ print $1 }’`
serverfilename= »${serverfilename}.${extension} »
echo « ${serverallcksum} » | grep « ${localcksum} ${serverdir}${serverfilename} » > /dev/null
if [ « ${?} » = « 1 » ] ; then
scp -p « ${1}${2} » « ${sshinfo} »: »${serverdir}${serverfilename} »
stat=`stat -c %y « ${1}${2} »`
ssh « ${sshinfo} » touch -d « ${stat} » « ${serverdir}${serverfilename} »
fi
else
echo « skiping ${2} because of extension: ${extension} »
fi
}
scandir()
{
echo « scan ${1} »
for myfile in `ls ${1}`
do
if [ « ${1} » = « . » -o « ${1} » = « .. » ] ; then
echo « skip ${1} »
elif [ -d « ${1}${myfile}/ » ] ; then
scandir « ${1}${myfile}/ »
else
processfile « ${1} » « ${myfile} »
fi
done
}
serverallcksum=`ssh « ${sshinfo} » cksum « ${serverdir}* »`
scandir « ${basedirectory} »
[/bash]