facebook twitter hatena line email

Linux/コマンドメモ/rsync

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

サーバ間ファイルコピーコマンドの使い方

dirコピー

rsync -avz ~/dir1/ ~/dircopy/

サーバ間コピー(ssh

rsync -avz ~/dir1/ user1@example.com:/home/user/dircopy/

指定ファイルを除いてコピー

rsync -avz --exclude '*.swp'  --exclude '*.tmp' ~/dir1/ ~/dircopy/

指定ファイルを除いてコピー(別ファイル指定

rsync -avz --exclude-from=/path/to/exclude ~/dir1/ ~/dircopy/
  • /path/to/exclude
.svn
*.swp
*.tmp
/tests/

指定ファイルを含めてコピー(別ファイル指定

rsync -avz --include-from=/path/to/include ~/dir1/ ~/dircopy/
  • /path/to/include
/application/modules/ap1/views/tmeplates
/application/modules/ap2/views/tmeplates

削除同期(コピー元で削除したものをコピー先で反映)

rsync -avz --delete ~/dir1/ ~/dircopy/

サーバ間の差分出力

rsync --dry-run -avu --delete -e /usr/bin/ssh /var/www/html/project1 server1:/var/www/html

サーバ&ユーザ設定での差分出力

rsync --dry-run -avu --delete -e /usr/bin/ssh /var/www/html/project1 user1@server1:/var/www/html

鍵を追加

rsync -avz -e "ssh -p 22 -i hogehoge.key" ServerData/ user1@server1:/var/www/html

オプション

-a 可能な限り状態保持
-v 可視化
-z 圧縮
-u 更新されたファイルだけ転送します。
--delete 削除同期
--exclude 除外
--dry-run (-n)試験的に実行

rsyncd設定

/etc/rsyncd.conf

例
[logs]
  path = /var/www/logs
  read only = no

rsync設定ファイル

/etc/rsyncd.conf