The script I wrote was working OK when executed manually, however, it wasn't running automatically via crontab.
After some digging around, it looks like cron isn't started automatically (runlevel 2) on the IX2-200.
I've got the script set in /etc/crontab.
Start cron manually:
root@nas:/etc/rc2.d# /etc/init.d/cron start
After some more digging, I found that there is no script to start cron in /etc/rc*.d/
root@nas:/etc# grep -Ri cron rc*.d/
rc1.d/K11cron:# Start/stop the cron daemon.
rc1.d/K11cron:# Provides: cron
rc1.d/K11cron:# Description: cron is a standard UNIX program that runs user-specified
rc1.d/K11cron:# programs at periodic scheduled times. vixie cron adds a
rc1.d/K11cron:# number of features to the basic UNIX cron, including better
rc1.d/K11cron:test -f /usr/sbin/cron || exit 0
rc1.d/K11cron:PIDFILE=/var/run/crond.pid
rc1.d/K11cron:[ -e /etc/cron.pid ] && PIDFILE=/etc/crond.pid
rc1.d/K11cron:[ -r /etc/default/cron ] && . /etc/default/cron
rc1.d/K11cron:# Read the system's locale and set cron's locale. This locale
rc1.d/K11cron:# will be inherited by cron (used to set charset of emails)
rc1.d/K11cron:start) log_daemon_msg "Starting periodic command scheduler" "crond"
rc1.d/K11cron: start-stop-daemon --start --quiet --pidfile $PIDFILE --name cron --startas /usr/sbin/cron -- $LSBNAMES $EXTRA_OPTS
rc1.d/K11cron:stop) log_daemon_msg "Stopping periodic command scheduler" "crond"
rc1.d/K11cron: start-stop-daemon --stop --quiet --pidfile $PIDFILE --name cron
rc1.d/K11cron:restart) log_daemon_msg "Restarting periodic command scheduler" "crond"
rc1.d/K11cron: start-stop-daemon --stop --retry 5 --quiet --pidfile $PIDFILE --name cron
rc1.d/K11cron: start-stop-daemon --start --quiet --pidfile $PIDFILE --name cron --startas /usr/sbin/cron -- $LSBNAMES $EXTRA_OPTS
rc1.d/K11cron:reload|force-reload) log_daemon_msg "Reloading configuration files for periodic command scheduler" "crond"
rc1.d/K11cron: # cron reloads automatically
rc1.d/K11cron:*) log_action_msg "Usage: /etc/init.d/cron {start|stop|restart|reload|force-reload}"
grep: rc1.d/K84ssh: No such file or directory
rc3.d/S89cron:# Start/stop the cron daemon.
rc3.d/S89cron:# Provides: cron
rc3.d/S89cron:# Description: cron is a standard UNIX program that runs user-specified
rc3.d/S89cron:# programs at periodic scheduled times. vixie cron adds a
rc3.d/S89cron:# number of features to the basic UNIX cron, including better
rc3.d/S89cron:test -f /usr/sbin/cron || exit 0
rc3.d/S89cron:PIDFILE=/var/run/crond.pid
rc3.d/S89cron:[ -e /etc/cron.pid ] && PIDFILE=/etc/crond.pid
rc3.d/S89cron:[ -r /etc/default/cron ] && . /etc/default/cron
rc3.d/S89cron:# Read the system's locale and set cron's locale. This locale
rc3.d/S89cron:# will be inherited by cron (used to set charset of emails)
rc3.d/S89cron:start) log_daemon_msg "Starting periodic command scheduler" "crond"
rc3.d/S89cron: start-stop-daemon --start --quiet --pidfile $PIDFILE --name cron --startas /usr/sbin/cron -- $LSBNAMES $EXTRA_OPTS
rc3.d/S89cron:stop) log_daemon_msg "Stopping periodic command scheduler" "crond"
rc3.d/S89cron: start-stop-daemon --stop --quiet --pidfile $PIDFILE --name cron
rc3.d/S89cron:restart) log_daemon_msg "Restarting periodic command scheduler" "crond"
rc3.d/S89cron: start-stop-daemon --stop --retry 5 --quiet --pidfile $PIDFILE --name cron
rc3.d/S89cron: start-stop-daemon --start --quiet --pidfile $PIDFILE --name cron --startas /usr/sbin/cron -- $LSBNAMES $EXTRA_OPTS
rc3.d/S89cron:reload|force-reload) log_daemon_msg "Reloading configuration files for periodic command scheduler" "crond"
rc3.d/S89cron: # cron reloads automatically
rc3.d/S89cron:*) log_action_msg "Usage: /etc/init.d/cron {start|stop|restart|reload|force-reload}"
grep: rc3.d/S16ssh: No such file or directory
rc4.d/S89cron:# Start/stop the cron daemon.
rc4.d/S89cron:# Provides: cron
rc4.d/S89cron:# Description: cron is a standard UNIX program that runs user-specified
rc4.d/S89cron:# programs at periodic scheduled times. vixie cron adds a
rc4.d/S89cron:# number of features to the basic UNIX cron, including better
rc4.d/S89cron:test -f /usr/sbin/cron || exit 0
rc4.d/S89cron:PIDFILE=/var/run/crond.pid
rc4.d/S89cron:[ -e /etc/cron.pid ] && PIDFILE=/etc/crond.pid
rc4.d/S89cron:[ -r /etc/default/cron ] && . /etc/default/cron
rc4.d/S89cron:# Read the system's locale and set cron's locale. This locale
rc4.d/S89cron:# will be inherited by cron (used to set charset of emails)
rc4.d/S89cron:start) log_daemon_msg "Starting periodic command scheduler" "crond"
rc4.d/S89cron: start-stop-daemon --start --quiet --pidfile $PIDFILE --name cron --startas /usr/sbin/cron -- $LSBNAMES $EXTRA_OPTS
rc4.d/S89cron:stop) log_daemon_msg "Stopping periodic command scheduler" "crond"
rc4.d/S89cron: start-stop-daemon --stop --quiet --pidfile $PIDFILE --name cron
rc4.d/S89cron:restart) log_daemon_msg "Restarting periodic command scheduler" "crond"
rc4.d/S89cron: start-stop-daemon --stop --retry 5 --quiet --pidfile $PIDFILE --name cron
rc4.d/S89cron: start-stop-daemon --start --quiet --pidfile $PIDFILE --name cron --startas /usr/sbin/cron -- $LSBNAMES $EXTRA_OPTS
rc4.d/S89cron:reload|force-reload) log_daemon_msg "Reloading configuration files for periodic command scheduler" "crond"
rc4.d/S89cron: # cron reloads automatically
rc4.d/S89cron:*) log_action_msg "Usage: /etc/init.d/cron {start|stop|restart|reload|force-reload}"
grep: rc4.d/S16ssh: No such file or directory
rc5.d/S89cron:# Start/stop the cron daemon.
rc5.d/S89cron:# Provides: cron
rc5.d/S89cron:# Description: cron is a standard UNIX program that runs user-specified
rc5.d/S89cron:# programs at periodic scheduled times. vixie cron adds a
rc5.d/S89cron:# number of features to the basic UNIX cron, including better
rc5.d/S89cron:test -f /usr/sbin/cron || exit 0
rc5.d/S89cron:PIDFILE=/var/run/crond.pid
rc5.d/S89cron:[ -e /etc/cron.pid ] && PIDFILE=/etc/crond.pid
rc5.d/S89cron:[ -r /etc/default/cron ] && . /etc/default/cron
rc5.d/S89cron:# Read the system's locale and set cron's locale. This locale
rc5.d/S89cron:# will be inherited by cron (used to set charset of emails)
rc5.d/S89cron:start) log_daemon_msg "Starting periodic command scheduler" "crond"
rc5.d/S89cron: start-stop-daemon --start --quiet --pidfile $PIDFILE --name cron --startas /usr/sbin/cron -- $LSBNAMES $EXTRA_OPTS
rc5.d/S89cron:stop) log_daemon_msg "Stopping periodic command scheduler" "crond"
rc5.d/S89cron: start-stop-daemon --stop --quiet --pidfile $PIDFILE --name cron
rc5.d/S89cron:restart) log_daemon_msg "Restarting periodic command scheduler" "crond"
rc5.d/S89cron: start-stop-daemon --stop --retry 5 --quiet --pidfile $PIDFILE --name cron
rc5.d/S89cron: start-stop-daemon --start --quiet --pidfile $PIDFILE --name cron --startas /usr/sbin/cron -- $LSBNAMES $EXTRA_OPTS
rc5.d/S89cron:reload|force-reload) log_daemon_msg "Reloading configuration files for periodic command scheduler" "crond"
rc5.d/S89cron: # cron reloads automatically
rc5.d/S89cron:*) log_action_msg "Usage: /etc/init.d/cron {start|stop|restart|reload|force-reload}"
grep: rc5.d/S16ssh: No such file or directory
root@nas:/etc#
I've copied the S89cron file into the rc2.d/ folder which should start cron when the NAS powers on.
Also updated my script slightly, so it checks if the directory exists before trying to create it.
#!/bin/bash
YESTERDAY=`date --date='yesterday' +"%Y%m%d"`
FILES=$(ls /mnt/soho_storage/samba/shares/CCTV/*$YESTERDAY*.jpg 2> /dev/null | wc -l)
DIR="/mnt/soho_storage/samba/shares/CCTV/$YESTERDAY"
if [ "$FILES" != "0" ]
then
echo "Files Exist"
if [ ! -d "$DIR" ]; then
mkdir $DIR
fi
for f in `ls /mnt/soho_storage/samba/shares/CCTV/*$YESTERDAY*.jpg`; do
mv $f $DIR
done
else
echo "No Images.....Exit"
fi