rsync

rsync


Это мощная утилита для быстрого, гибкого удаленного и локального копирования файлов.

Синтаксис утилиты простой.

  • rsync -options source destination

options — параметры, с которыми должна выполняться утилита.

source— каталог или файл, который является источником.

destination — каталог или файл, который является приемником.

Опять же на моем примере - резервное копирование корневого раздела в домашнюю директорию.Кореневой и домашний должны быть на разных раделах или дисках.Опции описывать не буду.Их можно посмотреть командой rsync –help

  • rsync -aAXvzh / –exclude={“/home/”,”/dev/”,”/proc/”,”/sys/”,”/tmp/”,”/run/”,”/mnt/”, “/media/”,”/lost+found”} /home/jenit/2022-08-13

(перед exclude два тире)

Эту команду нужно выполнять из под sudo.У меня rsync настроен на работу без sudo.У Вас это будет так:

  • sudo rsync -aAXvzh / –exclude={“/home/”,”/dev/”,”/proc/”,”/sys/”,”/tmp/”,”/run/”, “/mnt/”,”/media/”,”/lost+found”} /home/jenit/2022-08-13

(перед exclude два тире)

Без sudo:

нужно отредактировать /etc/sudoers и позволить одному юзеру запускать твой файл с привелегиями рута Файл обязательно нужно запретить редактировать данному юзеру

  • Allow members of group sudo to execute any command

  • (Разрешить членам группы sudo выполнять любую команду)

%sudo ALL=(ALL:ALL) ALL user ALL = NOPASSWD: /home/user/Documents/script.sh

Для восстановления поменять каталоги местами (приемник-источник).

!!!создать полную резервную копию системы Linux с помощью утилиты Rsync

Для начала, нам нужен резервный носитель (USB-флешка или внешний жесткий диск). Далее нужно узнать имя диска, используя команду «fdisk -l». В моем случае диск определился как /dev/sdb1. Теперь примонтируем наш резервный накопитель в любое удобное место, я выбрал /mnt:

  • $ sudo mount /dev/sdb1 /mnt

(так же можно скопировать в любую папку,на любом разделе диска)

Чтобы создать резервную копию всей системы, все, что вам нужно сделать, это открыть терминал. Затем запустить в нем следующую команду от имени пользователя root:

  • $ sudo rsync -aAXv / –exclude={“ /dev/* “,”/proc/* “,” /home/ * “,”/sys/* “,” /tmp/* “,” /run/* “,” /mnt/* “,” / media /* “,” /lost+found “} /mnt

(перед exclude два тире)

Эта команда создаст резервную копию всей корневой директории (/), исключая директории /dev, /proc, /sys, /tmp, /run, /mnt, /media, lost + found в папке / mnt.

rsync — быстрая, универсальная, локальная и удаленная утилита копирования файлов.

-aAXv — файлы передаются в режиме «архив», что гарантирует сохранение символических ссылок, устройств, разрешений, владельцев, времени модификации, списков ACL и расширенных атрибутов.

  • / — Исходный каталог.
  • –exclude — исключает заданные каталоги из резервной копии.(перед exclude два тире)
  • /mnt — это папка назначения резервного копирования.

Во время синхронизации можно удалять файлы (в старой копии), которых нет в источнике, для этого используется опция –delete.(перед delete два тире)

Например:

  • $ sudo rsync -avzX –delete / –exclude={“ /dev/* “,”/proc/* “,” /home/ * “,”/sys/* “,” /tmp/* “,” /run/* “,” /mnt/* “,” / media /* “,” /lost+found “} /mnt

(перед delete два тире)

Все файлы, которых нет в новой копии, в старой будуд удалены.

Обязательно исключите целевой каталог, если он существует в локальной системе, иначе будет бесконечный цикл копирования.

Чтобы восстановить систему из резервной копии, просто измените исходные и целевые пути в приведенной выше команде.