rsyncチートシート
[History] [Last Modified] (2020/05/12 14:45:41)
ここは
趣味のプログラミングを楽しむための情報共有サービス。記事の一部は有料設定にして公開できます。 詳しくはこちらをクリック📝
Recent posts
Popular pages

概要

rsyncはディレクトリの同期をローカルマシン内もしくはリモートマシン間で行うためのコマンドです。なお、名前のよく似た、メモリ内のキャッシュをディスクに強制的に書き出させるsyncコマンドとは関係ありません。

チートシート

ディレクトリ内のファイルのコピー

$ rsync -av sourcedir/ destdir/
(or $ rsync --archive --verbose sourcedir/ destdir/)

ディレクトリ全体のコピー

スラッシュがない ('sourcedir/' ではなく 'sourcedir') 場合はディレクトリそのものがコピーされます。

$ rsync -av sourcedir destdir/

コピーではなく同期

コピー元にないファイルがコピー先にあれば削除されます。完全同期です。

$ rsync -av --delete sourcedir/ destdir/

特定のファイルをコピーまたは同期対象から除外

ログファイルなどを除外して同期したい場合には '--exclude' オプションを利用します。

$ rsync -av --exclude 'log.bk' sourcedir/ destdir/

SSHでリモートマシンのディレクトリにコピー

$ rsync -av sourcedir/ username@example.com:/path/to/destdir/

空ディレクトリを無視 -m しつつ、特定のファイルのみをコピー

rsync -avm --include='*/' --include '*.txt' --include '*.tar.gz' --exclude '*' vagrant:/data/db .

ポート番号の変更

-e 'ssh -p 12345'

複数ファイルを指定

クォーテーションで囲うことで複数ファイルを指定できます。

rsync -av "username@example.com: /tmp/file1.txt /tmp/file2.txt" .

大きなファイルを転送する場合

途中で通信が切れた場合に再開できます。-n で dry-run できます。

rsync -avPzh /tmp/myhugefile.tar.gz remote:/data/
  • -P 再開可能なように --partial しつつプログレスを表示 --progress
  • -z 圧縮
  • -h 人間に見やすい形式で表示
Related pages
    概要 Capistranoはサーバの遠隔操作を自動化する多目的なツールです。以下では特に Rails4 を Capistrano3 でデプロイする基本的な方法をまとめます。Rails の場合は Capistrano の設定が gem で提供されているため、Capistrano の知識がなくても基本的なデプロイはできます。独自にカスタマイズしたい場合など、本ページの内容を越えるものは