[ОТВЕТИТЬ]
Опции темы
08.09.2014 18:22  
OlegON
Коллеги задрали идеями о том, что хорошо бы мне бекап копировать параллельными потоками... В один поток на 10Гбитной сетке выходила скорость 40Мб/сек. Ппц. Ну и ладно, собрал скриптик, запускать

Код:
script /srcdir server:/remote/srcdir
Код:
#!/bin/bash
#rsync threads by olegon.ru

source=$1
target=$2

if [ $1 -n ]
then
exit
fi

cd "${source}"

find . -type f | while read dir
do
echo $dir
subfolder=$(echo "${dir}" | sed 's@^\./@@g')
TD=$(dirname $(echo ${target}/${subfolder} | cut -d':' -f2))
SD=$(echo ${target} | cut -d':' -f1)
ssh "oracle@$SD" "mkdir -p $TD" </dev/null
echo "${source}/${subfolder}" "${target}/${subfolder}"
rsync -a -v -e "ssh -c arcfour" "${source}/${subfolder}" "${target}/${subfolder}" &
done
while [ `ps -ef | grep -c [r]sync` -gt 1 ]
do
sleep 10
echo "Waiting for rsync ... "`ps -ef | grep -c [r]sync`
done
echo "DONE!"`date`
скрипт запустит по одному rsync на каждый файл, дождется завершения всех rsync в системе и выйдет. В тех же условиях скорость рывками подскакивает до 400Мб/сек.
 
08.09.2014 21:36  
OlegON
Да, имейте ввиду, что если скрипт назовете как-то, что в имени будет rsync, то "-gt 1" надо поменять на "-gt 2"
 
29.04.2015 18:08  
OlegON
Код:
#!/bin/bash

source=$1
target=$2

if [ $1 -n ]
then
exit
fi

cd "${source}"

find . -type f | while read dir
do
echo $dir
subfolder=$(echo "${dir}" | sed 's@^\./@@g')
TD=$(dirname $(echo ${target}/${subfolder} | cut -d':' -f2))
SD=$(echo ${target} | cut -d':' -f1)
ssh "oracle@$SD" "mkdir -p $TD" </dev/null
echo "${source}/${subfolder}" "${target}/${subfolder}"
rsync -a -v -e "ssh -c arcfour" "${source}/${subfolder}" "${target}/${subfolder}" &
done
while [ `ps -eopid,comm | egrep '^ +[0-9]+ rsync' | wc -l` -gt 0 ]
do
sleep 3
echo "Waiting for rsync ... "`pgrep rsync | wc -l`
done
echo "DONE!"`date`
поправил зависимость от названия скрипта и т.п.
 
07.12.2015 16:14  
i8990
Почему порядка 40 метров в секунду скорость, В чём ограничение?
 
07.12.2015 17:03  
OlegON
В железе, вестимо...
 
 
Опции темы



Часовой пояс GMT +3, время: 03:50.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.