SSH
scp
rsync
checksum

大きなファイルを転送するときのrsyncオプション 【scpは使ってはいけない】

これを指定しておけば、ロバストな転送ができる。大きなファイルの転送は必ずrsyncを使い、ベリファイをしない scp は使ってはいけない。

必ず -a -c (--checksum) と --append-verify をつける

rsync -ac --append-verify
  • rsyncはオプションを特に指定しなくてもチェックサムを使って転送したファイルが正しいか調べる
  • ただ、すでにファイルがローカルにも有った場合、転送するかどうかは日付やサイズだけに依存する。
    • -c (--checksum)をつけると、チェックサムが違うと転送するようにできる
  • --append-verify はリジューム(再開)に有用なオプションで、接続が切れたときにももう一度同じコマンドを叩けば、ベリファイをした後に転送を再開できる。
    • これによって、何度コマンドを叩いてもファイルの冪等性があることになる

その他便利なtips

オプション

  • -v はファイル一覧を出してくれるが、細かいファイルが多いとパフォーマンスが下がるかもしれない
  • さらに --progress をつけると、1ファイルごとの転送レートや転送の進捗を出すことができる

tips

  • ssh config でホスト名を書いておくと捗る
    • rsync -avc --append-verify --progress hostname:~/test.bin ~/target_dir/ 的な。
      • hostnameからコピーする例。
  • src (転送元)には最後のスラッシュをつけないほうが、思った通りの結果になる