ディレクトリとそのすべてのファイルをローカルマシンからリモートマシンに転送できるようにしたい。 SCPをあまり使用しないので、少し混乱しています。
私はssh経由でリモートマシンに接続し、コマンドを入力しました
scp name127.0.0.1:local/machine/path/to/directory filename
local/machine/path/to/directory
は、ローカルホスト上の目的のディレクトリでpwd
を使用して取得した値です。
現在エラーが発生しています
No such file or directory
そのコマンドを使用してローカルマシンにコピーしようとしているようです。
Scpの例は、次のコマンドに似ています。
ファイル「foobar.txt」をローカルホストからリモートホストにコピーします
$ scp foobar.txt [email protected]:/some/remote/directory
scp "the_file" your_username @ the_remote_Host:the/path/to/the/directory
ディレクトリを送信するには:
ディレクトリ「foo」をローカルホストからリモートホストのディレクトリ「bar」にコピーします
$ scp -r foo [email protected]:/some/remote/directory/bar
scp -r "the_directory_to_copy" your_username @ the_remote_Host:the/path/to/the/directory/to/copy/to
そして、リモートホストからローカルにコピーするには:
ファイル「foobar.txt」をリモートホストからローカルホストにコピーします
$ scp [email protected]:foobar.txt /your/local/directory
scp your_username @ the_remote_Host:the_file/your/local/directory
ポート番号を含めるには:
ポート8080のリモートホストからローカルホストにファイル「foobar.txt」をコピーします
$ scp -P 8080 [email protected]:foobar.txt /your/local/directory
scp -P port_number your_username @ the_remote_Host:the_file/your/local/directory
pscp -r <directory_to_copy> username@remotehost:/path/to/directory/on/remote/Host
私の場合、ポート番号を指定する必要がありました
scp -P 2222 username@hostip:/directory/ /localdirectory/
似たような問題がありました。サーバーからデスクトップにコピーしようとしましたが、ローカルパスに対して常に同じメッセージが表示されました。問題は、すでにsshごとにサーバーにログインしていたため、サーバーパスでローカルパスを検索していたことです。
解決策:ログアウトしてコマンドを再度実行する必要があり、それが機能しました
問題はさまざまな原因で発生する可能性があります。 Linuxで考えられる3つのシナリオを紹介します。
scp nameを使用すると、ファイルnameがホームディレクトリ。たとえば、Homeにあるが、別のFolderにある場合、 my_folder、次のように記述します。
scp /home/my-username/my_folder/name [email protected]:/Path....
ファイルのファイル許可を知っている必要があります。 読み取り専用がある場合は、変更する必要があります。
許可を変更するには:
ルートとして、Sudo caja
(MATE Desktop)のデフォルトのファイルマネージャ、または another ファイルマネージャ、そしてマウスで、ファイルを右クリックname、選択Properties+PermissionsおよびGroupおよびOtherを読み取りと書き込み.
または chmod を使用します。
リモートマシンまたはサーバーはポート番号としか通信できないので、-Pとポート番号を記述する必要があります。
scp -P 22 /home/my-username/my_folder/name [email protected] /var/www/html
ファイルの送信元のフォルダにnotにスペースが含まれていることを確認してください!
VSコードターミナルからWindowsマシンからリモートサーバーにファイルを送信しようとしていたため、ファイルがここにあってもこのエラーが発生しました。
ファイルがその名前にスペースを含んでいたフォルダーのためです...