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 два тире)
Все файлы, которых нет в новой копии, в старой будуд удалены.
Обязательно исключите целевой каталог, если он существует в локальной системе, иначе будет бесконечный цикл копирования.
Чтобы восстановить систему из резервной копии, просто измените исходные и целевые пути в приведенной выше команде.