The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Раздел полезных советов: Полезные рецепты при работе с rsync"
Отправлено auto_tips, 17-Сен-08 20:52 
1. Если копируемая директория заканчивается слэшем, то файлы будут скопированы
в каталог назначения относительно корня изначально заданной директории. Пример:
   rsync -a /dir1/dir2 /dir3 - будет создана иерархия /dir3/dir2/файлы
   rsync -a /dir1/dir2/ /dir3 - будет создана иерархия /dir3/файлы


2. При транзитном переносе файлов через дополнительную машину не нужно забывать,
что опция "-a" подразумевает трансляцию имен пользователей и групп в локальные uid/gid,
т.е. скопировав данные с первой машины на вторую,  а потом со второй на локально подключенный
жесткий диск, предназначенный для третьей машины, получим на третьей машины совершенно иных
владельцев каталогов и файлов. Не тех которые были в /etc/password первой машины,
а тех, которые в данным момент в /etc/password второй машины (изменятся типовые пользователи,
например, web, ftp, dhcp, номера uid/gid  которых отличаются на двух машинах).
Чтобы этого не произошло нужно испольщовать опцию "--numeric-ids".

3. Особенности задания файлов исключений ("--exclude-from=файл" или " --exclude маска1  --exclude маска2").


Для того чтобы исключить из бэкапа содержимое директории, но саму директорию оставить,
нужно указать в "exclude" файле "/dir/*", а не  "/dir/"
(под "/dir" подпадет и /dir123, и файл /dir.txt, для директорий указание "/" в конце обязательно).

Звездочка ("*") в шаблоне действует только на имя файла/каталога, чтобы маской охватывалась
часть пусти, включая "/", нужно писать "**".

Шаблон не начинающийся с '/' проверяется с конца строки. Например "/dir/test" будет
проверен c начала пути, а "dir/test.txt" или "*.log" с конца.
  
Если необходимо исключить все поддиректории в /dir, кроме /dir/best, в список исключений нужно поместить:
   + /dir/best/
   - /dir/*
При переборе содержимого "exclude" файла, срабатывает первое правило под которое подпадает текущий путь,
не важно исключающие или нет. В качестве корня выступает директория назначения,
т.е. "/" в "exclude" файле = "/dir3/dir2" или "/dir3" из первого совета.


4. Запрещение двойного сжатия при передаче данных по SSH.
rsync при задании опции "-z" более оптимально сжимает передаваемые данные,
поэтому сжатие средствами ssh можно отключить:

   export RSYNC_RSH="ssh -c arcfour -o Compression=no -x"
   rsync -a -z -v --bwlimit=16 /dir1 /dir2 user@test.ru:/dir3/

где, --bwlimit=16 ограничивает пропускную способность при копировании бэкапа в 16 Кбайт в сек.

5. Изменение уровня точности при сравнении локального и удаленного времени модификации файлов.
Например, для того чтобы считать идентичными файлы время модификации которых отличается
на 1 секунду необходимо указать: "--modify-window=1".

6. Пример сохранения истории изменения данных. При этом старые измененные или удаленные
файлы не теряются а перемещаются в директорию /snapshot/дата.

   #!/bin/sh
   snapshot_dir="/snapshot/`date \+\%Y_\%m_\%d`"
   mkdir $snapshot_dir
   rsync -a -v --delete --max-delete=1000 --hard-links \
     --delete-excluded --exclude-from=/etc/rsync_backup.exclude \
     --backup --backup-dir=$snapshot_dir \
     / /backup

    RETCODE=$?
    if [ $RETCODE -ne 0 ]; then
        echo "Err code=$RETCODE"| mail -s "FATAL RSYNC BACKUP" admin@test.ru
    fi
    echo RET: $RETCODE
    /bin/chmod 0700 /backup
    /bin/chmod 0700 /snapshot

7. Некоторые полезные опции.

   -v - говорливость, выводит имена обрабатываемых файлов;

   -a - работа в режиме архивирования, сохраняются права доступа и информация о владельцах;

   -H - сохранять жесткие ссылки, оставляя их на другом конце бэкапа;

   -x - не выходить за пределы текущей точки монтирования;

   --progress - показывать сколько процентов осталось до завершения и скорость передачи;

   --delete - удалять из бэкапа файлы, которых уже нет на стороне источника.
      --delete отличается от --delete-after тем, что удаление производится вначале,
      а не на завершающей стадии процесса бэкапа. --delete-after работает быстрее,
      так как не требует лишней стадии обхода списка файлов, но требует использования опции --force
      для обработки таких ситуаций как удаление файла и появление диретории с тем же именем;

   --delete-excluded - удалять части которые уже есть на стороне бэкапа, но появились в списке исключения;

   -n - режим тестирования, реально никаких действий по копированию не производится, только эмуляция;

   -c - использование сверки по контрольным суммам, а не по времени изменения и размеру;

   --compare-dest=DIR - сохранять новые и измененные файлы в отдельной директории,
      не трогая на время коприрования основную директорию назначения, в конце - разом,
      путем переименования, обновить содержимое бэкапа;

   --link-dest=DIR - использовать жесткие ссылки на файлы в DIR, например, для создания подобия снапшотов;

   --ignore-errors - продолжать копирование и удаление после появления ошибок;

   --max-delete - ограничение максимально числа удаляемых за один раз файлов и каталогов;

   -A - сохранять не только права доступа, но и ACL;

   --files-from=FILE - задать список директорий и файлов для бэкапа в файле;


URL:
Обсуждается: http://www.opennet.ru/tips/info/1768.shtml

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру