From 8c2a418f8900b321c947f3bff3b074a4f4de1c45 Mon Sep 17 00:00:00 2001 From: garvarma Date: Wed, 20 Apr 2016 10:55:01 +0200 Subject: [PATCH] Create Copy videos from SD to NAS by ftp Here there is a script thtat videos from SD card, can make a copy to a NAS --- Copy videos from SD to NAS by ftp | 106 ++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 Copy videos from SD to NAS by ftp diff --git a/Copy videos from SD to NAS by ftp b/Copy videos from SD to NAS by ftp new file mode 100644 index 0000000..4695540 --- /dev/null +++ b/Copy videos from SD to NAS by ftp @@ -0,0 +1,106 @@ +#!/bin/sh +# FTP_COPY version 0.3 by MP77V www.4pda.ru +# ---------------------------- +ftp_dir="/" +ftp_host="NAS_IP" +ftp_port="FTP_PORT" +ftp_login="NAS_USER" +ftp_pass="NAS_PASS_User" +# ---------------------------- + +rec_dir="/tmp/hd1/record" +idx_tmp="/tmp/hd1/file_index.ftp" +idx_rec="/tmp/hd1/ftp_copy.idx" +ftp_log="/tmp/hd1/ftp_copy.log" +ftp_pid="/tmp/hd1/ftp_copy.pid" +ftp_debug="0" + +dtm() +{ +date '+%Y.%m.%d_%H:%M:%S' +} + +wrk() +{ +echo "$((`date '+%s'` - $1))" +} + +mkd() +{ +(sleep 1 +echo "USER ${ftp_login}" +sleep 1 +echo "PASS ${ftp_pass}" +sleep 1 +echo "MKD ${ftp_dir}/$1" +sleep 1 +echo "QUIT" +sleep 1 ) | telnet ${ftp_host} ${ftp_port} +} + +cfg() +{ +echo " [C]------------------------------" +echo " [C] ftp_dir=\"${ftp_dir}\"" +echo " [C] ftp_host=\"${ftp_host}\"" +echo " [C] ftp_port=\"${ftp_port}\"" +echo " [C] ftp_login=\"${ftp_login}\"" +echo " [C] ftp_pass=\"${ftp_pass}\"" +echo " [C]------------------------------" +} + +ftp_copy() +{ +echo -e "\n$(dtm) [B] BEGIN `sed -e 's/^# //;2q;d;' $0`" +cfg + +l=0 +c=0 +d="" +dir="" + +cp_cmd="ftpput -u ${ftp_login} -p ${ftp_pass} -P ${ftp_port} ${ftp_host}" + +while (sleep 30) ; do +l=$(($l + 1)) +c=0 +b="`date '+%s'`" +for f in `find ${rec_dir} -type f -name '*.mp4' -mmin -10 |grep -vf ${idx_tmp}` ; do +d="`dirname $f`" +d="${d##*\/}" +if [ "$d" != "$dir" ] ; then +if [ "${ftp_debug:-0}" == "1" ]; then +mkd ${d} +else +mkd ${d} &>/dev/null +fi +dir="${d}" +echo "$(dtm) [i] DIR: $d" +fi +echo -n "$(dtm) [i] copy: ${f} [`ls -l ${f}|awk '{ printf(\"%8d\",$5) }'` ] - " +$(${cp_cmd} "${ftp_dir}/${dir}/${f##*\/}" "${f}") +if [ "$?" == "0" ] ; then +echo "OK" +sed -i -e :a -e '$q;N;24,$D;ba' ${idx_tmp} +echo "${f}">>${idx_tmp} +c=$(($c + 1)) +else +echo "$(dtm) [E] copy '${f}' ERROR" +fi +done +echo "$(dtm) [i] Loop ${l} copy ${c} wrk $(wrk $b) sec" +if [ "${c}" -gt 0 ]; then +cp -f ${idx_tmp} ${idx_rec} +fi +done +echo "$(dtm) Quit" +} + +# begin + +test -f ${idx_rec} || echo "#START#" >${idx_rec} +cp -f ${idx_rec} ${idx_tmp} +ftp_copy >>${ftp_log} 2>&1 & +echo $! >${ftp_pid} +echo "$(dtm) Start process [ $! ] - write log to file '${ftp_log}'" +exit 0