Если Вы в Python, пишущий сценарий больше, чем bash
при сценариях затем Матрица могла бы быть инструментом для Вас.
Матрицей является Python (2.5 или выше) библиотека и инструмент командной строки для оптимизации использования SSH для системных задач администрирования или развертывания приложения.
Это обеспечивает основной комплект операций для выполнения локальных или удаленных команд оболочки (обычно или через sudo) и загрузка/загрузка файлов, а также вспомогательной функциональности, таких как запрос рабочего пользователя для входа или прерывания выполнения.
Типичное использование включает создание модуля Python, содержащего одну или несколько функций, затем выполняя их через потрясающий инструмент командной строки.
Добавьте Ваш, исключает в файл, затем используйте - исключают - из =/path/to/exclude_file
например.
# cat rsync.excludes
.ht*
error_log
.DS*
old
...
# rsync --exclude-from=rsync.excludes
Нет, rsync
не имеет конфигурационного файла по умолчанию, который это считает после вызова. Лучшее, которое можно сделать, - то, что говорит @frogstarr78, и создайте текстовый файл с шаблонами, именами файлов и именами каталогов, чтобы исключить, и затем указать rsync
к нему с --exclude-from=filename
.
В то время как 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 для удовлетворения среде и предпочтениям.
--exclude "/ *" по умолчанию исключает все. Вот пример:
rsync -av --include "bin/" --exclude "/*" /source_dir/ /dest_dir/
--exclude-from
и нет--exclude-file
но иначе это, кажется, билет.спасибо! – cwd 29.09.2011, 18:12