rsync копирование с исключением

Дата | 24.11.2021

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 копирование с исключением директорий и файлов.
Есть еще способ ограничить копирование по размеру, но я такой способ не использовал, не было нужды использовать.

--max-size=550m
--min-size=20m

Rsync примеры.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *