linux:rsync_and_ssh_remote_server_fast_backup

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
最新のリビジョン両方とも次のリビジョン
linux:rsync_and_ssh_remote_server_fast_backup [2015/08/04 03:32] – [samba間でrsyncの同期を行うには?] ともやんlinux:rsync_and_ssh_remote_server_fast_backup [2019/09/13 06:14] – [マウントした NTFS で何もコピーできない] ともやん
行 5: 行 5:
 rsyncは指定されたフォルダ間の同期を高速に行うことができる。sshを利用するとリモートサーバとの間でフォルダの同期処理を行える。\\ rsyncは指定されたフォルダ間の同期を高速に行うことができる。sshを利用するとリモートサーバとの間でフォルダの同期処理を行える。\\
  
 +==== ローカルフォルダ → リモートサーバ の転送 ====
 +**ローカルフォルダ -> リモートサーバ** の転送は、以下の形式となる。
 +<WRAP prewrap 100%>
 +<code>
 +$ rsync -avz --delete -e ssh ローカルフォルダ ユーザ@リモートサーバ:転送先フォルダ
 +</code>
 +</WRAP>
 +**-a** 元のパーミッションやグループなどを保持したまま同期\\
 +**-v** 処理中のファイル名を表示\\
 +**-z** データを圧縮する(回線が遅い場合などに使用)\\
 +**--delete** コピー元で削除されたファイルは、コピー先でも削除\\
 +**-e ssh** リモートシェルを指定\\
 +==== リモートサーバ → ローカルフォルダ のバックアップ ====
 **リモートサーバ -> ローカルフォルダ** のバックアップは、以下の形式となる。 **リモートサーバ -> ローカルフォルダ** のバックアップは、以下の形式となる。
 +<WRAP prewrap 100%>
 <code> <code>
 $ rsync -avz --delete -e ssh ユーザ@リモートサーバ:バックアップ元フォルダ ローカルバックアップ先フォルダ $ rsync -avz --delete -e ssh ユーザ@リモートサーバ:バックアップ元フォルダ ローカルバックアップ先フォルダ
 </code> </code>
 +</WRAP>
  
 sshのportに10022を指定する場合は、以下の形式となる。 sshのportに10022を指定する場合は、以下の形式となる。
 +<WRAP prewrap 100%>
 <code> <code>
 $ rsync -avz --delete -e "ssh -p10022" ユーザ@リモートサーバ:バックアップ元フォルダ ローカルバックアップ先フォルダ $ rsync -avz --delete -e "ssh -p10022" ユーザ@リモートサーバ:バックアップ元フォルダ ローカルバックアップ先フォルダ
 </code> </code>
 +</WRAP>
  
 実行例: 実行例:
 +<WRAP prewrap 100%>
 <code> <code>
-$ rsync -avz --delete -e ssh username@remote.server.com:/remote/server/folder/ /local/client/folder/20081016+$ rsync -avz --delete -e ssh username@remote.server.com:/remote/server/directory/ /local/client/directory/20081016
 username@remote.server.com's password:  username@remote.server.com's password: 
 receiving file list ... done receiving file list ... done
行 31: 行 48:
 $ $
 </code> </code>
 +</WRAP>
  
-**ローカルフォルダ -> モーサーバ** 転送は、以下形式となる。+===== rsyncコマンドの元ディレクト指定の違いによる動作 ===== 
 +ディレクリ間同期を行う場合は、元ディレクトリ指定違いによる動作に注意する。\\ 
 +\\ 
 +元ディレクトリの中身が先ディレクトリに展開される例: 
 +<WRAP prewrap 100%>
 <code> <code>
-$ rsync -avz --delete -e ssh ローカルフォルダ ユーザ@リモートサーバ:転送先フォルダ+$ rsync -avz --delete -e ssh username@remote.server.com:/remote/server/directory/ /local/client/directory/20081016
 </code> </code>
- +</WRAP> 
-===== rsyncコマンドの元フォルダ指定違いよる動作 ===== +/remote/server/directory<html><span style="color: red">/</span></html> ように、ディレクトリ最後に "<html><span style="color: red">/</span></html>" 付けるとdirectory 内容が 20081016 内展開されかたちで同期される。\\
-フォルダ間の同期行う場合は元フォルダ指定違い動作に注意する。\\+
 \\ \\
-フォルダ中身先フォルダに展開される例:+先ディレクトリにディレクトリ名ディレクトリ作成される例: 
 +<WRAP prewrap 100%>
 <code> <code>
-$ rsync -avz --delete -e ssh username@remote.server.com:/remote/server/folder/ /local/client/folder/20081016+$ rsync -avz --delete -e ssh username@remote.server.com:/remote/server/directory /local/client/directory/20081016
 </code> </code>
-/remote/server/folder<html><span style="color: red">/</span></html> のように、元フォルダの最後に "<html><span style="color: red">/</span></html>" を付けと、folder の内容が 20081016 内に展開されるかたちで同期される。\\ +</WRAP> 
-\\ +/remote/server/<html><span style="color: red">directory</span></html> のように、元ディレクトリの最後に "<html><span style="color: red">/</span></html>" を付けないと、20081016 内に directory が作成されてその中に同期される。\\ 
-先フォルダ元フォルダ名のフォルダが作成される例:+ 
 +===== rsync でレジューム同期を行うは? ===== 
 +<WRAP prewrap 100%>
 <code> <code>
-$ rsync -avz --delete -e ssh username@remote.server.com:/remote/server/folder /local/client/folder/20081016+$ rsync -avzP --delete -e ssh user@remote.srv.com:/remote/server/directory/ /local/client/directory/20150804
 </code> </code>
-/remote/server/<html><span style="color: red">folder</span></html> のように、元フォルダの最後に "<html><span style="color: red">/</span></html>" を付けない、20081016 内に folder が作成されてその中に期される。\\+</WRAP> 
 +**-P** --partial --progressと同
  
-===== rsyncでレジューム同期をは? =====+===== rsync 状況を正確知る ===== 
 +-P または --progress で ir-chk=3604/183542 と表示されて、実行状況の分母が ir-chk=3005/184542 増えるので、正確な進行状況が分かりにくい場合がある。ir-chk (for incremental recursion check)\\ 
 +--no-inc-recursive オプションを使うと最初に全ての処理対象をカウントして to-chk=3019/196542 のような表示にできる。\\ 
 +<WRAP prewrap 100%>
 <code> <code>
-$ rsync -avzP --delete -e ssh user@remote.srv.com:/remote/server/folder/ /local/client/folder/20150804+$ rsync -avzP --delete --no-inc-recursive -e ssh user@remote.srv.com:/remote/server/directory/ /local/client/directory/20150804
 </code> </code>
 +</WRAP>
 +
 +===== トラブルシューティング =====
 +
 +==== rsync で同期中に Operation not permitted のエラーが出る ====
 +以下のようなエラーが出る場合は、rsync がファイルシステムのタイムスタンプやパーミッションをセットする権限がないため発生している。\\
 +<code>
 +rsync: failed to set times on "/var/www/html/.": Operation not permitted (1)
 +</code>
 +権限のあるユーザーで同期するか、sudo を付けて実行するとエラーはでなくなる。\\
 +<WRAP prewrap 100%>
 +<code>
 +$ sudo rsync -avz --delete -e ssh user@remote.server.com:/remote/server/directory/ /local/client/directory/
 +</code>
 +</WRAP>
 +
 +==== rsync で同期中に mkdir "/var/www/html/" failed: No such file or directory (2) のエラーが出る ====
 +以下のようなエラーが出る場合は、rsync が ”/var/www/html/” の mkdir に失敗しているため発生している。\\
 +対処方法はあらかじめ "/var/www/html/" を用意してあげるか、階層が存在するディレクトリをコピーする。\\
 +あらかじめ階層を用意するには以下のコマンドを実行する。\\
 +<code>
 +$ mkdir -p /var/www/html/
 +</code>
 +
 +==== マウントした NTFS で何もコピーできない ====
 +以下のように表示されるだけで中身がなにもコピーされない。\\
 +<WRAP prewrap 100%>
 +<code>
 +$ rsync -avz --delete -e /var/www/vhosts/ '/mnt/win_c-drv/Program Files (x86)/Ampps/www/vhosts/'
 +sending incremental file list
 +drwxrwxrwx              0 2019/09/13 05:48:31 .
 +
 +sent 48 bytes  received 64 bytes  224.00 bytes/sec
 +total size is 0  speedup is 0.00
 +</code>
 +</WRAP>
 +**-a** オプションは **-rlptgoD** を指定した事になる。\\
 +**-v** オプションは **verbose (詳細表示)**\\
 +**-z** オプションは **転送時に圧縮**\\
 +**-e** オプションは **"ssh -p10022" SSH でポートを指定する**\\
 +この場合マウントした NTFS なので **-e** オプションは不要である。(単純にコマンドオプションのミス)\\
 +<WRAP prewrap 100%>
 +<code>
 +$ rsync -avz --delete /var/www/vhosts/ '/mnt/win_c-drv/Program Files (x86)/Ampps/www/vhosts/'
 +〜省略〜
 +sent 1,243,360,982 bytes  received 891,926 bytes  8,378,807.46 bytes/sec
 +total size is 1,626,537,962  speedup is 1.31
 +</code>
 +</WRAP>
 +**-e** オプションを外すとすんなりコピーできた。\\
 +それでもコピー出来ない場合は **-a** オプションを分解して以下を試す。\\
 +<WRAP prewrap 100%>
 +<code>
 +$ rsync -rlptvz --delete /var/www/vhosts/ '/mnt/win_c-drv/Program Files (x86)/Ampps/www/vhosts/'
 +〜省略〜
 +sent 1,243,360,982 bytes  received 891,926 bytes  8,378,807.46 bytes/sec
 +total size is 1,626,537,962  speedup is 1.31
 +</code>
 +</WRAP>
 +
 ===== 参考文献 ===== ===== 参考文献 =====
 [[http://www.maruko2.com/mw/rsync_%E3%81%A7%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AE%E5%90%8C%E6%9C%9F%EF%BC%88%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%EF%BC%89|rsync でディレクトリの同期(バックアップ) - maruko2 Note.]]\\ [[http://www.maruko2.com/mw/rsync_%E3%81%A7%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AE%E5%90%8C%E6%9C%9F%EF%BC%88%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%EF%BC%89|rsync でディレクトリの同期(バックアップ) - maruko2 Note.]]\\
 +[[http://superuser.com/questions/534862/what-does-rsyncs-output-tell-here-about-to-chk|What does Rsync's output tell here about to-chk?]]\\
 +