Это старая версия документа!
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 примеры.