Как я могу исключить файлы по умолчанию с rsync?

Если Вы в Python, пишущий сценарий больше, чем bash при сценариях затем Матрица могла бы быть инструментом для Вас.

От домашней страницы Матрицы:

Матрицей является Python (2.5 или выше) библиотека и инструмент командной строки для оптимизации использования SSH для системных задач администрирования или развертывания приложения.

Это обеспечивает основной комплект операций для выполнения локальных или удаленных команд оболочки (обычно или через sudo) и загрузка/загрузка файлов, а также вспомогательной функциональности, таких как запрос рабочего пользователя для входа или прерывания выполнения.

Типичное использование включает создание модуля Python, содержащего одну или несколько функций, затем выполняя их через потрясающий инструмент командной строки.

12
29.09.2011, 16:05
4 ответа

Добавьте Ваш, исключает в файл, затем используйте - исключают - из =/path/to/exclude_file

например.

# cat rsync.excludes
.ht*
error_log
.DS*
old
...

# rsync --exclude-from=rsync.excludes
10
27.01.2020, 19:55
  • 1
    , похож на синтаксис, --exclude-from и нет --exclude-file но иначе это, кажется, билет.спасибо! –  cwd 29.09.2011, 18:12

Нет, rsync не имеет конфигурационного файла по умолчанию, который это считает после вызова. Лучшее, которое можно сделать, - то, что говорит @frogstarr78, и создайте текстовый файл с шаблонами, именами файлов и именами каталогов, чтобы исключить, и затем указать rsync к нему с --exclude-from=filename.

5
27.01.2020, 19:55
  • 1
    rsync does not have a default configuration file - это - неутешительный –  cwd 29.09.2011, 18:06

В то время как rsync не позволяет Вам установить опции по умолчанию, можно создать сценарий обертки и поместить его выше в $PATH, чем rsync двоичный файл.

Это, моя rsync обертка, которая живет в ~/bin/rsync

#!/bin/sh

# Set path to the rsync binary
RSYNC=/usr/bin/rsync

# Look for these exclude files
IGNORE_FILES=(~/.rsyncignore ./.gitignore ./.rsyncignore)

EXCLUDE_FROM=""
for f in ${IGNORE_FILES[@]}; do
  if [[ -e $f ]]; then
    EXCLUDE_FROM="$EXCLUDE_FROM --exclude-from=$f "
  fi
done
$RSYNC $EXCLUDE_FROM "$@"

Это будет искать ~/.rsyncignore, ./.gitignore, ./.rsyncignore файлы и, если какой-либо из них существует, используют их в качестве значения по умолчанию --exclude-from аргументы.

Просто измените RSYNC и IGNORE_FILES для удовлетворения среде и предпочтениям.

3
27.01.2020, 19:55

--exclude "/ *" по умолчанию исключает все. Вот пример:

rsync -av --include "bin/" --exclude "/*" /source_dir/ /dest_dir/
0
27.01.2020, 19:55

Теги

Похожие вопросы