web-dev-qa-db-ja.com

Rsyncコピーが失敗する(「そのようなファイルまたはディレクトリはありません」)

あるサーバーから別のサーバーにファイルをコピーしようとしているので、私はrsyncの使い方を学び始めています。次のコマンドを使用しています。

rsync -avzP [email protected]:/public_html/abc/ /www/abc

他のサーバーのパスワードを入力すると、次のメッセージが表示されます。

stdin: is not a tty 
receiving incremental file list 
rsync: change_dir "/public_html/abc" failed: No such file or directory (2) 
sent 8 bytes 
received 101 bytes  8.72 bytes/sec total size is 0  speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1655) [Receiver=3.1.1]

ただし、ディレクトリabcは存在します。参照できます。名前にスペースが含まれていません。

これによって何が引き起こされるかについてのアイデアはありますか?

4
killer_rabbit

たとえば、接続の詳細を追加する必要があります。 SSHの場合は--rsh=sshを使用します。

試してください:

rsync -avzP --rsh=ssh [email protected]:/public_html/abc/ /www/abc

パスが正しいことを確認してください。これらのパスは絶対パスですか、相対パスですか:/public_html/abc//www/abc

2
user147505

このエラーは、リモートシステムに/public_html/abcディレクトリがないために発生します。

comments によると、ソースディレクトリは実際にはパス/public_htmlではなく、ユーザーのホームディレクトリにあります。

したがって:

rsync -avzP [email protected]:public_html/abc/ /www/abc

ここでは、ファイルシステムのルートではなく、ユーザーのホームディレクトリにあるpublic_html/abcにアクセスします。


警告stdin: is not a ttyは、インタラクティブシェル用のシェルの起動ファイルがリモートホスト(bashを使用している場合は~/.bashrcファイル)で呼び出され、その中で端末を必要とする何かをする。

リモートマシンのシェルスタートアップファイルを編集し、次の行を先頭近くに挿入できます。

[ ! -t 0 ] && return

これにより、たとえば~/.bashrcその時点で、標準入力ストリームが端末に接続されていないすべてのシェルセッション。

4
Kusalananda

除去されたDockerイメージを使用する場合、SSHが常にインストールされるわけではなく、このエラーも発生します。

apt-get install openssh-client

0
hogarth45