再同期コピーに失敗しました(「該当するファイルやディレクトリはありません」)

再同期コピーに失敗しました(「該当するファイルやディレクトリはありません」)

あるサーバーから別のサーバーにファイルをコピーしたいので、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ディレクトリが存在するため、参照できます。名前にスペースがありません。

これが原因になる可能性があるアイデアはありますか?

答え1

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

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

だから:

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

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


警告は、シェルの対話型シェル起動ファイルがリモートホスト(使用している場合はファイル)から呼び出され、その中で端末が必要な操作を実行しているというstdin: is not a tty事実に由来します。~/.bashrcbash

リモートシステムでシェルの起動ファイルを編集し、上部付近に次を挿入できます。

[ ! -t 0 ] && return

~/.bashrcたとえば、標準入力ストリームが端末に接続されていないすべてのシェルセッションに対する実行は停止されます。

答え2

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

努力する:

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

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

答え3

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

apt-get install openssh-client

答え4

まず、SSHユーザーにフォルダに書き込む権限があることを確認してください。

/www/abc 

次のコマンドを実行します。

rsync -avzP -e ssh /www/abc user@destinationFolderPath

ノート

  • -v "verbose" (-vv はより詳細な情報を提供します)
  • -e "ssh options" - ssh をリモートシェルとして指定します。
  • -a - "アーカイブモード" - 権限(所有者、グループ)、時間、シンボリックリンク、およびデバイスを保存します。
  • -z 転送中のファイルデータ圧縮
  • -P 転送中の進捗状況を表示します。

CMIIW

関連情報