私はしばらくrsync(v3.0.6)を介してサーバーをバックアップしてきました。デルタファイルのリストを取得するのに約20分かかりました(フルファイルフラグを使用していました)。 3つのファイルを除外したが、そのファイルを取り出すと、同期が開始されるのに1秒しかかかりません。ファイルは319個のみです(スキップされたディレクトリを含む場合は689個)。どんなアイデアや考えがありますか?パターンマッチングが遅すぎてはいけませんか?
rsync -vvnWr --exclude='aaa.tar.gz' --exclude='bbb.tar.gz' -exclude='ccc.tar.gz' --include='*.tar.gz' --exclude='*' --delete -e "ssh -p 34577 -i /root/.ssh/backup_rsa" [email protected]:/backup/cpbackup/daily/ /backup/jarvis/cpanel/$((($(date +\%-d)-1)/7+1))/*
サンプル出力
[sender] showing file ddd.tar.gz because of pattern *.tar.gz
[sender] showing file eee.tar.gz because of pattern *.tar.gz
[sender] hiding directory fff.0 because of pattern *
[sender] showing file ggg.tar.gz because of pattern *.tar.gz
...
出力は例外なく私たちの出力と同じです。明らかに私がリストした出力をスキップします。除外すると、各項目間で長い一時停止が発生します。 IPとファイル名を変更しました。
ありがとうございます!
答え1
寝るべきだと思いました。除外項目にハイフンがありません。構文エラーを引き起こすことなく追加の引数として読み取る必要があり、-cチェックサムフラグが遅くなる原因になる可能性があります。
読んでくれた皆さんに感謝します!
答え2
rsync
遅すぎる主な理由は、提供する必要があるほとんどの最適化を無効にしたためです。実行するたびに、含まれているすべてのファイルがコピーされる手順に近づいてきました。
なぜ?変更を--whole-file
許可するのではなく強制します。また、タイムスタンプをrsync
使用またはコピーしないため、チェックサムが一致することを確認するには、ローカルおよびリモートシステムのすべてのファイルを読み取る必要があります。-t
-a
rsync
この試み
rsync --dry-run -vvtr \
--exclude='aaa.tar.gz' --exclude='bbb.tar.gz' -exclude='ccc.tar.gz' --include='*.tar.gz' --exclude='*' \
--delete --delete-during \
-e "ssh -p 34577 -i /root/.ssh/backup_rsa" \
[email protected]:/backup/cpbackup/daily/ \
/backup/jarvis/cpanel/$((($(date +\%-d)-1)/7+1))/