rsync
https://gyazo.com/39efbb51e4bca4435366df4f760f37ea
ローカル・リモート間で差分のみを高速・安全に同期できる
1方向の同期しかできない
gpt-5.icon
rsync -av などで使われる 標準的な重複の判定基準は以下の通り
パス+ファイル名
ファイルサイズ
更新日時(mtime)
基本構文
code:bash
例
$ rsync -av src/ dest/
よく使うオプション
-a
アーカイブモード(再帰・権限・時刻・シンボリックリンク保持)
-v
詳細表示
-z
圧縮(SSH越しで有効)
-h
人間に読みやすいサイズ表示
--delete
コピー先にあって元にないファイルを削除
--dry-run
実行せず差分だけ確認
--progress
進捗表示
--exclude=PATTERN
特定ファイル/ディレクトリを除外
--ignore-existing
--checksum
重要ポイント:末尾の /
code:bash
rsync -av src/ dest/
src/ → 中身だけを dest/ にコピー
code:bash
rsync -av src dest/
src → ディレクトリごと dest/src にコピー
事故りやすいので要注意。
よくある利用例
1. ローカル間コピー
$ rsync -avh src/ backup/
3. 差分バックアップ(削除も同期)
$ rsync -av --delete src/ backup/
⚠️ --delete は強力なので、まず --dry-run を推奨
$ rsync -av --delete --dry-run src/ backup/
4. 特定ファイルを除外
code:bash
rsync -av \
--exclude=node_modules/ \
--exclude=.git/ \
src/ dest/
5. 進捗を見たい場合
$ rsync -av --progress src/ dest/
rsync を使うべき理由
差分転送で高速
途中で止まっても再実行可能
SSH対応で安全
cp / scp より事故りにくい(確認手段が多い)
注意点まとめ
--delete + パス指定ミス = 全削除事故
末尾 / の有無を必ず確認
本番では --dry-run を先に実行