Linux копирование больших файлов по сети

Команда SCP Linux: безопасное копирование и передача файлов

img

SCP включает шифрование через соединение SSH (Secure Shell). Это гарантирует, что даже если данные будут перехвачены, они будут защищены.

Команда SCP Linux: безопасное копирование и передача файлов

Как безопасно копировать файлы с помощью SCP

Копировать файл с локального на удаленный сервер с помощью SCP

Команда scp позволяет использовать подстановочные знаки.

Используйте символ тильды ~/ для обозначения home/user каталога пользователя.

Вы можете указать строку текста со знаком * .

Например, /~/*.txt заставит SCP скопировать все файлы в домашнем каталоге, которые заканчиваются на .txt .

Как правило, вам не нужно указывать расположение файла в текущем каталоге. Если вы находитесь в каталоге /home/user и хотите скопировать файл test.txt на сервер, вы можете ввести следующее:

scp test.txt username2@destination:/location2

Чтобы скопировать все файлы .txt в домашний каталог username2 , введите следующее:

scp *.txt username2@destination_host:/~/

Если вы укажете только каталог назначения, SCP оставит имя файла как есть.

Чтобы изменить имя файла, определите новое имя файла в месте назначения:

scp test.txt username2@destination_host:/user/home/user1test.txt

В этом примере файл test.txt копируется с локального компьютера, а затем сохраняется как user1test.txt в каталоге пользователя системы назначения.

Если удаленная система настроена на прослушивание SSH-запросов на порт, отличный от порта 22 по умолчанию, используйте переключатель –P , чтобы указать порт:

scp –P 1234 test.txt user2@destination_host:/location2/

Это копирует test.tx t из вашей локальной системы на целевой хост, используя порт 1234.

Копировать с одного удаленного хоста на другой

Вы не ограничены только подключением между локальным компьютером и удаленным сервером.

Чтобы скопировать из одной удаленной системы в другую:

scp user1@host1.com:/files/test.txt user2@user2.com:/files

Это приведет к репликации файла test.txt из каталога /files на host1.com в каталог /files на /host2.com. Система предложит вам ввести пароль для пользователей user1 и user2 до завершения операции.

Копирование больших файлов с помощью SCP

Если вы копируете большие файлы, запустите команду в терминальном мультиплексоре, например tmux .

Если операция прервана, мультиплексор позволит вам возобновить копирование без необходимости начинать заново.

Вы можете проверить, установлен ли в вашей системе tmux , выполнив в терминале следующее:

Читайте также:  X11 window in linux

Рекомендации по использованию SCP

Команда scp не проверяет место назначения перед записью. Любые файлы в месте назначения с тем же именем будут перезаписаны без уведомления.

Вам будет предложено ввести пароль, когда вы нажмете Enter.

Используйте пароль пользователя в удаленной системе.

Управление разрешениями

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

В системе назначения вам потребуется учетная запись с правом записи в каталог, в котором будут сохранены файлы. Если вы столкнетесь с ошибками при копировании, вы можете попробовать учетную запись пользователя root для устранения неполадок с разрешениями.

Параметры команды SCP

scp [options] username1@source_host:/location1/file1 username2@destination_host:/location2/file2

Вот некоторые общие параметры команды scp:

  • –P — Указать порт SSH сервера
  • –p — сохранить метку времени для изменения и доступа (обратите внимание на строчные буквы)
  • –q — тихий режим, без отображения прогресса или сообщений (все равно будут отображаться ошибки)
  • –C — Сжимать данные во время передачи
  • –r — Рекурсивно — включать подкаталоги и их содержимое

Раздел, следующий сразу за параметрами, — это источник (путь) файла, который вы хотите скопировать. Вы можете скопировать из своей системы в удаленную или наоборот.

В следующем разделе указывается место, куда копируется файл. Например:

scp user@local_system:/home/user/test.txt admin@remote_system:/home/user

Это скопирует документ test.txt из пользовательского каталога в локальной системе и поместит копию в каталог учетной записи администратора в удаленной системе.

Другой пример SCP — чтобы скопировать файл с удаленного хоста на локальный:

scp user@from_host:file.txt /local/directory/

Итоги

В этом руководстве вы узнали, что такое команда scp и как ее использовать для защиты передачи файлов.

Источник

Лучший способ копирования больших папок в Linux. Команда Rsync

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

Но как в Linux сделать это эффективно? Конечно, есть команды, которые помогут, но они не всегда идеальны. Некоторые из них могут вызывать ошибки, а другие не позволяют отслеживать прогресс копирования.

К тому же, если вы пытаетесь скопировать папку, которая весит, скажем 100 Гб, то использование браузера файлов может оказаться неудобным. А если размер еще больше, то ситуация только ухудшается.

Лучший способ копирования больших папок в Linux это Rsync

Как лучше всего скопировать большие папки в Linux.

Уверен вы знаете, что в Linux есть команда cp, которая копирует содержимое одной папки в другую. Вам может показаться, что это лучший способ скопировать нужные файлы. Но, на самом деле, когда дело касается копирования больших объемов данных, эта команда может иметь некоторые недостатки.

Во-первых, если в процессе копирования что-то пойдет не так, команда cp не сообщит о том, какая часть процесса была завершена успешно, а какая нет. Во-вторых, вы не сможете следить за процессом копирования в реальном времени. Поэтому, возможно, имеет смысл рассмотреть альтернативные способы копирования больших объемов данных в Linux.

Читайте также:  Увеличить раздел linux lvm

Для таких случаев лучше всего подходит команда rsync

Rsync (сокращение от англ. «remote synchronization«) — это утилита командной строки в Linux, предназначенная для синхронизации и копирования файлов между локальными и удаленными компьютерами, используя протокол SSH. Она позволяет синхронизировать только те файлы, которые были изменены, что делает ее особенно полезной для копирования больших объемов данных.

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

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

Таким образом, rsync можно использовать для копирования больших папок. Каковы его преимущества? Индикатор выполнения, отказоустойчивость и большая скорость копирования.

Поэтому мы рекомендуем использовать именно команду Rsync.

Установка rsync в Linux

Для установки rsync в Debian и Ubuntu требуется выполнить следующую команду.

Данный инструмент присутствует в официальных репозиториях этих дистрибутивов. Поэтому мы не добавляли репозитории.

Если у вас дистрибутив RHEL, Alma Linux, Rocky Linux и др.

Копирование больших папок с помощью 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 — используется для ограничения пропускной способности сети, что может помочь предотвратить перегрузку сети при копировании больших файлов.
Читайте также:  Linux umount force nfs

Заключение

В заключение, команда rsync в Linux является мощным и удобным инструментом для копирования файлов и папок. Она позволяет эффективно обновлять данные на удаленном компьютере и осуществлять синхронизацию между различными устройствами.

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

В целом, команда rsync представляет собой очень лучший инструмент для копирования данных в Linux, который может значительно упростить работу пользователя и обеспечить безопасность и надежность его данных.

Источник

Копирование больших файлов между серверамию: rsync, scp, mc

Копирование файлов по сети

Иногда бывает необходимость что-то сделать с большим файлом, при этом действия эти желательно делать на другом сервере. Например, по какой-то причине посыпалась большая таблица базы MyISAM, таблицу эту изолировали, сервис перезапустили, все работает. Запускать восстановление такой таблицы на основном сервере не охота, тк это отнимет его ресурсы. Выход тут такой..

Копируем базу на другой сервер в том же датацентре и запускаем восстановление на нем. Это особенно удобно, если у хостера есть клауд и можно взять почасово большой сервер в аренду за копейки. Процесс в целом не сложный, берем файлы копируем, на другой сервер, делаем там с ними что надо и возвращаем назад. Выглядит просто, пока вы не столкнетесь с копированием файла в 1.5TB (1500 Гб).

Midnight Commander

Прежде всего, хочу предостеречь от копирования через всеми любимый Midnight Commander. Что может быть проще открыл соединение по SSH, во второй панельке нажал F5 и начал ждать. Не делайте так: во-первых MC перед передачей копирует файл локально, т.е. для копирования 1,5 TB он скопирует его сперва во временный файл на той же машине, а только затем начнет передачу. Во вторых, передача будет работать медленно. В общем, про MC лучше забыть.

Мультиплексер Screen

Далее рассмотрим вариант, когда копирование у вас займет 6-8 часов. Например, вы запустили копирование и видите что скорость у вас в районе 10-20 MB/s, а время до окончания больше часа. Не тормозите, прерывайте копирование, тк за этот час у вас может произойти обрыв терминальной сессии с вашим исходным сервером и копирование прервется. Для того, чтобы этого избежать используйте утилиту-мультиплексер screen. На сервере выполняете:

Источник

Оцените статью
Adblock
detector