特定のフォルダのリモートサーバーにファイルをコピーしようとしています。
そのadriveバックアップ計画。しかし、scpが付属しています。ディレクトリを選択しなくてもファイルをコピーできます。存在しないディレクトリを置いても、そのディレクトリと表示されます。
root@Host1 [/usr/src]# scp ftpdelete.sh user@[email protected]:/mysql-only/
scp: /mysql-only/: Is a directory
私の場合、驚いたことに、ディレクトリが存在しなかったのです。 :|エラーメッセージはバグですか?...それとも私です。後者に誘惑されました。
SCPは、ファイルをscpしたい場合、自動的に新しいディレクトリを作成しません(再帰的なコピーを行う場合にのみディレクトリを作成します)。間違ったエラーメッセージがあります。エラーはNo such file or directory
または類似。
これは既知の問題であり、これに関するアップストリームのバグジラがあります[1]。
sh
ファイルをサーバーの新しいディレクトリにコピーしていて、そのディレクトリが存在することが期待されていますが、実際には存在しません(その場合、マシンはファイルをディレクトリに変更することを希望していると見なします)。おそらく、設定したディレクトリが間違っています。
-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 /
scp -r source_location user@servername:/target_location
scp
ディレクトリからの相対パスでhome
を試したところ、同様のエラーが発生しました。パス内の不要な先頭の/
を削除した後に修正されたエラー:
# scp ftpdelete.sh user@[email protected]:mysql-only/
むしろその後
# scp ftpdelete.sh user@[email protected]:/mysql-only/
^
ファイルをローカルのルートディレクトリに直接ダウンロードして、そこからコピーしてみます。root @ Host1 [/ usr/src]#scp user @ Host:/root/Desktop/file.txt/root/home /