Создание SSH-Pipe
Трубы полезны. Концепция довольно проста: берем данные из STDOUT одной программы и помещаем в STDIN другой программы. OpenSSH может быть использован как труба к удаленной системе. Давайте представим, что нам нужно передать структуру каталогов с одной машины на другую. Структура каталогов содержит много файлов и подкаталогов.
Мы могли бы сделать архив каталога командой tarball и передать его с помощью scp. Если файлам в каталоге не хватает места, то лучше было бы передать содержимое архива с помощью трубы.
01 $ ls content/
02 1 18 27 36 45 54 63 72 81 90
03 10 19 28 37 46 55 64 73 82 91
04 100 2 29 38 47 56 65 74 83 92
05 11 20 3 39 48 57 66 75 84 93
06 12 21 30 4 49 58 67 76 85 94
07 13 22 31 40 5 59 68 77 86 95
08 14 23 32 41 50 6 69 78 87 96
09 15 24 33 42 51 60 7 79 88 97
10 16 25 34 43 52 61 70 8 89 98
11 17 26 35 44 53 62 71 80 9 99
12
13 $ tar -cz content | ssh symkat@symkat.com ‘tar -xz’
14 $ ssh symcat@symkat
15 symkat@lazygeek:~$ ls content/
16 1 14 2 25 30 36 41 47 52 58 63 69 74 8 85 90 96
17 10 15 20 26 31 37 42 48 53 59 64 7 75 80 86 91 97
18 100 16 21 27 32 38 43 49 54 6 65 70 76 81 87 92 98
19 11 17 22 28 33 39 44 5 55 60 66 71 77 82 88 93 99
20 12 18 23 29 34 4 45 50 56 61 67 72 78 83 89 94
21 13 19 24 3 35 40 46 51 57 62 68 73 79 84 9 95
Что мы сделали в этом примере, мы создали архив (-c) и сжали его с помощью gzip (-z). Так как мы не использовали –f, чтобы указать вывод в файл, то сжатый архив был отправлен на STDOUT. Потом мы отправили STDOUT с | на ssh. Мы использовали одну команду в ssh, чтобы вызвать tar с аргументами извлечения (-x)и сжатия gzip (-z). Это прочитает архив с исходного сервера и распакует на наш. Затем можно войти в систему и посмотреть список файлов.
.
Далее: SSH-Pipe, Примеры
Ранее: SSH: Полезные советы и хитрости
Мультиплексирование подключения ssh
Popularity: 3%
Этот материал находится на сайте http://compiling.ru
Оставьте свой отзыв