-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
유피넬 백업시스템 만들기 #40
Comments
일단 백업 자동화를 위한 스크립트는 완성하였다. https://git.upnl.org/upnl-homepage/upnl-homepage/tree/master/contrib 디비 백업 #!/bin/bash
set -euo pipefail; IFS=$'\n\t'
PGPASSWORD='비번' pg_dump \
--username=upnl \
--host=localhost \
--format=custom \
upnl > "/home/simnalamburt/upnl.org/backups/pg_dump-$(date -Im).dump" 업로드파일 백업 #!/bin/bash
set -euo pipefail; IFS=$'\n\t'
SCRIPT_PATH="$(mktemp)"
cat <<'EOF' >"$SCRIPT_PATH"
#!/bin/bash
set -euo pipefail; IFS=$'\n\t'
CURRENT_CHECKPOINT="$1"
CURRENT_SIZE="$(( (CURRENT_CHECKPOINT - 1)*10240 ))"
CURRENT_SIZE_MIB="$(echo "scale=2; ${CURRENT_SIZE} / 1048576" | bc -l)"
TOTAL_SIZE="$2"
TOTAL_SIZE_MIB="$(echo "scale=2; ${TOTAL_SIZE} / 1048576" | bc -l)"
PERCENTAGE="$(echo "scale=2; ${CURRENT_SIZE} / ${TOTAL_SIZE} * 100" | bc -l)"
echo "${CURRENT_SIZE_MIB}MiB / ${TOTAL_SIZE_MIB}MiB (${PERCENTAGE}%)"
EOF
chmod +x "$SCRIPT_PATH"
TOTAL_SIZE="$(du -b /home/simnalamburt/upnl.org/src/homepage/upload/ | cut -f1)"
tar \
--create \
--force-local \
--file="/home/simnalamburt/upnl.org/backups/upload-$(date -Im).tar" \
--record-size=10240 \
--checkpoint=10000 \
--checkpoint-action="exec=$SCRIPT_PATH \$TAR_CHECKPOINT $TOTAL_SIZE" \
--directory=/home/simnalamburt/upnl.org/src/homepage \
upload
rm "$SCRIPT_PATH" |
백업을 주기적으로 돌리려면 도커 안에서 크론잡을 돌려야하는데, 이것은 https://github.com/femiwiki/rankingbot/blob/master/Dockerfile 참고 |
@pbzweihander 기존에 |
주기적으로 디비와 업로드 폴더를 백업하는 서비스를 도커로 만들어 올렸습니다. 백업 주기는 일단 디비는 3일, 업로드는 5일마다 하도록 했습니다. 5일 뒤에 둘 다 잘 돌았으면 다시 백업 주기를 조정하는게 좋을거 같아요. |
업로드는 어디에 하실 계획이신가요?
2018년 12월 21일 (금) 오후 1:27, Thomas Lee <[email protected]>님이 작성:
… 주기적으로 디비와 업로드 폴더를 백업하는 서비스를 도커로 만들어 올렸습니다.
백업 주기는 일단 디비는 3일, 업로드는 5일마다 하도록 했습니다. 5일 뒤에 둘 다 잘 돌았으면 다시 백업 주기를 조정하는게 좋을거
같아요.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#40 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AEOt9biP1grB2E0gjrpAqyDRy6slDo1yks5u7GMlgaJpZM4WviXY>
.
|
일단 |
백업하는 이미지를 굳이 다른 리포를 팔 필요 없을 거 같아서 일단 홈페이지 리포 안에 넣어놨어요. 오픈소스화 하면 나중에 참고하기 편하긴 하겠지만 홈페이지 배포할때 두 리포를 각각 받아서 띄우기엔 불편할거 같아요. |
@pbzweihander 그렇지 않아요. 백업용 cron 도커 이미지를 오픈소스한다면 hub.docker.com 에 업로드할 수 있기때문에, 홈페이지 배포할때에 |
그렇네요! docker hub automated build도 붙일 수 있겠군요. 제가 리포를 파서 올려놓겠습니다. 백업 자체는 매우 잘 이루어지는 것을 확인했습니다. 이슈는 닫아야할까요 아니면 제미니 밖으로 백업하는 수단이 완성될 때 까지 열어놓을까요? |
제미니 밖으로 백업하는 수단이 완성될 때 까지 열어주세요 |
이거 안해서 https://upnl.org 의 2019-12-14 ~ 2020-01-29 데이터가 날아갔다 |
제미니 머신 안에 있던 백업들 모두 S3에 올렸습니다 |
upnl/kubernetes#12 에서 작업이 진행중입니다. |
정말 다양한 데이터들이 있는데, 이 모든것들이 하드가 뻑나면 날아갑니다.
그냥 어떻게든 자동화해서 AWS S3나 AWS Glacier 같은곳에 올려버립니다. 저렴합니다.
백업 할 대상
할 일
The text was updated successfully, but these errors were encountered: