2020-12-07

定期備份 mongodb 並上傳到 s3

定期備份 mongodb 並上傳到 s3

使用 mongodump 滙出資料庫,並以 tar 壓縮,再以 s3cmd 上傳至 AWS S3 備份。

寫成 backup-mongo.sh,搭配 crontab 就可以定時備份了!以下中文的部份請自行換成真實資料:

#!/bin/bash # 設定當日日期字串為變數值 today=`date +"%Y-%m-%d"` # 將資料庫倒至暫存資料夾 /usr/bin/mongodump -h 芒果主機 -u 芒果用戶 -p 用戶密碼 --authenticationDatabase admin --db my_database --out "/home/ubuntu/mongo_data/bk-${today}" # 壓縮資料夾 /usr/bin/tar -zcvf "/home/ubuntu/mongo_data/my_database-${today}.tar.gz" -C "/home/ubuntu/mongo_data/bk-${today}" my_database # 使用 s3cmd 上傳壓縮檔到 s3 /usr/bin/s3cmd put "/home/ubuntu/mongo_data/my_database-${today}.tar.gz" s3://my_database/mongo-backup/ # 移除暫存資料夾 /usr/bin/rm -fr "/home/ubuntu/mongo_data/bk-${today}" # 移除暫存壓縮檔 /usr/bin/rm "/home/ubuntu/mongo_data/my_database-${today}.tar.gz"

要注意的是若使用 root 執行,在 /root 目錄下要有 s3cmd 的設定檔 .s3cfg。

沒有留言:

FB 留言