Aria2 и rsync: скачивание, копирование и синхронизация большого объема файлов без боли

26.05.2026

Времена, когда софт весил меньше mp3-трека, а HDD на 100 GB хватало на все — прошли. Современный софт погряз в обилии зависимостей, фреймворков на каждый чих и безжалостном потреблении ресурсов, а появление в свободном доступе LLM сделало использование классических подходов и инструментов для скачивания почти бесполезным.

В этой статье мы поделимся опытом и тонкостями использования aria2 и rsync для скачивания, копирования и синхронизации большого объема тяжелых файлов. Если вы все еще мучаетесь и используете scp и wget — эта статья точно для вас.

Вы узнаете:

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

Aria2 — швейцарский нож для скачивания

Aria2 — это легковесная мультипротокольная утилита для скачивания файлов в мультипоточном режиме с возможностью докачки после разрыва соединения. Поддерживаются HTTP/HTTPS, FTP, SFTP, BitTorrent и Metalink.

Основные фичи Aria2:

Установить Aria2 можно с помощью команды sudo apt update && sudo apt install aria2, а вызывать утилиту нужно так: aria2c ....

Загрузка файлов по HTTP/HTTPS/FTP

Продемонстрируем различные способы и опции скачивания файлов больших размеров на примере скачивания NVIDIA-драйверов для RTX 6000 ada. Драйвер весит 397.79 MB и скачивать его с помощью cURL или wget — долго и неэффективно, а при нестабильном соединении еще и велики риски повреждения файла.

Однопоточное скачивание

Вот как можно скачать файл в одну простую команду: aria2c "https://us.download.nvidia.com/XFree86/Linux-x86_64/580.119.02/NVIDIA-Linux-x86_64-580.119.02.run". При скачивании выводится следующая информация:

А по завершении скачивания будет выведен отчет:

Файл будет скачан в текущую активную директорию, если нужно задать конкретную директорию — это можно сделать с помощью ключа -d . Например: aria2c "https://us.download.nvidia.com/XFree86/Linux-x86_64/580.119.02/NVIDIA-Linux-x86_64-580.119.02.run" -d "/root/downloads/". Если директория не существует — она будет создана.

Многопоточное скачивание и сегментирование

Для многопоточного скачивания используется ключ -xN, где N — число одновременных соединений, а для указания размера сегмента используется ключ -kSIZE (или --min-split-size=SIZE), где SIZE — минимальный размер части (например, 1M, 20M). Например, если мы хотим скачать файл с 2 одновременными соединениями и минимальным размером сегмента в 1M — нам нужно вызвать утилиту со следующими параметрами:

aria2c -x2 -k1M \
"https://us.download.nvidia.com/XFree86/Linux-x86_64/580.119.02/NVIDIA-Linux-x86_64-580.119.02.run"

Скорость скачивания увеличится, если сервер, откуда вы скачиваете файл поддерживает HTTP Range requests (частичные загрузки по байтам). Это позволяет делить файл на части и качать их параллельно. В отчете количество одновременных соединений указывается как CN:X, где X — число одновременных соединений:

Время скачивания уменьшилось раза в четыре. В однопоточном режиме файл размером 397.79 MB скачивался 23 секунды при скорости в 10-11 MiB/s, а при двух потоках — время скачивания сократилось до 8 секунд и скорость выросла до 12-13 MiB/s.

Многопоточное скачивание нескольких файлов

Перейдем на следующий шаг эффективного скачивания файлов — скачаем одновременно несколько крупных файлов с сегментацией. Команда будет такой:

aria2c -x2 -k1M
https://huggingface.co/Comfy-Org/flux2-dev/blob/main/split_files/loras/Flux2TurboComfyv2.safetensors
https://huggingface.co/Comfy-Org/flux2-dev/blob/main/split_files/loras/Flux_2-Turbo-LoRA_comfyui.safetensors

Однако такой вид записи не очень удобен, особенно если файлов больше двух. Удобнее и проще использовать текстовый файл со списком файлов для скачивания. Например, файл может выглядеть так:

https://us.download.nvidia.com/XFree86/Linux-x86_64/580.119.02/NVIDIA-Linux-x86_64-580.119.02.run
  out=NVIDIA-Linux-x86_64-580.119.02.run

https://huggingface.co/Comfy-Org/flux2-dev/blob/main/split_files/loras/Flux2TurboComfyv2.safetensors
  
out=Flux2TurboComfyv2.safetensors

https://huggingface.co/Comfy-Org/flux2-dev/blob/main/split_files/loras/Flux_2-Turbo-LoRA_comfyui.safetensors
  out=Flux_2-Turbo-LoRA_comfyui.safetensors

Тогда команда с применением списка будет выглядеть так: aria2c -i nvidia_downloads.txt -x4 -k1M -j8 --auto-file-renaming=false. На что тут стоит обратить внимание:

В отчете о скачивании видно, что качаются одновременно 3 файла:

Краткий вывод

Aria2 — это современный, мощный и удобный инструмент скачивания большого количества объемных файлов, который позволяет максимально эффективно использовать ресурсы как сервера, так и клиента.

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

Rsync — перенос и синхронизация файлов между серверами

Часто бывает нужно перенести файлы с одного сервера на другой или синхронизировать директории. Выполнять такую задачу по старинке с помощью scp, конечно, можно, но очень долго и неэффективно. Есть более современный и мощный инструмент, который справляется с такого рода задачами куда более эффективно и элегантно — Rsync.

Rsync имеет привычный синтаксис, понятные опции копирования и входит в стандартные Linux-репозитории. Например, скачать Rsync на Ubuntu можно командой sudo apt update && sudo apt install rsync.

Базовый синтаксис Rsync выглядит следующим образом: rsync [-ключи] <что переносим> <куда переносим>.

Перенос файлов внутри одного сервера

Приведем сначала простой, наглядный пример переноса файлов и директорий внутри одного сервера с сохранением прав, владельцев, временных меток (ключ -a):.

Чтобы не ошибиться — можно запомнить простое правило: чтобы в директории назначения были файлы и папки из источника — ставим слеш в конце источника. Если нужно, чтобы в директории назначения появилась сама папка-источник — не ставьте слеш.

Копирование файлов между серверами

Копирование файлов между серверами — вот где Rsync раскрывается в полную силу! Во-первых, Rsync использует привычный SSH-синтаксис подключения. Во-вторых, Rsync поддерживает докачку файлов после разрыва соединения. В-третьих, имеет понятный log.

В зависимости от направления переноса файлов синтаксис Rsync имеет разный вид:

Примеры копирования файлов между серверами

Важный лайфхак: так как rsync работает поверх SSH — можно использовать SSH-агента для копирования с одного сервера на другой без ввода SSH-ключа, если оба сервера используют один и тот же ключ.

Как это работает: подключаемся с локальной машины к первому серверу по SSH с параметром -A: ssh -A -i ssh_key root@ip, а затем просто выполняем описанные ниже команды. SSH-агент сам прокинет ключ и rsync все скопирует.

Пример копирования директории с драйверами с одного сервера на другой: rsync -avz ./downloads/drivers user@web-server:downloads/.

Пример копирования файлов из директории одного сервера в директорию на другом сервере: rsync -avz ./downloads/drivers/ user@web-server:downloads/drivers/.

Пример скачивания директории с удаленного сервера на текущий: rsync -avz user@web-server:downloads/drivers ./downloads/.

Пример скачивания файлов с удаленного сервера на текущий: rsync -avz user@web-server:downloads/drivers/ ./downloads/drivers/.

Значение ключей, которые использовались в примерах:

Построение плана копирования

Чтобы не допустить фатальных ошибок при копировании файлов, особенно если применяются такие опасные ключи, как --delete — используется ключ -n. Он переводит rsync в режим построения плана копирования. То есть все, что будет происходить — это симуляция процесса копирования. Если все прошло успешно — можно запускать rsync без ключа -n.

Пример использования ключа -n: rsync -avzn --delete user@web-server:downloads/drivers ./downloads/. В этом примере директория drivers копируется с удаленного сервера и удаляется. Но если была допущена ошибка в директории назначения или в самом сценарии копирования — откатиться к исходному состоянию уже не получится, а с ключом -n — получится.

Умная докачка

По умолчанию rsync при прерывании передачи файлов удаляет не до конца переданный файл и докачивает его при следующем соединении. Такое поведение явно неэффективно при передаче больших файлов. Изменить поведение rsync относительно работы с недокачанными файлами можно с помощью двух ключей:

Пример использования ключа --partial-dir=DIR:
rsync -av --partial-dir=.partial-dir user@server:/images/ubuntu2404.iso ./.

Синхронизация файлов и директорий

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

Ключ --delete делает целевую директорию (куда копируются файлы) точной зеркальной копией исходной директории. Все файлы и папки, которых в источнике нет — будут удалены.

Ключ --ignore-existing заставляет rsync копировать только те файлы, которых еще нет в директории копирования. Если файл уже существует, он будет проигнорирован, даже если содержимое или метаданные отличаются.

Ключ --update указывает rsync, что нужно копировать файл только в том случае, если файл в источнике новее (по дате изменения), чем файл в целевой директории. Если файл в целевой директории новее или такой же, он будет проигнорирован. Ключевое отличие --update от --ignore-existing в том, что --update смотрит на временную метку и обновляет файлы, если они старее.

Краткое резюме

Rsync — это мощный и ультимативный инструмент для скачивания файлов и их синхронизации между серверами. Утилита заменяет scp, cp и даже отчасти сложные системы резервного копирования.

Rsync особенно полезен в следующих кейсах:

Rsync — де-факто стандарт индустрии. Это надежный, проверенный временем инструмент любого, кто работает с Linux-серверами.

Aria2 и rsync: конец эпохи scp и wget

Сегодня, когда файлы весят десятки гигабайт, таскать их туда-сюда между серверами с помощью scp или wget — гарантированный выстрел в ногу. Нужны современные, производительные и удобные инструменты, которые отвечают потребностям времени, и это aria2 и rsync.

Aria2 — мультипротокольная утилита для скачивания файлов с возможностью параллельного скачивания, сегментацией и докачкой после разрыва или закрытия соединения. Aria2 позволяет скачивать файлы с HTTP/HTTPS, FTP, SFTP, BitTorrent и Metalink источников, не нагружая систему, а использование списков делает управление массовым скачиванием удобным и простым.

Rsync — проверенный временем, надежный и невероятно гибкий инструмент для синхронизации и переноса файлов. Благодаря использованию специальных алгоритмов Rsync передает только изменения, что экономит время и трафик, а поддержка SSH делает процесс безопасным и простым. С помощью опций --partial и --delete rsync превращается в мощный комбайн для создания зеркал и резервных копий.

Используйте правильные инструменты и надежные сервисы — это сэкономит вам время, нервы и деньги. Правильные и современные инструменты вы уже нашли в этой статье, а надежный VPS можно найти в разделе VPS/VDS.