Skip to content

Instantly share code, notes, and snippets.

@miconblog
Last active July 21, 2016 01:40
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save miconblog/3fe68f50b69e0a6b5940b2900d0bafff to your computer and use it in GitHub Desktop.
Save miconblog/3fe68f50b69e0a6b5940b2900d0bafff to your computer and use it in GitHub Desktop.
# AWS의 S3 버킷 정책을 미리 풀어둡니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::rlibro/UPLOAD_PATH/*"
}
]
}
# AWS 서버에 'rlibro'라는 DB가 있다는 전제로 실행됩니다.
# 스크립트가 실행되면 설정해둔 S3 UPLOAD_PATH 폴더에 DB를 백업해서 저장합니다.
# UPLOAD_PATH에 대한 접근 권한을 미리 풀어주셔야합니다.
# SSH로 AWS 서버에 접근후 스크립트를 실행합니다.
# $aws> sh backup.sh
echo --------- START ----------
cd ~
rm -rf rlibro*
mongodump -d rlibro -o ./
tar -zcvf rlibro.tar.gz rlibro/
aws s3 mv rlibro.tar.gz s3://UPLOAD_PATH/
echo ---------- END ----------
exit 0
# 로컬 DB에 S3에 백업해둔 디비를 다운받아 싱크합니다.
# 로컬에서 실행합니다.
# $local> sh restore.sh
echo --------- START ----------
curl -o rlibro.tar.gz 'https://s3-ap-northeast-1.amazonaws.com/UPLOAD_PATH/rlibro.tar.gz'
tar -xvf rlibro.tar.gz
rm rlibro.tar.gz
mongo rlibro --eval "db.dropDatabase()"
mongorestore -h 127.0.0.1:27017 -d rlibro ./rlibro/
rm -rf rlibro
echo --------- END ----------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment