#!/bin/bash
function syncInRoute(){ 
 offset=${#1};
 files=($(find $1 -name '*.*' -cmin -$3));
 if [ ${#files[@]} -gt 0 ]; then
  for fl in ${files[@]}; do   
   isdir=$(file $fl | grep "directory");   
   if [ ${#isdir} -eq 0 ]; then
    pathf=$(dirname $fl);
    #echo ${pathf:$offset}; #para hacer el mkdir -p
    tf=$(ls -g --time-style=full-iso $fl);   
    found=$(cat /tmp/list.proc.files.log | grep -e "$tf");   
    if [ ${#found} -eq 0 ];then
     #echo "modif:${fl:$offset}";
     ls -g --time-style=full-iso $fl >> /tmp/list.proc.files.log;
     cp -r $fl $2${fl:$offset};
    fi
   fi
  done
 fi
 sleep 1
}
touch /tmp/list.proc.files.log;
if [ "$3" ];then min=$3; else min=60; fi
path=$1;
if [ ! "$path" ]; then
 echo "Tiene que especificar un directorio de origen.";
 exit 0;
fi
remote=$2;
if [ ! "$remote" ]; then
 echo "Tiene que especificar un directorio de destino.";
 exit 0;
fi
while true; do
 syncInRoute $path $remote $min;
done

Anuncios