Rsync е една от най-полезните помощни програми за сървърния администратор, но се синхронизиравсичко по подразбиране, което може да е досадно, ако вашето приложение създава много временни файлове. Ето как да изключите файловете, когато използвате rsync.
Изключване от списък в файл
Това е идеалният метод за изключване на файлове и папки, тъй като винаги можете да редактирате списъка и да промените нещата, ако е необходимо. Ето синтаксиса:
rsync - -exclude-from=/path/to/exclusion-file /path/to/source /path/to/dest
Трудното нещо с rsync е, че трябва да използвате относителна пътека, когато се опитвате да изключите нещата, защото когато се опитва да съвпадне с изключенията, няма да използва първата част от пътя за мача … това е странно.
Кажете например, че се опитвате да архивирате / данни / уеб / и да го изпратите на друг сървър, така че да използвате команда като rsync -a / data / web / user @ server: / backups / data / web / се случи … но наистина бихте искали да пропуснете синхронизирането на папката / data / web / cache /. Когато rsync отива да провери списъка ви за изключване за всеки елемент, който синхронизира, той няма да провери / data / web / cache /, тъй като първоначалната ви команда rsync е базирана в папката / data / web /. Тя просто ще провери "кеш /" в списъка. Така че ще трябва да поставите "кеш" в списъка, а не пълен път. Пример:
rsync -a --exclude-from=/data/exclusions /data/web/ /backups/
Сега, за да изключим / data / web / cache и / data / web / temp от rsync, използвайки тази команда, ще премахнем / data / web / частта от пътя и файла /
cache* temp*
Ще забележите, че съм добавил * в пътя, за да се уверите, че той съвпада с всичко, което започва с "кеш" в началото. Можете да използвате този модел звезда за по-полезни причини, ако искате - да речем, че искате да изключите всички файлове.txt от синхронизиране. Ще стартирате шаблона със звездата, за да сте сигурни, че винаги съответства и добавете следното:
*.txt
Това ще гарантира, че тези типове файлове се пропускат по време на синхронизиране. Това е доста просто отвъд това.
Изключване на единична позиция
Тази техника е много по-малко полезна, но можете да я използвате в движение, ако имате нужда. Ако настройвате скрипт за използване на rsync, който обикновено сте, трябва да вземете допълнителната минута, за да изключите от списъка с файлове, за да улесните бъдещата поддръжка. Синтаксисът е много подобен:
rsync --exclude=relative/path/to/exclusion /source /dest
Същият относителен път трябва да се прилага тук, както по-горе.