作業ツリーからrsync –deleteするデプロイが危ない話

2026.08.11 09:00
2026.08.11 09:00
作業ツリーからrsync –deleteするデプロイが危ない話

手元の作業フォルダからサーバーへrsync --deleteしていたところ、ビルド前で空だったディレクトリに本番をそろえ、大量削除しかけました。

送信元の状態が正解になる

--deleteは未コミットの削除、失敗して不足した生成物、除外ファイル、ブランチ切り替え直後の状態まで本番へ反映します。意図通り動くほど危険です。

rsync -av --delete --dry-run ./dist/ deploy@example:/var/www/site/

dry runで削除一覧と末尾スラッシュを確認します。ただし確認後に送信元が変われば保証にならず、大量の一覧も見落とします。削除件数が閾値を超えたら停止させます。

不変の成果物を配る

CIで特定コミットを取得し、テスト後に生成したdistだけを保存し、その同じ成果物を配ります。サーバーではリリース別ディレクトリへ置き、検証後にシンボリックリンクを切り替え、前版へ戻せるようにします。

アップロード、秘密情報、ログは配信先から分離します。rsync --delete自体ではなく、未検証の作業ツリーを送信元にすることが危険です。

今回は以上です。