#!/bin/bash [ "${alias_dir}" = "" ] && alias_dir=$(pwd) source "${alias_dir}/common" sync_2dir() { # Двухсторонняя синхронизация # Использование: # ./2sync src dest [opt1] [opt2] src=$1 dest=$2 opt1=$3 opt2=$4 rsync -r -t -v $opt1 $opt2 --progress -s --omit-dir-times $src $dest rsync -r -t -v $opt1 $opt2 --progress -s --omit-dir-times $dest $src } mkalias_with_prefix 'sync_2dir' sync_by_filter() { # Двухсторонняя синхронизация с сервером всех объектов в текущей папке # Использование: # sync_by_filter filter dest_base opt1 opt2 # filter - маска по файлам # dest_base - базовый путь для синхронизации, может содержать сервер, например: backup@www_server:/media/Backup # opt1,2 - дополнительные опции rsync. # Примеры: # 1. Опция "-n" для теста # 2. Опция "--delete" для удаления файлов filter=$1 dest_base=$2 opt1=$3 opt2=$4 files=`ls -p | grep / | grep ${filter} |sort` cur_dir="$(pwd)/" for file in $files; do src="${cur_dir}/${file}/" dest="${dest_base}/${file}/" sync_2dir $src $dest $opt1 $opt2 done } mkalias_with_prefix 'sync_by_filter'