Можно ли запустить rsync поверх scp?

Если переключение на zshявляется опцией:

$ array=(foo bar bàz '')
$ padded_array=(${(r:20:)array})
$ printf '<%s>\n' $padded_array
<foo                 >
<bar                 >
<bàz                 >
<                    >

Обратите внимание, что этот (r:20:)правый -параметр заполнения заполняет флаг расширения, но также усекает до 20 символов для более длинных строк.

Другой вариант с zsh— сделать:

padded_array=()
(($#array)) && printf -v padded_array '%-20s' "$array[@]"

В отличие от bash, заполнение выполняется по символам -, а не по байтам -, и zshподдерживает аргументы массива для опции -v.

Обратите внимание, что если $arrayсодержит только один элемент, $padded_arrayпреобразуется в скаляр.

Для заполнения+усечения замените %-20sна %-20.20s.

0
12.05.2020, 12:11
2 ответа

Is it possible to run rsync over scp.

Нет:scp— это протокол копирования файлов, работающий поверх ssh.

Reason for involving scp: using authentication and encryption.

Нет... это реализовано sshтранспортным уровнем

Reason for not using rsync over ssh: not giving full shell access to the remote server

Это можно реализовать в sshпутем настройки ограниченного каталога (chroot), содержащего двоичный файл rsync, простую оболочку (dash, возможно, )и необходимые вспомогательные библиотеки.

3
28.04.2021, 23:14

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

Однако через незашифрованное соединение (используется пароль для аутентификации ),хотя это обычно не проблема для использования во внутренних сетях.

Но вы также можете настроить мгновенный rsyncd , который работает через ssh. Вы создаете пользователя на сервере с записью в его файле ~/.ssh/authorized_keys, которая указывает, что при подключении выполняется команда rsync --server --daemon --config=file., то есть rsyncdс локальным файлом конфигурации.

2
28.04.2021, 23:14

Теги

Похожие вопросы