3.8.6.4 Использование утилит dd и rsync для резервного копирования и синхронизации данных
Окружение
- Версия РЕД ОС: 8
- Конфигурация: Рабочая станция
- Версия ПО: coreutils-9.1, rsync-3.2.7
Вы можете подробнее ознакомиться с работой утилит для архивирования, копирования и восстановления файлов, просмотрев наши обучающие видео:
-
на RuTube:
-
в Яндекс.Дзен:
-
в VK Видео:
На наших каналах вы также сможете найти много другой полезной информации.
dd
Dd (data definition) — это утилита, предназначенная для копирования и конвертации файлов. Она позволяет выполнять более сложные операции, чем просто копирование, как в случае с командой cp. С помощью dd можно копировать первые n байт файла, пропустить m байт от начала файла, читать данные с поврежденных носителей, преобразовывать содержимое файла в формат ASCII, изменять порядок байтов в файле, копировать очень большие файлы и выполнять другие операции.
Установка
Утилита dd входит в пакет coreutils, который установлен в РЕД ОС по умолчанию. Если пакет не установлен, выполните команду для установки:
sudo dnf install coreutils
Синтаксис
Утилита доступна для запуска через терминал при помощи команды следующего вида:
dd if=[входной_файл] of=[выходной_файл] [параметры]
Параметры
Основные параметры:
-
bs— указывает сколько байт читать и записывать за один раз; -
cbs— сколько байт нужно записывать за один раз; -
count— скопировать указанное количество блоков, размер одного блока указывается в параметреbs; -
conv— применить фильтры к потоку данных; -
ibs— читать указанное количество байт за раз; -
obs— записывать указанное количество байт за раз; -
seek— пропустить указанное количество байт в начале устройства для чтения; -
skip— пропустить указанное количество байт в начале устройства вывода; -
status— указывает насколько подробным нужно сделать вывод; -
iflag,oflag— позволяет задать дополнительные флаги работы для устройства ввода и вывода, основные из них:nocache,nofollow.
Пример работы
1. Команда для копирования системного раздела диска в файл:
dd if=/dev/sda1 of=/media/device/sda1.bin bs=4096
2. С учетом возможности перенаправления стандартного ввода/вывода команда dd позволяет применять для копирования алгоритмы сжатия или защитного преобразования:
dd if=/dev/sda1 bs=4096 | gzip > /media/device/sda1.bin.gz2
3. Команда для восстановления системного раздела диска (для этого потребуется загрузиться с отдельного диска, и примонтировать носитель, на котором был размещен файл с образом):
dd if=/media/mountpoint/sda1.bin of=/dev/sda1 bs=4096
4. Сохранение образа диска в файл:
dd if=/dev/sr0 of=~/CD.iso bs=2048 conv=noerror
5. Создание образа жесткого диска или раздела на нем и сохранение этого образа на диск:
dd if=/dev/sda of=~/disk.img
6. Создание сжатого образа диска:
dd if=/dev/sda2 | bzip2 disk.img.bz2
7. Копирование файлов:
dd if=/home/sergiy/test.txt of=/home/sergiy/test1.txt
8. Копирование файлов блоками размером по 5 мебибайт:
dd if=/dev/sda of=~/disk.img bs=5M
9. Запись образа на жесткий диск или раздел:
dd if=~/disk.img of=/dev/sda
rsync
Rsync — это программное обеспечение с открытым исходным кодом, которое можно использовать для синхронизации файлов и папок с локального компьютера на удаленный и наоборот. Примечательная особенность rsync — возможность передавать зашифрованные файлы с помощью SSH и SSL. Кроме того, здесь передача файлов выполняется в один поток, в отличие от других подобных программ, создающий отдельный поток для передачи каждого файла. Это увеличивает скорость и убирает дополнительные задержки, которые становятся проблемой при передаче большого количества маленьких файлов.
Установка
Пакет rsync установлен в РЕД ОС по умолчанию. Если пакет не установлен, выполните команду для установки:
sudo dnf install rsync
Синтаксис
Утилита доступна для запуска через терминал при помощи команды следующего вида:
rsync [параметры] [источник] [назначение]
Источник и назначение могут быть локальными или удалёнными директориями, доступными по протоколам SSH, rsync, ftp или samba.
Параметры
Основные параметры rsync:
-
-v— выводить подробную информацию о процессе копирования; -
-q— минимум информации; -
-c— проверка контрольных сумм для файлов; -
-a— режим архивирования, когда сохраняются все атрибуты оригинальных файлов; -
-R— относительные пути; -
-b— создание резервной копии; -
-u— не перезаписывать более новые файлы; -
-l— копировать символьные ссылки; -
-L— копировать содержимое ссылок; -
-H— копировать жесткие ссылки; -
-p— сохранять права для файлов; -
-g— сохранять группу; -
-t— сохранять время модификации; -
-x— работать только в этой файловой системе; -
-e— использовать другой транспорт, например, ssh; -
-z— сжимать файлы перед передачей; -
--delete— удалять файлы которых нет в источнике; -
--exclude— исключить файлы по шаблону; -
--recursive— перебирать директории рекурсивно; -
--no-recursive— отключить рекурсию; -
--progress— выводить прогресс передачи файла; -
--stat— показать статистику передачи; -
--version— версия утилиты.
Пример работы
1. Rsync позволяет синхронизировать файлы и папки в пределах одной машины. Использование rsync для синхронизации файла на локальном компьютере:
rsync -zvh file /tmp/backups/
2. Синхронизация папок rsync выполняется так же, как и файлов:
rsync -zvh /var/account/* /tmp/backups/
3. Если вы хотите, чтобы все атрибуты файлов, такие, как дата изменения и создания сохранялись, необходимо использовать опцию -a:
rsync -azvh /var/account/* /tmp/backups/
4. Синхронизация файлов производится следующим образом. Скопируем локальную папку files, на удаленный сервер:
rsync -avz /home/files root@10.81.1.190:/home/user
5. По умолчанию rsync попытается использовать транспорт ssh. Если вы хотите использовать ранее созданный сервер rsync, нужно указать это явно:
rsync -avz /home/files rsync://10.81.1.190:/share
6. Синхронизация файлов с удаленного сервера:
rsync -avz root@10.81.1.190:/home/ /home/files/
Дата последнего изменения: 24.11.2025
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.