トップページ > コンテンツ > コンピュータ関連その他 > UNIXコマンド > rsync

書き方例

例1:ssh経由でrsyncする場合
rsync -av -e 'ssh' /path/to/hoge.txt userA@xxx.xxx.xxx.xxx:/path/

例2:データ転送時に圧縮。1MBの帯域制限もかける
rsync -avz --bwlimit=1024 userA@xxx.xxx.xxx.xxx:/path/to/directory /path/

※前に書くのが送信元、後に書くのが送信先となる。
※送信元のパスの書き方だが、最後に/があるかどうかで振る舞いが変わるので注意。
/無 path/to/directory そのパスで指定されたディレクトリ本体がコピー
/有 path/to/directory/ そのパスで指定されたディレクトリ配下のファイルがコピー

※間違って想定と異なるディレクトリに影響を及ぼしたりしないように、一度ドライ実行することを推奨する

よく使うオプション

a ファイル属性やタイムスタンプ等を維持する
v コピーしているファイルの詳細表示
r 指定ディレクトリ配下を再帰的に取得
p パーミッションをそのままコピー
t タイムスタンプをそのままコピー
z 圧縮して同期
u 差分のみを同期
n ドライ実行
e ssh経由で同期。リモート側のrsyncを呼び出す際にroot権限で実行させたい場合は、--rsync-path='sudo rsync'のようにする。
--partial 転送が途中で終わっても再開できるようにする
--exclude 除外対象を指定する
--delete 同期元の削除も反映する(nオプションでドライ実行して挙動確認推奨)
--bwlimit 帯域制限をかける

その他

rsyncをdaemonとして起動しておくことで、上記のようにsshを経由せずにファイルを同期させることもできる。その場合は/etc/rsyncd.confの編集とrsyncdのdaemon起動が必要。
最終更新:2021年02月09日 22:14