You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.4 KiB
50 lines
1.4 KiB
#!/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'
|
|
|