Как исключить файлы из Rsync
Rsync - одна из самых полезных утилит для администратора сервера, но она синхронизирует все по умолчанию, что может раздражать, если ваше приложение создает много временных файлов. Вот как исключить файлы при использовании rsync.
Исключение из списка в файле
Это идеальный метод для исключения файлов и папок, так как вы всегда можете редактировать список и при необходимости вносить изменения. Вот синтаксис:
Rsync --исключить из-= / путь / к / запретной-файл / путь / к / источнику / пути / к / месту
Хитрость с rsync в том, что вам нужно использовать относительный путь, когда вы пытаетесь исключить вещи, потому что, когда он пытается сопоставить исключения, он не будет использовать первую часть пути для совпадения ... это странно.
Скажем, например, что вы пытаетесь сделать резервную копию / data / web / и отправить его на другой сервер, поэтому для его создания вы используете команду типа rsync -a / data / web / user @ server: / backups / data / web / бывает ... но вы действительно хотите пропустить синхронизацию папки / data / web / cache /. Когда rsync проверяет список исключений для каждого синхронизируемого элемента, он не проверяет / data / web / cache /, поскольку ваша исходная команда rsync находится в папке / data / web /. Он просто проверит «кеш /» по списку. Таким образом, вам нужно поместить «кеш» в список, а не полный путь. Пример:
rsync -a --exclude-from = / data / exclusion / data / web / / backups /
Теперь, чтобы исключить / data / web / cache и / data / web / temp из rsync с помощью этой команды, мы удалили часть пути / data / web /, а файл / data / exclusion просто содержал бы это:
кеш * темп *
Вы заметите, что я добавил * в путь, чтобы убедиться, что он совпадает со всем, что начинается с «cache» в начале. Вы можете использовать этот шаблон звезды для более полезных причин, если хотите - скажем, вы хотите исключить из синхронизации все файлы .txt. Вы начинаете шаблон со звездочки, чтобы убедиться, что он всегда совпадает, и добавляете это:
*.текст
Это гарантирует, что эти типы файлов будут пропущены во время синхронизации. Это довольно просто за это.
Исключение одного предмета
Эта техника гораздо менее полезна, но вы можете использовать ее на лету, если вам нужно. Если вы настраиваете сценарий для использования rsync, которым вы обычно являетесь, вам следует потратить лишнюю минуту, чтобы исключить его из списка файлов, чтобы облегчить дальнейшее обслуживание. Синтаксис очень похож:
rsync --exclude = относительный / path / to / exclusion / source / dest
Здесь должен применяться тот же относительный путь, что и выше..