web-dev-qa-db-ja.com

フォルダを除くリモートからローカルへのRSYNC

フォルダまたはファイルを除いて、リモートサーバーからローカルにダウンロードするにはどうすればよいですか?

私はこのようなものを使用しましたが、除外は機能しません...

rsync -avr -P -e ssh --exclude=/path/to/exclude/* user@ipaddress:/home/path/to/copy /home/user/www

提案?

2
Rob

ここでの問題は、rsyncのexcludeフィルターのパスにある可能性があります。

Rsyncファイルリストで使用されるパスは、SOURCEパスに対して相対です。

それはあなたのディレクトリ構造が

 /home/path/to/copy
                | files_to_copy
                     | file1
                     \ file2
                \ files_to_exclude
                     | file3
                     \ file4

次に、コマンドを発行すると

rsync -avr -e ssh user@Host:/home/path/to/copy \
                 /home/user/www --exclude='files_to_exclude/*'

コピーで次の構造を取得します

 /home/user/www
             | files_to_copy
                  | file1
                  \ file2
             \ files_to_exclude

ディレクトリを作成したくない場合はfiles_to_excludeコピーでは、次のコマンドを使用できます。

rsync -avr -e ssh user@Host:/home/path/to/copy \
                 /home/user/www --exclude='files_to_exclude'
4
Dmitri Chubarov

これに似たものを使用します

filename=`date +%F`_backup
rsync --verbose --log-file=/backup_logs/"$filename" --progress --stats --compress --rsh=/usr/bin/ssh --recursive --times --perms --links --delete --exclude '*.Zip' user@remoteMachine:/data/documents/ /local/data/documents/
0
Ben Poulson