Руководство по копированию данных с помощью Rsync в Linux
Rsync — это мощный инструмент для синхронизации и копирования файлов в Linux. Он позволяет быстро переносить данные между локальными директориями или удалёнными серверами, сохраняя структуру, права доступа и временные метки. В этой статье мы разберём, как использовать rsync для эффективного копирования: от базовых команд до продвинутых настроек. Вы узнаете, как избежать ошибок, ускорить процесс и защитить свои данные.Преимущества rsync:
- Эффективность: копирует только различия;
- Гибкость: поддерживает локальные и удалённые операции через SSH;
- Надёжность: сохраняет права, владельцев и ссылки.
Установка rsync
В большинстве современных дистрибутивов Linux утилита rsync уже установлена. Проверьте её наличие:rsync --version
Если команда выводит версию (например, 3.2.7), переходите к следующему разделу. Если нет — установите.- Ubuntu/Debian:
apt install rsync
- CentOS/RHEL:
yum install rsync
- Arch Linux:
pacman -S rsync
rsync --version
Базовое копирование локальных данных
Для копирования локальной директории используйте:rsync -av /source_directory/ /target_directory/
- -a (archive) — сохраняет права, владельцев, ссылки и структуру;
- -v (verbose) — показывает процесс копирования.
Пример: копирование /home/user/docs в /backup:
rsync -av /home/user/docs/ /backup/
Убедитесь, что файлы скопированы:
ls -l /backup
Для обновления копии повторите команду — rsync перенесёт только изменения.Копирование на удалённый сервер
Копирование с локального на удалённый сервер
Для передачи данных на сервер:rsync -avz /source_directory/ пользователь@адрес_сервера:/target_directory/
Пример: копирование /home/user/docs на сервер:
rsync -avz /home/user/docs/ [email protected]:/home/user/backup/
Копирование с удалённого сервера на локальный
Для обратной операции:rsync -avz пользователь@адрес_сервера:/source_directory/ /target_directory/
- -z (compress) - сжимает данные файла во время передачи для экономии трафика при копировании.
Пример: скачивание /var/www с сервера:
rsync -avz [email protected]:/var/www/ /home/user/www_backup/
Работа с нестандартным портом
Если сервер использует нестандартный порт SSH (например, 2222), укажите его с помощью опции -e:rsync -av -e "ssh -p 2222" /source_directory/ пользователь@адрес_сервера:/target_directory/
Пример:
rsync -av -e "ssh -p 2222" /home/user/docs/ [email protected]:/home/user/backup/
Внимание: Убедитесь, что порт открыт в настройках файрвола например:
ufw allow 2222
Продвинутые возможности rsync
Исключение файлов
Чтобы пропустить определённые файлы или директории, используйте --exclude:rsync -av --exclude '*.log' /source_directory/ /target_directory/
Пример: исключение логов и временных файлов:
rsync -av --exclude '*.log' --exclude 'temp/' /home/user/docs/ /backup/
Сжатие данных
Для экономии трафика при удалённом копировании добавьте -z (compress):rsync -avz /source_directory/ пользователь@адрес_сервера:/target_directory/
Удаление лишних файлов
Чтобы синхронизировать директории с удалением файлов, которых нет в источнике, используйте --delete:rsync -av --delete /source_directory/ /target_directory/
Внимание: Используйте --delete осторожно — удалённые файлы нельзя восстановить без резервной копии.Типичные ошибки и их устранение
Ошибка: rsync: command not foundПричина: утилита не установлена. Установите её, например, для Debian:
apt install rsync
Ошибка: Permission denied
Причина: недостаточно прав. Запустите с sudo или проверьте права:
chmod 755 /путь
Ошибка: Connection refused
Причина: SSH-сервер недоступен. Проверьте подключение:
ssh пользователь@адрес_сервера
Автоматизация копирования с rsync
Настройте автоматическое копирование через cron. Откройте редактор:crontab -e
Добавьте задание (например, копирование каждый день в 2:00):
0 2 * * * rsync -av /home/user/docs/ /backup/
Полезные советы
- Проверяйте копирование в тестовом режиме с --dry-run: rsync -av --dry-run /источник/ /назначение/
- Используйте --progress для отображения прогресса: rsync -av --progress /источник/ /назначение/
Заключение
Rsync — универсальный инструмент для копирования и синхронизации данных. Мы рассмотрели его установку, базовые и продвинутые команды, а также автоматизацию. Используйте эти рекомендации для создания резервных копий или передачи данных на сервер. Рекомендуется протестировать команды и проанализировать результат — это поможет освоить rsync на практике.07 Apr 2025, 16:04:12