差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン | |||
linux:rsync_and_ssh_remote_server_fast_backup [2019/09/13 06:14] – [マウントした NTFS で何もコピーできない] ともやん | linux:rsync_and_ssh_remote_server_fast_backup [2019/11/03 12:10] (現在) – 削除 ともやん | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ====== rsyncとsshを利用したリモートサーバの高速バックアップ ====== | ||
- | |||
- | ===== rsync + ssh の基本 ===== | ||
- | ここでは、rsyncとsshを利用してリモートサーバのバックアップを取る方法を説明する。\\ | ||
- | rsyncは指定されたフォルダ間の同期を高速に行うことができる。sshを利用するとリモートサーバとの間でフォルダの同期処理を行える。\\ | ||
- | |||
- | ==== ローカルフォルダ → リモートサーバ の転送 ==== | ||
- | **ローカルフォルダ -> リモートサーバ** の転送は、以下の形式となる。 | ||
- | <WRAP prewrap 100%> | ||
- | < | ||
- | $ rsync -avz --delete -e ssh ローカルフォルダ ユーザ@リモートサーバ: | ||
- | </ | ||
- | </ | ||
- | **-a** 元のパーミッションやグループなどを保持したまま同期\\ | ||
- | **-v** 処理中のファイル名を表示\\ | ||
- | **-z** データを圧縮する(回線が遅い場合などに使用)\\ | ||
- | **--delete** コピー元で削除されたファイルは、コピー先でも削除\\ | ||
- | **-e ssh** リモートシェルを指定\\ | ||
- | ==== リモートサーバ → ローカルフォルダ のバックアップ ==== | ||
- | **リモートサーバ -> ローカルフォルダ** のバックアップは、以下の形式となる。 | ||
- | <WRAP prewrap 100%> | ||
- | < | ||
- | $ rsync -avz --delete -e ssh ユーザ@リモートサーバ: | ||
- | </ | ||
- | </ | ||
- | |||
- | sshのportに10022を指定する場合は、以下の形式となる。 | ||
- | <WRAP prewrap 100%> | ||
- | < | ||
- | $ rsync -avz --delete -e "ssh -p10022" | ||
- | </ | ||
- | </ | ||
- | |||
- | 実行例: | ||
- | <WRAP prewrap 100%> | ||
- | < | ||
- | $ rsync -avz --delete -e ssh username@remote.server.com:/ | ||
- | username@remote.server.com' | ||
- | receiving file list ... done | ||
- | ./ | ||
- | log/ | ||
- | log/ | ||
- | log/ | ||
- | log/ | ||
- | ... | ||
- | sent 2594 bytes received 403518 bytes 14767.71 bytes/sec | ||
- | total size is 140703092 | ||
- | $ | ||
- | </ | ||
- | </ | ||
- | |||
- | ===== rsyncコマンドの元ディレクトリ指定の違いによる動作 ===== | ||
- | ディレクトリ間の同期を行う場合は、元ディレクトリ指定の違いによる動作に注意する。\\ | ||
- | \\ | ||
- | 元ディレクトリの中身が先ディレクトリに展開される例: | ||
- | <WRAP prewrap 100%> | ||
- | < | ||
- | $ rsync -avz --delete -e ssh username@remote.server.com:/ | ||
- | </ | ||
- | </ | ||
- | / | ||
- | \\ | ||
- | 先ディレクトリに元ディレクトリ名のディレクトリが作成される例: | ||
- | <WRAP prewrap 100%> | ||
- | < | ||
- | $ rsync -avz --delete -e ssh username@remote.server.com:/ | ||
- | </ | ||
- | </ | ||
- | / | ||
- | |||
- | ===== rsync でレジューム同期を行うには? ===== | ||
- | <WRAP prewrap 100%> | ||
- | < | ||
- | $ rsync -avzP --delete -e ssh user@remote.srv.com:/ | ||
- | </ | ||
- | </ | ||
- | **-P** --partial --progressと同じ | ||
- | |||
- | ===== rsync 進行状況を正確に知る ===== | ||
- | -P または --progress で ir-chk=3604/ | ||
- | --no-inc-recursive オプションを使うと最初に全ての処理対象をカウントして to-chk=3019/ | ||
- | <WRAP prewrap 100%> | ||
- | < | ||
- | $ rsync -avzP --delete --no-inc-recursive -e ssh user@remote.srv.com:/ | ||
- | </ | ||
- | </ | ||
- | |||
- | ===== トラブルシューティング ===== | ||
- | |||
- | ==== rsync で同期中に Operation not permitted のエラーが出る ==== | ||
- | 以下のようなエラーが出る場合は、rsync がファイルシステムのタイムスタンプやパーミッションをセットする権限がないため発生している。\\ | ||
- | < | ||
- | rsync: failed to set times on "/ | ||
- | </ | ||
- | 権限のあるユーザーで同期するか、sudo を付けて実行するとエラーはでなくなる。\\ | ||
- | <WRAP prewrap 100%> | ||
- | < | ||
- | $ sudo rsync -avz --delete -e ssh user@remote.server.com:/ | ||
- | </ | ||
- | </ | ||
- | |||
- | ==== rsync で同期中に mkdir "/ | ||
- | 以下のようなエラーが出る場合は、rsync が ”/ | ||
- | 対処方法はあらかじめ "/ | ||
- | あらかじめ階層を用意するには以下のコマンドを実行する。\\ | ||
- | < | ||
- | $ mkdir -p / | ||
- | </ | ||
- | |||
- | ==== マウントした NTFS で何もコピーできない ==== | ||
- | 以下のように表示されるだけで中身がなにもコピーされない。\\ | ||
- | <WRAP prewrap 100%> | ||
- | < | ||
- | $ rsync -avz --delete -e / | ||
- | sending incremental file list | ||
- | drwxrwxrwx | ||
- | |||
- | sent 48 bytes received 64 bytes 224.00 bytes/sec | ||
- | total size is 0 speedup is 0.00 | ||
- | </ | ||
- | </ | ||
- | **-a** オプションは **-rlptgoD** を指定した事になる。\\ | ||
- | **-v** オプションは **verbose (詳細表示)**\\ | ||
- | **-z** オプションは **転送時に圧縮**\\ | ||
- | **-e** オプションは **"ssh -p10022" | ||
- | この場合マウントした NTFS なので **-e** オプションは不要である。(単純にコマンドオプションのミス)\\ | ||
- | <WRAP prewrap 100%> | ||
- | < | ||
- | $ rsync -avz --delete / | ||
- | 〜省略〜 | ||
- | sent 1, | ||
- | total size is 1, | ||
- | </ | ||
- | </ | ||
- | **-e** オプションを外すとすんなりコピーできた。\\ | ||
- | それでもコピー出来ない場合は **-a** オプションを分解して以下を試す。\\ | ||
- | <WRAP prewrap 100%> | ||
- | < | ||
- | $ rsync -rlptvz --delete / | ||
- | 〜省略〜 | ||
- | sent 1, | ||
- | total size is 1, | ||
- | </ | ||
- | </ | ||
- | |||
- | ===== 参考文献 ===== | ||
- | [[http:// | ||
- | [[http:// | ||