теперь я представлю вам, вероятно, мою любимую команду linux rsync rsync
- это быстрая и универсальная утилита, которая синхронизирует файлы и каталоги между двумя местоположениями,
которые могут быть локальными или удаленными. Считайте rsync очень сложным комментарием с множеством широко используемых опций.
для резервного копирования и зеркалирования это похоже на улучшенный комментарий к копии
Я сам часто использую rsync для личного и профессионального резервного копирования, когда у вас есть rsync,
вам не нужно сложное коммерческое приложение для большинства типов резервных копий rsync предварительно установлен
во всех основных дистрибутивах Linux и в mac os давайте начнем с базового примера. Предположим,
вам нужна резервная копия каталога ctc, в котором находится вся конфигурация системы,
вместо копирования каталога с помощью команды cp, вы можете использовать rsync, основной синтаксис
- rsync, некоторые параметры один или несколько исходные файлы, а затем конечный каталог.
Пользователь, выполняющий команду rsync, должен иметь разрешения на чтение в исходном местоположении
и права на запись. в расположении каталога, и поэтому я запускаю комментарий хороший,
поэтому sudo rsync минус av источник и т.д. и место назначения,
например, в tilda, косая черта домашнего каталога пользователя ctc минус резервное копирование,
минус параметр указывает rsync работать в режиме архива и это означает, что он будет копировать каталоги
рекурсивно, сохраняя сим-ссылки владельца группы и разрешений, которые он будет копировать файлы, поскольку они
есть, опция v указывает на запуск в подробном режиме rsync распечатает все, что он делает,
поскольку целевой каталог не существует rsync создаст его, я нажимаю Enter, и
после ввода пароля я увижу, как он копирует файлы и каталоги,
когда это будет сделано, он отображает краткую сводку,
хотя выглядит, что он делает то же самое, что и cp, на самом деле это не так, если я запускаю команда снова не будет
копировать те же файлы и каталоги, на самом деле она не будет копировать ни один файл, она ничего не сделает
rsync находит файлы, которые необходимо передать, используя алгоритм быстрой проверки, который ищет файлы
, у которых есть chan ged по размеру или в последнее измененное время, так как файл не был изменен rsync ничего не делает, это
более эффективно по сравнению с командой cp, которая, кстати, скопировала бы снова каждый файл, если
вы не хотите отображать выходные сообщения, используйте параметр минус q что означает тишину вместо v
, теперь он ничего не печатает, давайте предположим, что что-то изменилось в исходном местоположении,
например, пользователь изменил свой пароль, и это означает, что теневой файл был изменен,
давайте изменим пароль пользователя,
хорошо, пароль был изменен, и я снова запускаю ту же команду rsync,
я буду использовать v вместо q. Я хочу быть подробным, и я нажимаю Enter,
и мы замечаем, как он нашел файл, который был изменен, и скопировал только этот файл
теневой файл это большое улучшение, давайте посмотрим, что произойдет, если новые файлы будут созданы
в исходном местоположении так же хорошо, как я создаю новый файл в ctc
и снова запускаю команду async, и, как мы и ожидали, только этот файл был скопирован
сейчас я удаляю файл с th Исходное местоположение
Я снова запускаю команду rsync, ожидая удалить файл и
из места назначения,
но файл не был удален из места назначения
x в каталоге назначения,
чтобы rsync удалил такие файлы, добавьте параметр удаления минус минус, это полезно для зеркалирования,
когда вы хотите, чтобы два каталога всегда имели одинаковое содержимое, я добавляю минус минус удаление,
и файл был удален до этого момента в курсе, мы не придавали значения завершающей косой черте
в имени каталога, поэтому косая черта cd и т. д. то же, что и cd ctc без завершающей косой черты или ls
косой черты, это косая черта такая же, как ls slash ctc, поэтому конечная косая черта не имеет значения, однако rsync по-
другому обрабатывает исходные каталоги с помощью обучающей косой черты lexi darsync, если вы снова
добавите завершающая косая черта к имени исходного каталога будет копировать только содержимое
каталога в целевой каталог. В моем предыдущем примере была конечная косая черта,
и это означало, что он скопировал con палатки ctc внутри целевого каталога внутри резервной копии и т. д.,
если конечная косая черта опущена, rsync скопирует сам исходный каталог внутри целевого
каталога, поэтому эта команда скопирует каталог ctc в целевой каталог, который я нажимаю,
и в целевой каталог, который это и т. д. минус резервное копирование в домашнем каталоге пользователя
это новый каталог с именем и т. д. появился этот
, на самом деле это исходный каталог, созданный rsync,
иногда вы хотите исключить некоторые определенные типы файлов из синхронизации,
когда я делаю резервную копию своих личных файлов, которые я хочу исключить файлы, которые очень
большие, такие как фильмы или файлы, которые не важны для меня, давайте создадим новый каталог,
давайте рассмотрим этот каталог,
чтобы исключить файлы и каталоги, используйте параметр минус минус исключить минус файлы в дереве
каталогов, есть два других каталога и несколько обычных файлов внутри, и я создаю новый
movie1.mkv,
хорошо, я хочу, чтобы наша синхронизация исключила из синхронизации movie1.mkv d1 и все файлы типа png, для этого
я создаю новый файл и в каждой строке я напишу имя файла или каталога, которые будут исключены,
поэтому vim exclude files dot txt все пути относятся к исходному местоположению фильма точка mkv
d1 и завершающая косая черта, чтобы исключить каталог, используют завершающую косую черту после его имени,
и я также могу исключить на основе шаблона, который соответствует файлу или имени каталога,
например, чтобы исключить все файлы png, я добавлю звездочку линии всасывания. png я сохраняю и выхожу из файла
perfect, и я запускаю команду rsync, используя минус минус исключить минус из параметра
минус минус исключить минус из равно между кавычками путь к файлу в
текущем каталоге exclude files.txt источник myproject и место назначения, он создаст
новый каталог с именем backup в текущем рабочем каталоге, и я нажимаю Enter,
и мы видим, что rsync исключил файлы и каталоги, указанные в файле исключения
, важно использовать правильный путь к файлу и я рекомендую вам использовать абсолютный,
который всегда действителен, поэтому было бы лучше использовать здесь абсолютный путь, например домашний ученик, и
имя файла, эта команда будет действительна независимо от того, в каком каталоге вы находитесь при запуске
, гораздо лучше, если вы хотите быстро исключить файл или каталог, есть также параметр исключения минус
минус, который требует времени или аргумент каталогов в командной строке,
например, этот rsync минус av минус минус исключить равно и между кавычками имя файла или каталога
для исключения, вы также можете использовать шаблоны, такие как star.png, файлы png были исключены,
и для исключения нескольких файлов или каталогов просто укажите несколько параметров исключения,
я удаляю каталог резервного копирования
и снова запускаю команду async, я добавляю новый параметр исключения,
такой как этот минус минус exclude equals, скажем, точка pdf, файл также будет исключен,
и вы видите, что он был исключен
, на данный момент все о rsync, помните, что наша синхронизация
- очень сложный инструмент с множеством опций и вы можете увидеть их все на главной странице
в этой лекции. Я показал вам самые полезные, те
, которые я использую часто, мы сделаем небольшой перерыв, и в следующем видео я покажу вам, как
синхронизировать файлы. и каталоги по сети с использованием rsync и ssh