- Published on
如何將一個 EFS 的資料複製到另一個 EFS
在 AWS 環境中,有時候我們需要把一個 EFS(Elastic File System) 上的資料備份或遷移到另一個 EFS。這篇文章會教你如何用 EC2 + rsync 方式完成複製,簡單、可靠,而且可以保留檔案權限與時間戳。
前置條件
你有兩個已建立的 EFS:
- 來源 EFS:例如
/efs/mnt/efs_staging - 目標 EFS:例如
/efs/mnt/efs_staging_taiwan
- 來源 EFS:例如
一台可以掛載兩個 EFS 的 EC2,安全組允許 NFS (2049) 通訊
已安裝
rsync(大部分 Linux AMI 預設都有)
1️⃣ 掛載 EFS
假設你已經在 EC2 上建立了掛載點,可以先確認目錄:
sudo mkdir -p /efs/mnt/efs_staging
sudo mkdir -p /efs/mnt/efs_staging_taiwan
接著掛載兩個 EFS:
# 掛載來源 EFS
sudo mount -t efs fs-來源ID:/ /efs/mnt/efs_staging
# 掛載目標 EFS
sudo mount -t efs fs-目標ID:/ /efs/mnt/efs_staging_taiwan
2️⃣ 建立目標資料夾
假設我們要把來源資料夾:
/efs/mnt/efs_staging/aws-backup-restore_2025-11-06T06-23-04-435977917Z/atrix-staging
複製到目標 EFS 的資料夾:
/efs/mnt/efs_staging_taiwan/atrix-staging-taiwan
先建立目標資料夾:
sudo mkdir -p /efs/mnt/efs_staging_taiwan/atrix-staging-taiwan
-p 可以自動建立多層資料夾,如果資料夾已存在也不會報錯。
3️⃣ 使用 rsync 複製資料
接下來用 rsync 複製資料夾內容:
sudo rsync -avh --progress \
/efs/mnt/efs_staging/aws-backup-restore_2025-11-06T06-23-04-435977917Z/atrix-staging/ \
/efs/mnt/efs_staging_taiwan/atrix-staging-taiwan/
參數說明:
-a:保留權限、時間戳、符號連結等-v:顯示複製過程-h:以易讀格式顯示檔案大小--progress:顯示進度/(來源路徑末尾)很重要:/atrix-staging/→ 只複製裡面的內容- 沒有
/→ 會連資料夾本身一起複製
4️⃣ 建議先 Dry-run 模擬
在正式複製之前,可以先用 --dry-run 模擬一次,確認資料會複製到正確位置:
sudo rsync -avh --progress --dry-run \
/efs/mnt/efs_staging/aws-backup-restore_2025-11-06T06-23-04-435977917Z/atrix-staging/ \
/efs/mnt/efs_staging_taiwan/atrix-staging-taiwan/
確認沒問題後,再移除 --dry-run 執行正式同步。
5️⃣ 把複製過來的資料夾,同步到每個 staging-taiwan 資料夾
用 GPT 生成指令
我有一個目錄,例如 /efs/mnt/efs_staging_taiwan,裡面有以下資料夾:
[貼上你在 staging-taiwan 裡的 ls 結果]
其中有些資料夾是來源資料夾,例如:
- atrix-staging-mongodb
- data-atrix-staging-kafka-controller-0
- data-atrix-staging-kafka-controller-1
- data-atrix-staging-kafka-controller-2
- redis-data-atrix-staging-redis-master-0
對應的目標資料夾名稱是:
- atrix-staging-taiwan-mongodb
- data-atrix-staging-taiwan-kafka-controller-0
- data-atrix-staging-taiwan-kafka-controller-1
- data-atrix-staging-taiwan-kafka-controller-2
- redis-data-atrix-staging-taiwan-redis-master-0
請生成一組 rsync 指令,把來源資料夾的內容同步到對應的目標資料夾,每個資料夾一行指令,保留權限和時間戳。只同步已存在的目標資料夾,不創建新的。
5️⃣ 小提醒
- 目標 EFS 空間需足夠
- 大量資料建議在流量低峰時執行
- 可用
--partial避免中斷重傳 - 若有需要,也可以用 AWS DataSync 做大規模自動化同步