Rsync

Phobos

Пользователь
rsync — это программа для UNIX-подобных систем, которая выполняет синхронизацию файлов и каталогов в двух местах с минимизированием трафика, используя кодировку данных при необходимости. Важным отличием rsync от многих других программ/протоколов является то что зеркалирование осуществляется одним потоком в каждом направлении (а не по одному или несколько потоков на каждый файл). rsync может копировать или отображать содержимое каталога и копировать файлы, опционально используя сжатие и рекурсию.

и так запускаю скрипт для копирования с яндекс зеркала, в rsync настройки такие
--recursive --delete --progress -vP

что можно добавить, чтоб оставить на ночь закачку и идти спать спокойно... а то блин начнет и "зависает" сразу же....
 

Phobos

Пользователь
ммм... прочитал чтото либо не внимательно читал... или там нету... но там сказано смотреть изменился или repomd.xml файл... но как это проверять не знаю...
да и чтото Everything уже расхотелось зеркалить... ну гденить через месяц... большая... часть пакетов всеровно же будет валяться на Update, проблема в том как отследить зависимости... и скачать с Everything только нужные пакеты... т.к. там же уже много устаревших пакетов...
 

Phobos

Пользователь
помучавшись немного получил вот такой скрипт, если есть какие-то предложения по улучшению... пожалуйста сообщите... :)
Код:
#!/bin/bash
i=0
optionrsync="--recursive --delete --delete-after --delay-updates --timeout=900 --progress -vP --exclude=debug/"

#rpmfusion free release
MirrorName[1]="rpmfusion free release"
MirrorURL[1]="rsync://fr2.rpmfind.net/linux/rpmfusion/free/fedora/releases/10/Everything/i386/os"
MirrorDIR[1]="/home/phobos/repo/rpmfusion/free/fedora/releases/10/Everything/i386/os"

#rpmfusion free update
MirrorName[2]="rpmfusion free update"
MirrorURL[2]="rsync://fr2.rpmfind.net/linux/rpmfusion/free/fedora/updates/10/i386"
MirrorDIR[2]="/home/phobos/repo/rpmfusion/free/fedora/updates/10/i386"

#rpmfusion nonfree release
MirrorName[3]="rpmfusion nonfree release"
MirrorURL[3]="rsync://fr2.rpmfind.net/linux/rpmfusion/nonfree/fedora/releases/10/Everything/i386/os"
MirrorDIR[3]="/home/phobos/repo/rpmfusion/nonfree/fedora/releases/10/Everything/i386/os"

#rpmfusion nonfree update
MirrorName[4]="rpmfusion nonfree update"
MirrorURL[4]="rsync://fr2.rpmfind.net/linux/rpmfusion/nonfree/fedora/updates/10/i386"
MirrorDIR[4]="/home/phobos/repo/rpmfusion/nonfree/fedora/updates/10/i386"

#fedora update
MirrorName[5]="fedora update"
MirrorURL[5]="rsync://fr2.rpmfind.net/linux/fedora/updates/10/i386"
MirrorDIR[5]="/home/phobos/repo/fedora/linux/updates/10/i386"

#tigro
MirrorName[6]="tigro"
MirrorURL[6]="rsync://dispenser.yandex.net/fedora/tigro/10/i386"
MirrorDIR[6]="/home/phobos/repo/tigro/10/i386"

#tigro non-free
MirrorName[7]="tigro non-free"
MirrorURL[7]="rsync://dispenser.yandex.net/fedora/tigro/non-free/10/i386"
MirrorDIR[7]="/home/phobos/repo/tigro/non-free/10/i386"

for i in 1 2 3 4 5 6 7
do
rsync --recursive ${MirrorURL[$i]}/repodata/repomd.xml .
cmp -s repomd.xml ${MirrorDIR[$i]}/repodata/repomd.xml
if [ $? -eq 0 ]
then
echo ""
echo "=========================================================="
echo "Зеркал ${MirrorName[$i]} не нуждается в обнавлении"
echo "=========================================================="
echo ""
else
echo ""
echo "=========================================================="
echo "Загрузка зеркала ${MirrorName[$i]}"
echo "=========================================================="
rsync $optionrsync\
${MirrorURL[$i]}/\
${MirrorDIR[$i]}/
fi
rm -f repomd.xml
done
 

shams

Новичок
здравствуйте, у меня возникла такая проблема с синхронизацией файлов. Настроено таким образом:
есть файл-сервер на Debian через Samba, с кодировкой на системе koi8-r, виндовс клиенты все видят, сам сервак файлы читает в шеле без проблем.

другой бекап сервер монтирует этот самба шару
Код:
mount -t cifs -o username=blabla,passwor=blabla,iocharset=koi8-r \\192.168.0.3\DIR /MOUNT/Dir
в шеле все прекрасно видно, только вот как начинаешь синхронизировать с rsync пишет следующее:
Код:
#rsync -a /MOUNT/Dir /SYNC/Dir
rsync: recv_generator: failed to stat "/SYNC/S2/BASE_KB/Тбл_ШВ99.mde": Invalid or incomplete multibyte or wide character (84)
rsync error: some files could not be transferred (code 23) at main.c(977) [sender=2.6.9]
как быть??

есть мысля заранее сменить на самба шаре кодировку с koi8-r на utf-8, но не знаю получится ли, или есть другие варианты, чем менять сено на солому, когда телега сломана...?

и есть ли другие, проверенные способы синхронизации файлов, именно монтированием, через ssh не вариант, потому что необходимо так же монтировать шары вин серверов.

заранее спасибо, буду благодарен
 

Mike22

Местный
... и есть ли другие, проверенные способы синхронизации файлов, именно монтированием, через ssh не вариант, потому что необходимо так же монтировать шары вин серверов ...
Решение простое - синхронизировать напрямую между машинами.
То, что каталог который вы синхронизируете уже у вас подмонтирован через самбу совсем не помеха.
Если вы будете напрямую синхронизацию выполнять, только плюсы даст, вы от лишней "прокладки" избавитесь.

Кстати, я сильно сомневаюсь по поводу опции монтирования iocharset=koi8-r
Что у вас за система установлена и как локаль настроена на ней?
Сейчас обычно применяют iocharset=utf8,codepage=cp866
ибо локаль utf8 стала стандартом, koi8-r уже давно почти никто не использует.

Стойте, а у вас вообще-то какие системы на этих двух машинах установлены?
 

shams

Новичок
на обоих linux серверах стоит debian 4.0, надо бы обновится до 6.0, руки не доходят,
локаль полностью на koi8-r

пробовал менять на utf8 локаль, названия файлов с помощью convmv и синхронизировать, эффект такой же
Код:
# rsync -av --iconv=utf8 /MOUNT/S2 /SYNC/S2
rsync: recv_generator: mkdir "/SYNC/S2/BASE_KB/ISO_9000/@_ПАСПОРТА_NEW" failed: Invalid or incomplete multibyte or wide character (84)*** Skipping any contents from this failed directory ***rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1040) [sender=3.0.4]

причем, как видно, в шеле кириллицу читает без проблем

только что заметил, при попытке синхронизации на раздел с ntfs-3g фс, пишет то что выше, и не копирует,
при синхронизации на раздел с ext3 , синхризация проходит, НО названия файлоы выглядят как ??? ????

это не ошибка rsync, при прямом копировании выводит тоже самое.
 

Mike22

Местный
... локаль полностью на koi8-r ...
Это и есть причина проблем. Стояла бы utf8, то всё бы работало автоматом.

Я честно говоря всё-равно не очень понял что вы делаете и как.
Вот скажите, если у вас на обеих машинах Linux, то зачем вам samba ? :D

Потом, я не очень понял, как ntfs-3g относится к проблемам синхронизации между машинами?
ntfs-3g предназначен для монтирования локальных разделов.

Мне кажется вы как-то не очень оптимально действуете.

Но опять повторюсь, если-бы локаль была utf8, то проблем бы у вас было меньше.
koi8-r - это анахронизм, который давно в топку отправили :D
 
Сверху