램섬웨어가 인터넷나야나를 강타한 후 저도 보안과 백업에 대해서 많은 관심을 가지고 보완하려고 노력하고 있습니다.
이러한 보안 및 백업을 보완하기위한 작으르 진행했고 이 과정을 몇번의 포스팅을 통해서 공유했었습니다.
랜섬웨어 대응, 매일 매일 자동으로 드롭박스(Dropbox)로 백업 받는 방법
서버에서 자동 실행을 가능케 해주는 crontab(크론탭) 설정 방법
랜섬웨어 대응, 서버 및 워드프레스 필수 보안 설정 15가지
이렇게 어느 정도 안전한(세상에 안전한 것을 없지만요. 심리적으로 안전하다고 믿고 싶습니다. 항상 두려움에 떨고 싶지는 않아서요) 시스템을 구축했다고 행각했는데요.. 물론 개인이 운영하는 취미용 사이트라는 관점에서 그렇습니다. 상업용 또는 기업용이라면 다른 평가를 내려야 겠지요.
1. 백업용 script
저는 백업을 2가지로 나누어 작동하도록 했습니다.
하나는 데이타베이스를 백업받아 드롭박스(Dropbox)로 백업받도록 했으며,
또하나는 이미지 등 데이타를 백업받도록 했습니다. 솔직히 데이타 백업은 3GB가 넘기 때문에 매일 이런 데이타를 백업 받는 것은 무리라고 생각되었고 이런 백업도 트래픽에 반영되므로 전체 백업을 할 수는 없었습니다. 그래서 가장 최근 달에 올라간 데이타를 백업 받고자 하였습니다.
1.1 db 백업 용 script
랜섬웨어 대응, 매일 매일 자동으로 드롭박스(Dropbox)로 백업 받는 방법
에서도 이야기했듯이 데이타베이스를 백업받기 위해서 아래와 같은 스크립트를 만들었고, 이를 크론탭에 등록했습니다.
크론탭 등록 방법은 서버에서 자동 실행을 가능케 해주는 crontab(크론탭) 설정 방법
를 참고해 주시기 바랍니다.
#! /bin/bash
mysqldump -u아이디 -p비밀번호 데이타베이스이름 > wpbackup.sql(저장할이름을 취향에 따라 정함)
tar -zcvf wpbackup.tgz wpbackup.sql* # 단순 sql 파일은 너무 크므로 압축을 해준다. wpbackup.tgz은 원하는 파일 이름으로 변경할 수 있다.
rm *.sql* # 압축 파일이 있으므로 *.sql 파일은 삭제한다.
# Dropbox-Uploader로 원하는 파일을 dropbox로 올린다. 구분을 위해 파일 이름에 시간을 표시 했다.
/usr/bin/Dropbox-Uploader/dropbox_uploader.sh upload wpbackup.tgz /myDB/"wpbackup$(date +%y%m%d%H%M).tgz"
1.2. 데이타용 백업 script
아래는 워드프레스 2017년 6월 데이타를 백업받는 script입니다.
#!/bin/bash
tar -czpf databackup.tgz /home/happist/wp-content/uploads/2017/06 1>/dev/null 2>/dev/null
/usr/bin/Dropbox-Uploader/dropbox_uploader.sh upload databackup.tgz /myDB/"databackup$(date +%y%m%d%H%M).tgz"
2. 백업 시 에러 발생 – out of memory
처음 며칠은 아무 문제없이 잘 작동했습니다.
그런데 어느 순간부터 데이타 백업이 안되더군요.
뭐가 문제일까 script를 실행해보니 아래와 같은 에러가 뜨네요.
Uploading "/root/databackup.tgz" to "/myDB/databackup1706192227.tgz"... curl: option --data-binary: out of memory curl: try 'curl --help' or 'curl --manual' for more information
out of memory라… 인터넷을 찾아 보았는데 특별히 도움을 받을 수 없었습니다. 다만 메모리값을 늘려라는 이야기가 있더군요.
upload to dropbox failed, error: “curl: option —data-binary: out of memory” #363
라
실제로 백업받은 파일들을 보니 문제가 없을 시는 110MB정도 되는데 어느날 140MB이상으로 용량이 늘어났더군요.
그래서 밑져야 본자이다라는 생각으로 dropbox_uploader.sh 내용을 살펴보았습니다. 거기에 CHUNK_SIZE를 설정하는 항목이 있네요.
#Default chunk size in Mb for the upload process
#It is recommended to increase this value only if you have enough free space on your /tmp partition
#Lower values may increase the number of http requests
CHUNK_SIZE=50
CHUNK_SIZE는 데이타 size를 의미하므로 이 값을 50(MB)에서 5000(5GB)로 변경헸습니다. 디스크 저장 용량이 충분하다면 값을 크게 설장할 수 있다고 합니다.
▽ Dropbox로 자동 백업 하기 중 out of memory error 발생,
CHUNK_FILE=5000정도로 수정
이렇게 조치 후 script를 실행 시 문제 없이 작동합니다.
3. 결론
해법이 넘 간단해서..넘 싱거울 수 있겠습니다. 그런데 대부분의 문제가 알고보면 너무 쉬운 것들입니다. 그걸 몰라서 엄청 헤메고 삽징하고 합니다.
dropbox_uploader를 이용해 드롭박스(Dropbox)에 백업을 매일 받을 시 out of memory 에러가 뜬다면 dropbox_uploader.sh 파일에서 CHUNK_FILE값을 키워 문재를 해결 할 수 있습니다.
새롭게 뉴스레터를 시작했습니다.
1️⃣ 주식 등 투자 정보 : 기업 분석, IB 투자의견 등 투자 관련 내용
..... 테슬라 실적 및 IB들의의 테슬라 투자의견
2️⃣ 사례 및 트렌드 : 사례연구와 트렌드 관련 괜찮은 내용
.....유튜브와 경쟁대신 구독 전환한 비디오 플래폼 비메오 사례