Когда вам нужно скопировать удаленные файлы в 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.
Другие рекомендуемые варианты включают:
- -a, который сохраняет свойства скопированных файлов
- -v, который отображает подробный вывод
В 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. Поделитесь с нами вашими мыслями.