差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン最新のリビジョン両方とも次のリビジョン | ||
linux:rsync_and_ssh_remote_server_fast_backup [2015/07/20 21:05] – 外部編集 非ログインユーザー | linux:rsync_and_ssh_remote_server_fast_backup [2019/09/13 06:14] – [マウントした NTFS で何もコピーできない] ともやん | ||
---|---|---|---|
行 5: | 行 5: | ||
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 ユーザ@リモートサーバ: | $ rsync -avz --delete -e ssh ユーザ@リモートサーバ: | ||
</ | </ | ||
+ | </ | ||
sshのportに10022を指定する場合は、以下の形式となる。 | sshのportに10022を指定する場合は、以下の形式となる。 | ||
+ | <WRAP prewrap 100%> | ||
< | < | ||
$ rsync -avz --delete -e "ssh -p10022" | $ rsync -avz --delete -e "ssh -p10022" | ||
</ | </ | ||
+ | </ | ||
実行例: | 実行例: | ||
+ | <WRAP prewrap 100%> | ||
< | < | ||
- | $ rsync -avz --delete -e ssh username@remote.server.com:/ | + | $ rsync -avz --delete -e ssh username@remote.server.com:/ |
username@remote.server.com' | username@remote.server.com' | ||
receiving file list ... done | receiving file list ... done | ||
行 31: | 行 48: | ||
$ | $ | ||
</ | </ | ||
+ | </ | ||
- | **ローカルフォルダ -> リモートサーバ** | + | ===== rsyncコマンドの元ディレクトリ指定の違いによる動作 ===== |
+ | ディレクトリ間の同期を行う場合は、元ディレクトリ指定の違いによる動作に注意する。\\ | ||
+ | \\ | ||
+ | 元ディレクトリの中身が先ディレクトリに展開される例: | ||
+ | <WRAP prewrap 100%> | ||
< | < | ||
- | $ rsync -avz --delete -e ssh ローカルフォルダ ユーザ@リモートサーバ:転送先フォルダ | + | $ rsync -avz --delete -e ssh username@remote.server.com:/ |
</ | </ | ||
- | + | </ | |
- | ===== rsyncコマンドの元フォルダ指定の違いによる動作 | + | / |
- | フォルダ間の同期を行う場合は、元フォルダ指定の違いによる動作に注意する。\\ | + | |
\\ | \\ | ||
- | 元フォルダの中身が先フォルダに展開される例: | + | 先ディレクトリに元ディレクトリ名のディレクトリが作成される例: |
+ | <WRAP prewrap 100%> | ||
< | < | ||
- | $ rsync -avz --delete -e ssh username@remote.server.com:/ | + | $ rsync -avz --delete -e ssh username@remote.server.com:/ |
</ | </ | ||
- | / | + | </ |
- | \\ | + | / |
- | 先フォルダに元フォルダ名のフォルダが作成される例: | + | |
+ | ===== rsync でレジューム同期を行うには? ===== | ||
+ | <WRAP prewrap 100%> | ||
< | < | ||
- | $ rsync -avz --delete -e ssh username@remote.server.com:/ | + | $ rsync -avzP --delete -e ssh user@remote.srv.com:/ |
</ | </ | ||
- | / | + | </WRAP> |
+ | **-P** --partial --progressと同じ | ||
- | ===== samba間でrsyncの同期を行うには? | + | ===== rsync 進行状況を正確に知る |
- | CentOS6では、rootでログインしてnautilusでマウントすると、~/.gvfs配下にsamba共有が存在する。 | + | -P または --progress で ir-chk=3604/ |
+ | --no-inc-recursive オプションを使うと最初に全ての処理対象をカウントして to-chk=3019/196542 のような表示にできる。\\ | ||
+ | <WRAP prewrap 100%> | ||
< | < | ||
- | # rsync -avz --delete | + | $ rsync -avzP --delete |
</ | </ | ||
+ | </ | ||
+ | |||
+ | ===== トラブルシューティング ===== | ||
+ | |||
+ | ==== 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:// | ||
+ | [[http:// | ||
+ |