Сегодня мы хотим рассказать о том, как лучше всего копировать большие папки в Linux. Хотя многие люди хранят свои файлы в облаке, но у некоторых они все еще на компьютере или на внешних дисках. Иногда это связано с безопасностью или невозможностью доступа к интернету.
Но как в Linux сделать это эффективно? Конечно, есть команды, которые помогут, но они не всегда идеальны. Некоторые из них могут вызывать ошибки, а другие не позволяют отслеживать прогресс копирования.
К тому же, если вы пытаетесь скопировать папку, которая весит, скажем 100 Гб, то использование браузера файлов может оказаться неудобным. А если размер еще больше, то ситуация только ухудшается.
Как лучше всего скопировать большие папки в Linux.
Уверен вы знаете, что в Linux есть команда cp, которая копирует содержимое одной папки в другую. Вам может показаться, что это лучший способ скопировать нужные файлы. Но, на самом деле, когда дело касается копирования больших объемов данных, эта команда может иметь некоторые недостатки.
Во-первых, если в процессе копирования что-то пойдет не так, команда cp не сообщит о том, какая часть процесса была завершена успешно, а какая нет. Во-вторых, вы не сможете следить за процессом копирования в реальном времени. Поэтому, возможно, имеет смысл рассмотреть альтернативные способы копирования больших объемов данных в Linux.
Для таких случаев лучше всего подходит команда rsync
Rsync (сокращение от англ. «remote synchronization«) — это утилита командной строки в Linux, предназначенная для синхронизации и копирования файлов между локальными и удаленными компьютерами, используя протокол SSH. Она позволяет синхронизировать только те файлы, которые были изменены, что делает ее особенно полезной для копирования больших объемов данных.
Rsync может сжимать и шифровать данные в процессе передачи, а также поддерживает удаленное и локальный копирование файлов, архивацию, пропускание файлов по расширению, пропускание скрытых файлов и т.д.
Эта утилита широко используется в системном администрировании для автоматической резервного копирования, обновления веб-сайтов, переноса файлов между серверами и многих других задач, связанных с перемещением данных.
Таким образом, rsync можно использовать для копирования больших папок. Каковы его преимущества? Индикатор выполнения, отказоустойчивость и большая скорость копирования.
Поэтому мы рекомендуем использовать именно команду Rsync.
Установка rsync в Linux
Для установки rsync в Debian и Ubuntu требуется выполнить следующую команду.
sudo apt install rsync
Данный инструмент присутствует в официальных репозиториях этих дистрибутивов. Поэтому мы не добавляли репозитории.
Если у вас дистрибутив RHEL, Alma Linux, Rocky Linux и др.
sudo dnf install rsync
Копирование больших папок с помощью rsync
Rsync отличает от альтернативных команда одна вещь. Это огромное количество опций, которыми он обладает. Вкратце вы можете выполнить следующую команду.
Например, чтобы скопировать папку «my_folder» из домашней директории в папку «backup» на внешнем жестком диске, можно использовать следующую команду:
rsync -avz --progress ~/my_folder /mnt/external_drive/backup/
Объясняем опции этой команде.
-a
(archive mode) означает копирование в режиме архива,
-v
(verbose mode) включает вывод информации о процессе копирования,
-z
(compress) сжимает данные во время передачи.
--progress
— используется для вывода информации о процессе копирования в реальном времени, включая оценочное время завершения.
Путь к исходной папке указывается после символа «~/
» (сокращение для домашней директории), а путь к целевой папке указывается после пути к внешнему диску.
Дополнительные опции к команде rsync в Linux
- -a, —archive — используется для копирования файлов и папок с сохранением их метаданных (владелец, права доступа и т.д.), а также для рекурсивного копирования подпапок и файлов.
- -v, —verbose — используется для вывода подробной информации о процессе копирования, включая имена файлов, размеры и время создания/изменения.
- -z, —compress — используется для сжатия данных во время копирования, что может помочь ускорить процесс при передаче данных по сети.
- -h, —human-readable — используется для вывода размеров файлов в человеко-читаемом формате (например, «1.2MB» вместо «1234567»).
- —delete — используется для удаления файлов на целевом устройстве, которых нет на исходном устройстве.
- —exclude — используется для исключения определенных файлов или папок из процесса копирования.
- -P, —progress — используется для вывода информации о процессе копирования в реальном времени, включая оценочное время завершения.
- —bwlimit — используется для ограничения пропускной способности сети, что может помочь предотвратить перегрузку сети при копировании больших файлов.
Заключение
В заключение, команда rsync в Linux является мощным и удобным инструментом для копирования файлов и папок. Она позволяет эффективно обновлять данные на удаленном компьютере и осуществлять синхронизацию между различными устройствами.
Одним из главных преимуществ команды rsync является возможность продолжения прерванного копирования, что очень важно при работе с большими файлами и папками.
В целом, команда rsync представляет собой очень лучший инструмент для копирования данных в Linux, который может значительно упростить работу пользователя и обеспечить безопасность и надежность его данных.