web-dev-qa-db-ja.com

scpがディレクトリエラーと言って機能しない

特定のフォルダのリモートサーバーにファイルをコピーしようとしています。

そのadriveバックアップ計画。しかし、scpが付属しています。ディレクトリを選択しなくてもファイルをコピーできます。存在しないディレクトリを置いても、そのディレクトリと表示されます。

root@Host1 [/usr/src]# scp ftpdelete.sh user@[email protected]:/mysql-only/
scp: /mysql-only/: Is a directory
16
user4603311

私の場合、驚いたことに、ディレクトリが存在しなかったのです。 :|エラーメッセージはバグですか?...それとも私です。後者に誘惑されました。

SCPは、ファイルをscpしたい場合、自動的に新しいディレクトリを作成しません(再帰的なコピーを行う場合にのみディレクトリを作成します)。間違ったエラーメッセージがあります。エラーはNo such file or directory または類似。

これは既知の問題であり、これに関するアップストリームのバグジラがあります[1]。

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

10
Jakuje

shファイルをサーバーの新しいディレクトリにコピーしていて、そのディレクトリが存在することが期待されていますが、実際には存在しません(その場合、マシンはファイルをディレクトリに変更することを希望していると見なします)。おそらく、設定したディレクトリが間違っています。

5
Lerner Zhang

-r 'ディレクトリ全体を再帰的にコピーします。 scpは、ツリートラバーサルで検出されたシンボリックリンクをたどることに注意してください。
しかし、それはディレクトリを作成しませんが、以下で行うことができます

ssh remote mkdir /diretcory

root@Host1 [/usr/src]# scp -r ftpdelete.sh user@[email protected]:/complete_path/mysql-only/

または

rsyncは、存在しない場合でもディレクトリの作成を実行できます。その基本的なコマンド構文はscp:²に似ています。

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

3
HashSu
scp -r source_location user@servername:/target_location
2

scpディレクトリからの相対パスでhomeを試したところ、同様のエラーが発生しました。パス内の不要な先頭の/を削除した後に修正されたエラー:

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

むしろその後

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

ファイルをローカルのルートディレクトリに直接ダウンロードして、そこからコピーしてみます。root @ Host1 [/ usr/src]#scp user @ Host:/root/Desktop/file.txt/root/home /

0
Firas BC