Как копировать каталоги рекурсивно с помощью scp — CloudSavvy IT

Баш Шелл

Распространенной проблемой при работе с файлами является применение операций рекурсивно или к каждому подкаталогу во всей папке. Утилита scp используется для передачи файлов и каталогов на удаленные серверы и поддерживает рекурсивные операции.

Рекурсивный запуск scp

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

Рекурсивное копирование с помощью scp очень просто: просто используйте флаг -r в дополнение ко всему, что вы добавили:

scp -r локальный путь пользователь @ удаленный: / удаленный путь

Обратите внимание, что это явно строчная -r, в отличие от многих других команд, которые используют или требуют -R.

Это будет действовать как перетаскивание в / remotepath /, копирование содержимого localpath / на удаленный компьютер и размещение его в / remotepath / localpath /.

Если вы хотите вместо этого синхронизировать localpath / и / remotepath /, вам придется перенести папку в родительскую папку / remotepath /, место назначения. В данном случае это будет /, корневой каталог.

Это также будет следовать за символическими ссылками в локальном пути при разрешении файлов, но не обязательно создаст те же самые ссылки на удаленном сервере. Например, при копировании нового файла в / etc / nginx / sites-enabled и из него он не будет автоматически помещен в / etc / nginx / sites-available на удаленном компьютере.

Использование rsync вместо

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

rsync работает в основном так же, как scp, с несколькими дополнительными параметрами, включенными для указания настроек:

rsync -a -essh ​​локальный путь / пользователь @ удаленный: / удаленный путь /

Флаг -a указывает режим архива, который включает сразу много часто используемых параметров. Флаг -e ssh устанавливает rsync для передачи по SSH.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *