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。

2020-12-06

EC2 Ubuntu 上無法使用 crontab -e

EC2 Ubuntu 上無法使用 crontab -e

在 EC2 上開的 ubuntu,遇到使用 crontab 一直沒有作用的情況。搞了老半天爬文才發現不少人遇到同樣的情況

如連結中的說明,直接使用 sudo nano 編輯 /etc/crontab 即可。

之前使用 NAS 也有遇過類似的情況,不過 NAS 本來就硬體資源有限,在 EC2 上遇到還滿驚訝的啊!

FB 留言