Когда нужно перекинуть много файлов — будь то резервное копирование или синхронизация папок между устройствами, — RSYNC станет твоим лучшим другом. Эта утилита избавляет от мучительного ручного копирования и долгих ожиданий завершения процесса.

1. Зачем нужен RSYNC?

RSYNC — это инструмент командной строки для Linux, Mac и даже Windows (при установке соответствующих пакетов). Его главные преимущества:

✅ Быстро копирует файлы внутри одного компьютера.

✅ Передаёт файлы между разными машинами (например, с ноутбука на сервер).

✅ Работает умно: отправляет только обновленные файлы, экономя трафик и время.

✅ Может докачать передачу, если соединение оборвалось.

✅ Выполняется в фоне, позволяя заниматься своими делами дальше.

Короче говоря, если утомило переносить файлы вручную или наблюдать бесконечные часы работы scp или cp, RSYNC решит проблему!

2. Установка RSYNC

Linux (Ubuntu/Debian)

sudo apt update && sudo apt install rsync -y

Linux (CentOS/RHEL/Fedora)

sudo yum install rsync -y   # Или sudo dnf install rsync

macOS

По умолчанию уже установлен, но можно обновить:

brew install rsync

Windows

Используем WSL (Linux в Windows) или Cygwin.


3. Основные команды RSYNC

📌 Локальное копирование папки

rsync -av /source_dir/ /destination_dir/

Параметры:

  • -a: архивный режим (права доступа, структура каталогов сохраняются);
  • -v: выводит подробную информацию о процессе.

Например:

rsync -av ~/Pictures/ /backup/Pictures_backup/

📌 Клонируем папку с удаленного сервера через SSH

rsync -avz -e ssh username@remote_server:/path/to/source/ /local/path/

Здесь:

  • -z: сжатие файлов перед передачей (полезно при слабом интернете);
  • -e ssh: используем протокол SSH для безопасности.

Пример:

rsync -avz -e ssh alexei@192.168.1.10:/home/alexei/Documents/ ~/Backup/

📌 Переносим локальные файлы на сервер

rsync -avz -e ssh /local/path/ username@remote_server:/target_path/

4. Дополнительные полезные опции

🚀 Копируем только новые файлы

rsync -av --ignore-existing /src/ /dst/

Это позволяет избежать перезаписи старых версий.

🗑 Убираем лишние файлы из целевой директории

rsync -av --delete /src/ /dst/

Удаляет ненужные файлы из приемника, если их нет в источнике.

⏸ Продолжение прерванной передачи

rsync -av --partial --progress /big_file /dst/

Можно сократить до -P.

🚫 Исключение определенных типов файлов

rsync -av --exclude="*.log" --exclude="cache/*" /src/ /dst/

Игнорирует указанные шаблоны.

🐢 Ограничиваем скорость передачи

rsync -av --bwlimit=1000 /src/ remote_user@server:/dst/

Значение задаётся в килобайтах в секунду (--bwlimit=1000 → ограничение скорости 1 Мбит/с).

🔍 Проверяем, что произойдет без фактического копирования

rsync -avn /src/ /dst/

Опция -n («dry run») покажет изменения без реальных действий.


5. Автоматизируем процесс

Запуск по расписанию с Cron

Добавляем задание в crontab:

crontab -e

И добавляем команду запуска, например:

0 3 * * * rsync -avz /home/user/Important_files/ user@backup-server:/backups/

Простой bash-скрипт для регулярных бэкапов

Создаем файл backup.sh:

#!/bin/bash
rsync -av --delete --backup --backup-dir=/backups/$(date +%Y-%m-%d) /data/ /backup/

Делаем его исполняемым:

chmod +x backup.sh

Теперь можем запускать командой:

./backup.sh

6. Восстановление файлов из резервной копии

При необходимости восстановить данные:

rsync -av /backup/ /original_folder/

Заключение

RSYNC — простой и мощный инструмент для быстрой и удобной работы с файлами. Больше никаких страданий с ручной обработкой и длительным ожиданием копирования! Главное помнить базовые команды:

  • Локальное копирование: rsync -av
  • Загрузка на сервер: rsync -avz -e ssh
  • Скачивание с сервера: rsync -avz -e ssh
  • Докачка файла: rsync -avP

 

От root

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *