Копирование файлов по SSH с архивированием на лету через TAR
Разбираемся с архивированием на лету через протокол SSH, используя TAR.
Копирование осуществляется через утилиту tar и выполняется примерно следующим набором команд:
cd /local/dir; tar cf - . | ssh remotehost "cd /destination/dir; tar xf -"
Что нужно знать о синтаксисе команды tar
tar [-] A --catenate --concatenate | c --create | d --diff --compare | --delete | r --append | t --list | --test-label | u --update | x --extract --get [options] [pathname ...]
Теперь разберем, что же происходит в коде:
- cd /local/dir; - осуществляется переход к папке[1] /local/dir, которая будет архивироваться;
- tar cf - . - утилита tar выполняет слудеющие операции:
- параметр -c говорит о том, что нужно создать новый архив;
- параметр -f говорит о том, что используется архивный файл (или устройство);
- парамерт - говорит о том, что tar должен использовать стандартный вывод, а не записывать данные в файл
- параметр . говорит о том, что архивироваться будет папка, в которой находится пользователь, и из которой выполняется команда tar (в данном случае это папка /local/dir из п.1)
- | ssh означает, что вывод утилиты tar будет передан в ssh-исполняемую следом команду;
- remotehost обычно имеет вид [имя_пользователя]@[адрес_сервера] и означает, что команда будет выполнена на удаленном сервере;
- "cd /destination/dir; tar xf -" - в кавычки заключена последовательность команд для выполнения на удаленном сервере и в SSH вводится имеено в кавычках, разберем ее в следующем пункте;
- cd /destination/dir; - осуществляется переход к папке[1], куда будут разархивированы файлы;
- tar xf -- утилита tar выполняет слудеющие операции:
- параметр -x говорит о том, что будет происходить распаковка;
- параметр -f говорит о том, что используется архивный файл (или устройство);
- параметр - говорит о том, что tar должен использовать не файл, а стандартный вывод.
Также можно использовать дополнительно следующие параметры с tar:
- параметр -v сообщает tar действовать вербально, т.е. отображая, либо получая исчерпывающую информацию о файлах в процессе обработки;
- -z - параметр сообщает tar использовать программу сжатия, когда работа будет вестись с файлами;
или
-j - параметр сообщает tar выполнять чтение или запись архивов, используя компрессор bzip2.
[1] - путь к папке указывается абсолютный, начиная с корневой папки сервера
Материалы по этой теме:
Добавить комментарий
Недавние комментарии
Восстановление конфигурации WinSCP из реестра Windows
[Решено] Chrome: как остановить редирект с http на https
Перенос файлов между серверами напрямую по SSH через SCP
Восстановление конфигурации WinSCP из реестра Windows
Устанавливаем macOS Monterey на VirtualBox на ПК или ноутбуке с Windows 10