На машине AI есть папка
/home/a/
На машине BI есть папка
/home/b/
Я желаю передать все файлы, каталоги и подкаталоги / home / a в / home / b с помощью sftp. На машине AI пробовал команды:
sftp fibon82@machineB.com
put /home/a/* /home/b/
но это не работает, я получаю сообщение об ошибке: «пропуск нестандартного файла / home / a / a1» ... [a1 - это подкаталог a]
Как я могу изменить инструкцию put?
Благодарность! :)
РЕДАКТИРОВАТЬ:
Я решил с помощью scp:
scp -r /home/a/ fibon82@machineB.com:/home/b/
put -r
работал бы тоже.sftp
см. в проекте OpenSSH .Ответы:
Хотя rsync не совсем эквивалентен sftp, он является очень мощной альтернативой для scp и sftp, особенно при обновлении копий с компьютера A на компьютер B, поскольку он не копирует файлы, которые не были изменены; он также может удалять с компьютера B файлы, которые были удалены с компьютера A (конечно, только если это указано).
В вашем случае синтаксис будет
-r
Опция для копирования файлов рекурсивны,-z
позволяет сжимать во время передачи, и-p
сохраняет права доступа к файлам (создание файлов, редактирование и т.д.) при копировании, которая является то , что УППЫ не делают AFAIK. Возможно еще много вариантов; как обычно, читайтеman
страницы.источник
rsync
не говоритsftp
-Протокол. Так что, если вы установилиsftp
-chroot, используя командуssh
build in,internal-sftp
то произойдетrsync
сбой.В
sftp
этой команде рекурсивно загружается содержимое текущего каталога в удаленный текущий каталог:См
man sftp
.источник
-r
Переключатель поддерживается начиная с OpenSSH 5.4 только.-r
коммутатор только на стороне клиента (частьsftp
команды). Таким образом, сторона сервера (здесь: получение) не нуждается в OpenSSH 5.4, только клиент должен поддерживать его.scp
(безопасная копия) - это Linux-де-факто для передачи файлов по безопасному туннелю. В вашем случае вы хотели бы использовать рекурсивный переключатель, например:источник
Попробуйте использовать
для получения дополнительной информации проверьте: это
источник
-r
Переключатель поддерживается начиная с OpenSSH 5.4 только.-r
коммутатор только на стороне клиента (частьsftp
команды). Таким образом, сторона сервера (здесь: получение) не нуждается в OpenSSH 5.4, только клиент должен поддерживать его. И: Это должен быть принятый ответ , поскольку получение (возможно, неподдерживаемое)rsync
ответа на вопрос с тегомsftp
немного сбивает с толку.На самом деле, поставить -r должно работать. Но папка назначения должна присутствовать на вашем удаленном хосте:
источник
В моем случае это
rsync
было невозможно, поэтому я использовал:источник
mput
команды в OpenSSHsftp
. Может быть, вы ссылаетесьpsftp
?