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

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


software:linux_server:rsync:rsync_copy_with_exception

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

software:linux_server:rsync:rsync_copy_with_exception [2024/07/26 20:53] – создано vladpolskiysoftware:linux_server:rsync:rsync_copy_with_exception [2024/07/26 21:09] (текущий) vladpolskiy
Строка 1: Строка 1:
-rsync копирование с исключением +======Rsync копирование с исключением====== 
-Дата | 24.11.20210 Комментарий + 
-rsync копирование с исключением +=====rsync копирование с исключением директорий и файлов.===== 
-rsync копирование с исключением директорий и файлов. +Имеется нагруженный web проект, окало 150 Гигов файлов.\\  
-Имеется нагруженный web проект, окало 150 Гигов файлов.+
 Решил оптимизировать backup файлов, убрать директории которые не нужно помещать в backup. Решил оптимизировать backup файлов, убрать директории которые не нужно помещать в backup.
 Исключения нужно указывать относительное расположение от корневого каталога копирования директории или файла. Исключения нужно указывать относительное расположение от корневого каталога копирования директории или файла.
  
-К примеру. +К примеру.\\   
-Каталог 1 /www/site/backup/ +Каталог 1 /www/site/backup/  \\   
-Есть каталог 2 с таким же названием /www/site/sys_log/backup/ расположен он в другом месте сайта. +Есть каталог 2 с таким же названием /www/site/sys_log/backup/ расположен он в другом месте сайта.\\   
-Если указать исключение ‘backup/’ то правило сопоставимо к двум директориям. +Если указать исключение ‘backup/’ то правило сопоставимо к двум директориям.\\   
-Указывать нужно полный путь от корневого каталога. +Указывать нужно полный путь от корневого каталога.\\   
-Корень /www/site/ значит указываем sys_log/backup/ и т.д.+Корень /www/site/ значит указываем sys_log/backup/ и т.д.\\  
  
 Исключаем из backup директорию backup, со всеми повторениями названия директории у сайта. Исключаем из backup директорию backup, со всеми повторениями названия директории у сайта.
 +<code>
 rsync --exclude='/backup/' -a --no-compress --info=progress2 /www/site/ /mnt/backup/site rsync --exclude='/backup/' -a --no-compress --info=progress2 /www/site/ /mnt/backup/site
 +</code>
 Исключаем из backup файл. Исключаем из backup файл.
 +<code>
 rsync --exclude='/adm/adm.php' -a --no-compress --info=progress2 /www/site/ /mnt/backup/site rsync --exclude='/adm/adm.php' -a --no-compress --info=progress2 /www/site/ /mnt/backup/site
 +</code>
 Исключаем из синхронизации несколько директорий и файлы. Исключаем из синхронизации несколько директорий и файлы.
-sys_log/backup/ — не будем вовсе копировать эту директорию. +  * **sys_log/backup/** — не будем вовсе копировать эту директорию. 
-include/* — Директорию оставляем, но без содержимого. +  * **include/*** — Директорию оставляем, но без содержимого. 
-adm/adm.php — Файл не копируем. +  * **adm/adm.php** — Файл не копируем. 
 +<code>
 rsync --exclude='adm/adm.php'  --exclude='sys_log/backup/' --exclude='include/*' -a --no-compress --info=progress2 /www/site/ /mnt/backup/site rsync --exclude='adm/adm.php'  --exclude='sys_log/backup/' --exclude='include/*' -a --no-compress --info=progress2 /www/site/ /mnt/backup/site
 +</code>
 Можно попробовать и такой вариант исключения. Можно попробовать и такой вариант исключения.
 +<code>
 --exclude={'/adm/sys.php' ,'/include/arm/','/sys/mydir.html'} --exclude={'/adm/sys.php' ,'/include/arm/','/sys/mydir.html'}
 +</code>
 Либо вовсе исключить из копирования по расширению файла. Либо вовсе исключить из копирования по расширению файла.
 +<code>
 --exclude '*.log' --exclude '*.log'
 +</code>
 Так же все можно поместить в файл, что бы команда была короче. Так же все можно поместить в файл, что бы команда была короче.
 Создаем файл /mnt/syn_exclude.txt c таким содержимым, это мы не будем синхронизировать: Создаем файл /mnt/syn_exclude.txt c таким содержимым, это мы не будем синхронизировать:
 +<code>
 /sys_log/backup/* /sys_log/backup/*
 /backup/ /backup/
 /sys/include/* /sys/include/*
 /adm/adm.php /adm/adm.php
 +</code>
 Команда. Команда.
 +<code>
 rsync --exclude-from='/mnt/syn_exclude.txt' -a --no-compress --info=progress2 /www/site/ /mnt/backup/site rsync --exclude-from='/mnt/syn_exclude.txt' -a --no-compress --info=progress2 /www/site/ /mnt/backup/site
 +</code>
 Еще пример. Еще пример.
 +<code>
 rsync -a --no-compress --delete --info=progress2 --exclude-from='/mnt/files-exclude.txt' /var/www/site/upload/ /var/www/site-1/upload/ rsync -a --no-compress --delete --info=progress2 --exclude-from='/mnt/files-exclude.txt' /var/www/site/upload/ /var/www/site-1/upload/
 +</code>
 Содержимое файла исключений /mnt/files-exclude.txt Содержимое файла исключений /mnt/files-exclude.txt
 +<code>
 /resize_cache/ /resize_cache/
 /optimize/ /optimize/
 /iblock.zip /iblock.zip
 /__iblock/ /__iblock/
 +</code>
 Важная заметка — в файле files-exclude.txt исключение директорий и файлов должно начинаться со / (слэша), так rsync поймет, что файл нужно исключать начиная с начала каталога. Важная заметка — в файле files-exclude.txt исключение директорий и файлов должно начинаться со / (слэша), так rsync поймет, что файл нужно исключать начиная с начала каталога.
 Если не указать / (слэш) в начале путей в файле files-exclude.txt, данные будут искаться по всей директории. Если не указать / (слэш) в начале путей в файле files-exclude.txt, данные будут искаться по всей директории.
  
 Если мы хотим просто оставить директорию пустой, не копировать содержимое, то можно указать исключение так Если мы хотим просто оставить директорию пустой, не копировать содержимое, то можно указать исключение так
 +<code>
 '/resize_cache/*' '/resize_cache/*'
 +</code>
 Вот как бы и все, примеры rsync копирование с исключением директорий и файлов. Вот как бы и все, примеры rsync копирование с исключением директорий и файлов.
 Есть еще способ ограничить копирование по размеру, но я такой способ не использовал, не было нужды использовать. Есть еще способ ограничить копирование по размеру, но я такой способ не использовал, не было нужды использовать.
 +<code>
 --max-size=550m --max-size=550m
 --min-size=20m --min-size=20m
-Rsync примеры.+</code> 
 +=====Ссылки и Дополнения===== 
 +  * [[software:linux_server:rsync:rsync_examples|]] 
 +  * [[https://rsync.samba.org/|Официальный сайт rsync]] 
 +  * [[https://www.fryaha.ru/rsync-copy-with-exception/|Ссылка на статью автора]]
software/linux_server/rsync/rsync_copy_with_exception.1722016384.txt.gz · Последнее изменение: 2024/07/26 20:53 — vladpolskiy