あるサーバーから別のサーバーにファイルをコピーしたいので、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
事実に由来します。~/.bashrc
bash
リモートシステムでシェルの起動ファイルを編集し、上部付近に次を挿入できます。
[ ! -t 0 ] && return
~/.bashrc
たとえば、標準入力ストリームが端末に接続されていないすべてのシェルセッションに対する実行は停止されます。