ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как рекурсивно копировать удаленные файлы в Linux

Bash Heredoc

Когда вам нужно скопировать удаленные файлы в Linux, два популярных инструмента командной строки могут сделать эту работу за вас – например, scp и rsync. В этой статье будет описано, как использовать инструменты scp и rsync для рекурсивного копирования удаленных файлов в Linux.

 

Предварительное условие

Рабочая конфигурация SSH.

 

Рекурсивное копирование удаленных файлов с помощью scp

Scp – это аббревиатура от Secure Copy. Инструмент scp используется для безопасного копирования файлов на удаленный компьютер и с него с использованием протокола защищенной оболочки (SSH).

Базовый синтаксис команды scp следующий.

scp <option> <source> <destination>

Чтобы рекурсивно копировать файлы, вам нужно использовать параметр -r.

Например, приведенная ниже команда рекурсивно скопирует содержимое каталога my/projects в каталог /backup на удаленном сервере. Требуется действительное имя пользователя на удаленном сервере.

$ scp -r /projects redhat8@20.68.114.222:/backup

 

Вот еще один пример рекурсивного копирования содержимого каталога /backup/projects с удаленного сервера в каталог на моем локальном компьютере.

$ scp -r redhat8@20.68.114.222:/backup/projects /recovered

 

Рекурсивное копирование удаленных файлов с помощью rsync

Инструмент rsync (удаленная синхронизация) используется для копирования (синхронизации) файлов между локальными или удаленными компьютерами. Rsync также использует SSH для связи. Базовый синтаксис команды rsync следующий.

rsync <options> <source <destination>

Возможность рекурсивного копирования файлов обозначается -r.

Другие рекомендуемые варианты включают:

 

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

Ниже приведен пример рекурсивного копирования содержимого каталога my/projects2 в каталог /backup2 на удаленном сервере. Требуется действительное имя пользователя на удаленном сервере.

rsync -rav /projects2 redhat8@20.68.114.222:/backup2

 

В следующем примере рекурсивно копируется содержимое каталога /backup2/projects2 с удаленного сервера в каталог на моем локальном компьютере.

rsync -rav redhat8@20.68.114.222:/backup2/projects2 /recovered2

 

Заключение

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

Exit mobile version