長い間、私はrsyncとUSBケーブルを使って携帯電話のSDカードからコンピュータに写真を転送してきました。現在のコマンドは次のとおりです。
rsync -azvu --ignore-existing --progress SD-Karte/DCIM/Camera/ /home/cardamom/Pictures/PhonePictures/
試行錯誤を経て文書を読むのに時間がかかりました。各ディレクトリに何千枚もの写真があるかもしれませんが、コンピュータが2,000枚の写真の長さのリストを比較するのにそれほど時間がかかりません。 。
しかし、携帯電話で追加写真を撮ったり、追加写真がなくても2〜3分ほど悩んでから約1秒で写真を転送してくれます。
ファイルハッシュ比較など、不要な操作を実行するrsyncコマンドにボトルネックがあるのか、それともやや非効率的な古いスマートフォンのSDカードにあるのかはわかりません。
rsyncコマンドに非効率性がありますか?または、電話でより速く実行する方法はありますか?
答え1
時間が長すぎると、サイズと時間だけに依存する方法はrsync
適用できないためです。quick check
さまざまなファイルシステムはさまざまな方法で時間を保存します。つまり、 rsync
保存されたコンテンツが常に後で検索されるわけではありません。
これが発生した場合、rsync
クイックスキャンは適用されず、チェックサムチェックに切り替えられ、同じファイルであることを確認するためにファイル全体を強制的に読み取ると、全体の転送速度が遅くなります。
ls -l --time-style=full-iso original_file
ls -l --time-style=full-iso already_synced_file
この場合について教えてください。もしそうなら、どれだけ近いかによって、少なくとも2つのオプションがあります。
--size-only
時間は確認せずにサイズのみを確認するオプションを追加します。--modify-window
これを考慮するには、このオプションを使用してください。
答え2
したがって、以下は私の写真の同期を非常に迅速に実行するようです。 3分ではなく3秒です。何が何であるかを明確に知るために、略語を削除しました。
time rsync --dry-run --verbose --compress --update --ignore-existing --recursive --group --times --progress --omit-dir-times --no-perms --modify-window=120 from/here/ /to/here/
もはや不要な時間を取り除き、何をしているかのように見え、何も傷つけない場合は、練習を削除してください。
これをビルドするとき、コマンドはかなり多くのアクセラレータとブレーキが同時に発生し、rsyncが文句を言わないことを確認しました。たとえば、-a
being -rlptgoD
、pはforで、--perms
しばらく私も--no-perms
そこにいました。
当分の間、試験運営を見守り続けて正常に運営されているか確認します。