Инструменты пользователя

Инструменты сайта


software:linux_server:rsync:rsync_copy_with_exception

Это старая версия документа!


rsync копирование с исключением Дата | 24.11.20210 Комментарий rsync копирование с исключением rsync копирование с исключением директорий и файлов. Имеется нагруженный web проект, окало 150 Гигов файлов. Решил оптимизировать backup файлов, убрать директории которые не нужно помещать в backup. Исключения нужно указывать относительное расположение от корневого каталога копирования директории или файла.

К примеру. Каталог 1 /www/site/backup/ Есть каталог 2 с таким же названием /www/site/sys_log/backup/ расположен он в другом месте сайта. Если указать исключение ‘backup/’ то правило сопоставимо к двум директориям. Указывать нужно полный путь от корневого каталога. Корень /www/site/ значит указываем sys_log/backup/ и т.д.

Исключаем из backup директорию backup, со всеми повторениями названия директории у сайта.

rsync –exclude='/backup/' -a –no-compress –info=progress2 /www/site/ /mnt/backup/site Исключаем из backup файл.

rsync –exclude='/adm/adm.php' -a –no-compress –info=progress2 /www/site/ /mnt/backup/site Исключаем из синхронизации несколько директорий и файлы. sys_log/backup/ — не будем вовсе копировать эту директорию. include/* — Директорию оставляем, но без содержимого. adm/adm.php — Файл не копируем.

rsync –exclude='adm/adm.php' –exclude='sys_log/backup/' –exclude='include/*' -a –no-compress –info=progress2 /www/site/ /mnt/backup/site Можно попробовать и такой вариант исключения.

–exclude={'/adm/sys.php' ,'/include/arm/','/sys/mydir.html'} Либо вовсе исключить из копирования по расширению файла.

–exclude '*.log' Так же все можно поместить в файл, что бы команда была короче. Создаем файл /mnt/syn_exclude.txt c таким содержимым, это мы не будем синхронизировать:

/sys_log/backup/* /backup/ /sys/include/* /adm/adm.php Команда.

rsync –exclude-from='/mnt/syn_exclude.txt' -a –no-compress –info=progress2 /www/site/ /mnt/backup/site Еще пример.

rsync -a –no-compress –delete –info=progress2 –exclude-from='/mnt/files-exclude.txt' /var/www/site/upload/ /var/www/site-1/upload/ Содержимое файла исключений /mnt/files-exclude.txt

/resize_cache/ /optimize/ /iblock.zip /__iblock/ Важная заметка — в файле files-exclude.txt исключение директорий и файлов должно начинаться со / (слэша), так rsync поймет, что файл нужно исключать начиная с начала каталога. Если не указать / (слэш) в начале путей в файле files-exclude.txt, данные будут искаться по всей директории.

Если мы хотим просто оставить директорию пустой, не копировать содержимое, то можно указать исключение так

'/resize_cache/*' Вот как бы и все, примеры rsync копирование с исключением директорий и файлов. Есть еще способ ограничить копирование по размеру, но я такой способ не использовал, не было нужды использовать.

–max-size=550m –min-size=20m Rsync примеры.

Только авторизованные участники могут оставлять комментарии.
software/linux_server/rsync/rsync_copy_with_exception.1722016384.txt.gz · Последнее изменение: 2024/07/26 20:53 — vladpolskiy