Difference between r1.7 and the current
@@ -1,24 +1,71 @@
2008-11-02 부터 진행하는 ZeroPage 서버 데이터 원격지 백업 스크립트 관련 내용.
----
=== Pre Process ===사전 공부
=== Process ===
1. screen 공유를 위한 서버 세팅
* http://www.pixelbeat.org/docs/screen/
* (./) http://www.pixelbeat.org/docs/screen/
* (./) sudo 권한 설정
* {{{/etc/group}}} 에 admin 그룹에 원하는 사용자 추가, {{{/etc/sudoers}}}에서 사용자 제거
* Python
* (./) Python
1. 해당 언어로 ftp접속 * http://www.python.org/doc/2.5.2/lib/module-ftplib.html
* http://docs.python.org/library/ftplib.html
* (./) 작은 파일 하나를 zeropage@neocoin.net 으로 올린다.
{{{#!python
#!/usr/bin/env python
def uploadFile(filename):
import ftplib
s = ftplib.FTP('servername')
s.login('server',password) # Connect
f = open(filename,'rb') # file to send
s.storbinary('STOR %s'%filename, f) # Send the file
f.close() # Close file and FTP
s.quit()
uploadFile('index.html')
}}}
1. 백업 스크립트 작성* backup target 설정
* 압축
* 암호화
* mysql
{{{
/usr/bin/mysqldump -u <username> -p <password> <databasename> | gzip > /path/to/backup/db/zeropage_`date +%y_%m_%d`.gz
}}}
* (./) 압축 ~ 위 스크립트에서 한꺼번에 수행
* 임시 저장소에 복사 ~ {{{/var/backup}} 정도 위치
* 서버 키를 쓰지 않은 최소의 암호화
{{{
gpg --passphrase #{PASSWORD} --no-use-agent -c file
}}}
* 복호화
{{{
gpg file
}}}
1. 전송 테스트1. 백업 정책 결정
* 주기, 시각
1. cron test
* http://en.wikipedia.org/wiki/Cron 예제
{{{
11 5 * * * /root/backupToNeocoin.py >> /var/log/backupToNeocoin.log 2>&1
}}}
1. 적용=== Problem ===
* 문제 ~ DNS Server 가 죽었음 (or 잘못 설정되어 있음 165.194.35.222 서버 확인 필요) 그래서 주소 기반으로 외부로 ping을 날릴수 없다.
* 해결 ~ {{{/etc/resolv.conf}}} 에 무료 dns 서버 등록 후 교내 서버는 가장 마지막 순위로 변경 http://theos.in/windows-xp/free-fast-public-dns-server-list/
* 문제 ~ sudo 가 안됨
* 해결 ~ admin 그룹에 원하는 사용자 추가
=== Post Process ===1. 모니터링
=== 앞으로 할일 ===
1.
----[분류]
2008-11-02 부터 진행하는 ZeroPage 서버 데이터 원격지 백업 스크립트 관련 내용.
Pre Process ¶
사전 공부
Process ¶
- screen 공유를 위한 서버 세팅
- http://www.pixelbeat.org/docs/screen/
- sudo 권한 설정
/etc/group
에 admin 그룹에 원하는 사용자 추가,/etc/sudoers
에서 사용자 제거
- http://www.pixelbeat.org/docs/screen/
- 언어 선택
- Python
- Python
- 해당 언어로 ftp접속
- http://docs.python.org/library/ftplib.html
- 작은 파일 하나를 zeropage@neocoin.net 으로 올린다.
#!/usr/bin/env python def uploadFile(filename): import ftplib s = ftplib.FTP('servername') s.login('server',password) # Connect f = open(filename,'rb') # file to send s.storbinary('STOR %s'%filename, f) # Send the file f.close() # Close file and FTP s.quit() uploadFile('index.html')
- http://docs.python.org/library/ftplib.html
- 백업 스크립트 작성
- backup target 설정
- mysql
/usr/bin/mysqldump -u <username> -p <password> <databasename> | gzip > /path/to/backup/db/zeropage_`date +%y_%m_%d`.gz
- mysql
- 압축 ~ 위 스크립트에서 한꺼번에 수행
- 임시 저장소에 복사 ~
{{{/var/backup}} 정도 위치 * 서버 키를 쓰지 않은 최소의 암호화 {{{ gpg --passphrase #{PASSWORD} --no-use-agent -c file }}} * 복호화 {{{ gpg file }}} 1. 전송 테스트 1. 백업 정책 결정 * 주기, 시각 1. cron test * http://en.wikipedia.org/wiki/Cron 예제 {{{ 11 5 * * * /root/backupToNeocoin.py >> /var/log/backupToNeocoin.log 2>&1 }}} 1. 적용 === Problem === * 문제 ~ DNS Server 가 죽었음 (or 잘못 설정되어 있음 165.194.35.222 서버 확인 필요) 그래서 주소 기반으로 외부로 ping을 날릴수 없다. * 해결 ~ {{{/etc/resolv.conf}}} 에 무료 dns 서버 등록 후 교내 서버는 가장 마지막 순위로 변경 http://theos.in/windows-xp/free-fast-public-dns-server-list/ * 문제 ~ sudo 가 안됨 * 해결 ~ admin 그룹에 원하는 사용자 추가 === Post Process === 1. 모니터링 === 앞으로 할일 === 1. ---- [분류]
- backup target 설정