LINUX.ORG.RU

Применение rsync локально


0

0

Итак, требуется на автомате синхронизировать диск с файлами и с бэкапами. На данный момент после прочтения мана составил следующую команду:

rsync -vhr --stats --progress /media/data/ /media/backup/data

Все бы хорошо, но почему-то при каждом запуске rsync просто копирует все заново, он не проверяет, был ли файл уже скопирован. А хотелось бы, чтобы он только синхронизацию проводил. Да, еще одна просьба: чтобы те файлы, которые отсутствуют в источнике, удлялись из бэкапа. В программе Synkron именно это никак не правилось в настройках.


Для бэкапа очень рекомендую попробовать unison.

$ eix -e unison
[I] net-misc/unison
     Available versions:  
	(2.13)	(~)2.13.16-r1
	(2.27)	2.27.57-r1
	{debug doc gtk ocamlopt static threads}
     Installed versions:  2.27.57-r1(2.27)(06:10:33 25.12.2008)(doc gtk ocamlopt threads -debug -static)
     Homepage:            http://www.cis.upenn.edu/~bcpierce/unison/
     Description:         Two-way cross-platform file synchronizer

Штука очень простая, удобная и весьма мощная. Я через неё 30Гб
удалённых файлов (под 500 тыс. штук, вроде) версионно синхронизирую.
Плюс все домашние бэкапы.

...

rsync, разве, умеет версионные бэкапы делать?

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Unison прямо сейчас гляну, спасибо за наводку. Версионные мне не нужны. требуется что-то типа рейда. Но настоящий рейд не осилю, плюс дисков целых 3 и все разных размеров.

Gregon
() автор топика
Ответ на: комментарий от Gregon

Версионные жизненно необходимы для любых случаев, когда модифицироваться/повредиться может не вся файловая система, а один файл. Иначе, если изменение/повреждение не заметил, при первом же бэкапе ты потеряешь старое значение в резервной копии. А так - просто появится новая версия файла. И хоть год спустя, нарвавшись на поломаный файл, сможешь взять более старую исправную версию.

KRoN73 ★★★★★
()
Ответ на: комментарий от Gregon

Потестил. Unison - именно то, что я искал. Большое спасибо за помощь. Тред закрыт :)

Gregon
() автор топика
Ответ на: комментарий от KRoN73

>> Версионные жизненно необходимы для любых случаев

Ну, не спорю. Просто нужно еще место на дисках. У меня с этим периодически проблемы.

Gregon
() автор топика
Ответ на: комментарий от KRoN73

Unison синхронизирует в две стороны, по условию это не нужно, вроде.

Я бы порекомендовал rdiff-backup. Пользуется легко, руководства находятся в гугле, в случае чего. Автоматизировать можно примерно так: http://blogs.ungrund.org/xio/2009/02/21/rdiff-backup-automation/

xio
()
Ответ на: комментарий от KRoN73

>rsync -vhr --stats --progress /media/data/ /media/backup/data

Что то мне подсказывает, что речь идет о медия-помойке. Сам еще не решал, но в скорости собираюсь решить подобную задачу.
Для медия-помойки с большими объемами несжимаемых данных хранить версионные бекапы по моему не нужно. Отсюда кстати становиться понятным желание топикстартера удалять из бекапа то, что удалилось с основных носитетелей.
Только это не правильно. лучше, если на удаление из бекапа нудно сознательно подтвержение/ручное удаление. Иначе можно прийти к ситуации, когда часть инфы тихо похерилась (проблемы ФС, пьяный юзер в ночи, т.п. ), а потом оно так же тихонько по крону из бекапа удалось.
В конце концов домашняя медия-помойка это не почтовая база и не хомяки ста-пятидесяти юзеров. Можно иногда и с мусором разобраться. Особенно удобно будет если удаленное при бекапе будет переложенно в отдельное место (назовем корзиной).


griz
()

У меня была одно время такая трабла, когда копировал на fat (это у меня так сделано скидывание музыки на n810). Пришлось отключить проверку таймстампов - только по размеру. Для медиа-помойки это допустимо.

svu ★★★★★
()
Ответ на: комментарий от xio

>Unison синхронизирует в две стороны

При желании пользователя :) У меня для _синхронизации_ домашней и рабочей машин используется двусторонняя _синхронизация_, а для _бэкапа_ - односторонний _бэкап_ :)

KRoN73 ★★★★★
()
Ответ на: комментарий от svu

       --modify-window
              When  comparing  two  timestamps, rsync treats the timestamps as
              being equal if they differ by no  more  than  the  modify-window
              value.   This  is  normally  0 (for an exact match), but you may
              find it useful to set this to a larger value in some situations.
              In  particular,  when  transferring to or from an MS Windows FAT
              filesystem (which represents times with a 2-second  resolution),
              --modify-window=1 is useful (allowing times to differ by up to 1
              second).

sdio ★★★★★
()
Ответ на: комментарий от griz

>Для медия-помойки с большими объемами несжимаемых данных хранить версионные бекапы по моему не нужно.

Нужно. Особенно если это медиапомойка, скажем, личных архивов. Обидно через год обнаружить битые JPEG'и или AVI в личной коллекции.

...

Да и битая музыка, не смотря на наличие сегодня широких Интернет-каналов не очень приятно. Снова искать нужный файл - не всегда автоматически решаемая халява :)

>Иначе можно прийти к ситуации, когда часть инфы тихо похерилась (проблемы ФС, пьяный юзер в ночи, т.п. ), а потом оно так же тихонько по крону из бекапа удалось.

Вот поэтому версионки и рулят. Кстати, для медиаколлекции - особенно рулят. Если на давно отлаженной коллекции при синхронизации вдруг видишь изменения (а не просто добавления), то обычно это ЖЖЖЖ не спроста :)

KRoN73 ★★★★★
()

if /bin/mount /dev/${SD}9 $MNT; then
 rsync -avS --delete  --exclude=$IGNORE  --exclude=sergey/iso/ /home/ $MNT
 /bin/umount $MNT
fi

sdio ★★★★★
()
Ответ на: комментарий от vvn_black

>Т.е. подкаталоги, которые не надо синхронизировать?

Там есть несколько методов.

ignore = Name programs-data/.purple/prefs.xml
ignore = Path {programs-data/.purple/accels}

и регексповый ещё, кажется.

Можно прописать в конфиг, можно в командной строке задать, можно в интерактивном режиме при синхиронизации указать игнор и он запомнит в конфиге.

KRoN73 ★★★★★
()
Ответ на: комментарий от vvn_black

>Не ожидал такого оперативного ответа. (:

При чём я смотрел не в последних обновившихся темах, а, промотрев все на тот момент обновившиеся полез смотреть вручную, не было ли чего-то нового в темах с моими комментами :)

KRoN73 ★★★★★
()
Ответ на: комментарий от vvn_black

Вот такой страшный скрип (всё через него, а не через конфиг)
я использую для бэкапа своего сервера (где тысяч 500 файлов):

#!/bin/bash 

for path in \
        etc \
        home2/vmail/balancer.ru/balancer \
        home2/vmail/balancer.ru/tais \
        var/bind \
        var/www/afap.ru \
        var/www/aftf.ru \
        var/www/airbase.ru \
        var/www/alertcharm.ru \
        var/www/balancer.ru \
        var/www/bionco.ru \
        var/www/bp.wrk.ru \
        var/www/files.balancer.ru \
        var/www/flerpark.ru \
        var/www/fotocollag.ru \
        var/www/gorod-spal.ru \
        var/www/la2.balancer.ru \
        var/www/mail.balancer.ru \
        var/www/muclogs \
        var/www/photoburo.ru \
        var/www/press-form.ru \
        var/www/sologubov.ru \
; do

    LOG=/home/balancer/.unison/airbase/$path.log
    mkdir -p $(dirname $LOG)
    mkdir -p /home/backup/airbase/$path
    mkdir -p /home/backup/airbase/backups/$path
    echo === $path ===
    ionice -c3 unison ssh://root@airbase.ru//$path /home/backup/airbase/$path \
        -backupdir /home/backup/airbase/backups/$path \
        -logfile $LOG \
        -backup 'Name *' -maxbackups 5 -backupprefix '' -backupsuffix '($VERSION).bak' \
        -ui text -prefer ssh://root@airbase.ru//$path \
        -auto -batch -silent
done

KRoN73 ★★★★★
()

Файловые системы какие?

вообще, мой выбор alias mysync='rsync -a --delete --force --progress'

ip1981 ☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.