===== Copyjob =====
This script copies all your .jpg and .avi captures to a mounted NAS. Before it does so, it will check if there is a directory with the date of today. If it doesnt exist it will create one with the subdirectories "Videos" and "Pictures". After that it copies the files to a non-changing local directory and then from there to the created directories on your NAS. The script can be executed via crontab.
\\ \\
First mount your NAS.
\\ \\
[[linux:general:mount|Mount networkshares]]
\\ \\
Second create a file named "copyjob.sh" with the code below
#!/bin/bash
DATE=`date +%d_%m_%Y`
BASEPATH=/records/
COPYPATH=/records/copy/
NETPATH=/media/nasdir/
if [ ! -d "$NETPATH$DATE" ]; then
mkdir $NETPATH$DATE
mkdir $NETPATH$DATE/Videos
mkdir $NETPATH$DATE/Pictures
fi
NETPATHAVI=$NETPATH$DATE/Videos
NETPATHJPG=$NETPATH$DATE/Pictures
mv $BASEPATH*.avi $COPYPATH
sleep 10
mv $BASEPATH*.jpg $COPYPATH
sleep 10
mv $COPYPATH*.avi $NETPATHAVI
sleep 10
mv $COPYPATH*.jpg $NETPATHJPG
sleep 10
Make sure you use chmod +x copyjob.sh
to make it executeable.\\
Create a cronjob for it by inserting the following line to the end in vi /etc/crontab
0 * * * * /records/copyjob.sh >/dev/null 2>&1
The job will be executed everytime the clock hits 0 minutes (for example 1:00pm 2.00am...)
==== Troubleshooting ====
If the copyjob fails because of "too many arguments" its because mv *.jpg extends that command to mv blabla.jpg xyz.jpg etc... Too many files then cause that error because the command is too long. Instead of the mv command above in the script you can use
find $BASEPATH -name ".jpg" -exec mv {} $NETPATHJPG \;
Like this:
find $BASEPATH -name ".avi" -exec mv {} $COPYPATH \;
sleep 10
find $BASEPATH -name ".jpg" -exec mv {} $COPYPATH \;
sleep 10
find $COPYPATH -name ".avi" -exec mv {} $NETPATHAVI \;
sleep 10
find $COPYPATH -name ".jpg" -exec mv {} $NETPATHJPG \;
sleep 10
\\
\\
~~DISCUSSION:closed~~