LANのsshを介してあるシステムから別のシステムにrsyncするbashスクリプトを作成しています。それは私にlink_statエラーを与え、ソースが完全にわからないディレクトリを参照しました。
このエラーは何を意味し、このパスはスクリプトからどこから来たのですか?
バックアップフォルダの場所は/home/user/rsynctest/です。
#!/bin/bash
rsync -av ssh ../Backup/ 192.168.100.120:/media/storage1/Backup
間違い...
sending incremental file list
rsync: link_stat "/home/user/rsynctest/Backup/ssh" failed: No such file or directory (2)
sent 270 bytes received 16 bytes 572.00 bytes/sec
total size is 23 speedup is 0.08
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.1]
答え1
rsync
SSHを使用するように言う必要はありません。リモートパスが提供されると、デフォルトでそのパスが使用されます。コマンドラインの「ssh」は、コピーする別のファイルパスとして解釈されます。 rsyncプロセスはその名前のファイルが見つからないため文句を言います(その後、指定された次のパスをコピーします)。
だから変えなさい
rsync -av ssh ../Backup/ 192.168.100.120:/media/storage1/Backup
到着
rsync -av ../Backup/ 192.168.100.120:/media/storage1/Backup
答え2
以下を試してください。
rsync -av ../Backup/ -e ssh 192.168.100.120:/media/storage1/Backup
または
rsync -ave ssh ../Backup/ 192.168.100.120:/media/storage1/Backup
働かない理由:
ssh
ファイルを転送する場合は、この-e
フラグを使用する必要があります。マンページでは、
-e, --rsh=COMMAND は、使用するリモートシェルを指定します。
ここでは、を使用して経由-e ssh
でリモートシェルに接続することを指定しますssh stream
。 rsyncの仕組みについてもっと知りたい場合は、ssh
次のURLを確認してください。