scp не работает, указав его ошибку в каталоге

Я пытаюсь скопировать файл на удаленный сервер в определенной папке.

Это план резервного копирования adrive. Но он поставляется с scp. Я могу скопировать файл, если я не выбираю каталог. Даже если я помещаю каталог, который не существует, он говорит о своей директории.

[email protected] [/usr/src]# scp ftpdelete.sh [email protected]@scp.adrive.com:/mysql-only/
scp: /mysql-only/: Is a directory

Ответ 1

Удивительно, но в моем случае это не было, потому что каталог не существовал !! : | Является ли сообщение об ошибке ошибкой?... или это я. Соблазн за последнее.

Ответ 2

SCP не создает автоматически новый каталог, если вы хотите скопировать файл (он создает каталог, только если вы делаете рекурсивное копирование). Неправильное сообщение об ошибке. Ошибка должна быть No such file or directory или аналогичного.

Это известная проблема, и по этому поводу существует багзилла вверх по течению [1].

[1] https://bugzilla.mindrot.org/show_bug.cgi?id=1768

Ответ 3

-r 'Рекурсивно скопировать целые каталоги. Обратите внимание, что scp следует символическим ссылкам, встречающимся в обход дерева.
Но он не создает каталог, но вы можете сделать ниже

ssh remote mkdir /diretcory

[email protected] [/usr/src]# scp -r ftpdelete.sh [email protected]@scp.adrive.com:/complete_path/mysql-only/

или

rsync может создавать каталог, если не существует, его базовый синтаксис команды аналогичен scp: ²

$ rsync -r -e ssh ftpdelete.sh me @my-system: /complete_path/mysql-only/

Ответ 4

Вы копируете файл sh в новый каталог на сервере, и каталог, как ожидается, будет там, но на самом деле его нет (тогда компьютер решит, что вы хотите изменить файл на каталог). Скорее всего, вы установили неправильный каталог.

Ответ 6

Я видел аналогичную ошибку, когда пытался scp указать путь относительно каталога home. Ошибка исправлена после удаления ненужного ведущего / в пути:

# scp ftpdelete.sh [email protected]@scp.adrive.com:mysql-only/

а не

# scp ftpdelete.sh [email protected]@scp.adrive.com:/mysql-only/
                                            ^

Ответ 7

Попробуйте загрузить файл непосредственно в локальный корневой каталог, а затем скопируйте его оттуда: root @host1 [/usr/src] # scp user @host: /root/Desktop/file.txt/root/home/