More actions
imported>neocoin No edit summary |
(Repair MoniWiki formatting after migration) |
||
| (14 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
2008-11-02 부터 진행하는 [[ZeroPage]] 서버 데이터 원격지 백업 스크립트 관련 내용. | |||
---- | |||
=== Pre Process === | === Pre Process === | ||
사전 공부 | 사전 공부 | ||
| Line 5: | Line 7: | ||
** (./) http://www.pixelbeat.org/docs/screen/ | ** (./) http://www.pixelbeat.org/docs/screen/ | ||
** (./) sudo 권한 설정 | ** (./) sudo 권한 설정 | ||
** | |||
/etc/group | |||
에 admin 그룹에 원하는 사용자 추가, /etc/sudoers에서 사용자 제거 | |||
# 언어 선택 | # 언어 선택 | ||
| Line 11: | Line 17: | ||
** http://docs.python.org/library/ftplib.html | ** http://docs.python.org/library/ftplib.html | ||
** (./) 작은 파일 하나를 zeropage@neocoin.net 으로 올린다. | ** (./) 작은 파일 하나를 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') | |||
# 백업 스크립트 작성 | # 백업 스크립트 작성 | ||
** backup target 설정 | ** backup target 설정 | ||
** mysql | ** mysql | ||
/usr/bin/mysqldump -u <username> -p <password> <databasename> | gzip > /path/to/backup/db/zeropage_`date +%y_%m_%d`.gz | /usr/bin/mysqldump -u <username> -p <password> <databasename> | gzip > /path/to/backup/db/zeropage_`date +%y_%m_%d`.gz | ||
** 복사 | ** (./) 압축 ~ 위 스크립트에서 한꺼번에 수행 | ||
* | ** 임시 저장소에 복사 ~ | ||
** | * 서버 키를 쓰지 않은 최소의 암호화 | ||
{{{ | |||
gpg --passphrase #{PASSWORD} --no-use-agent -c file | |||
** 복호화 | |||
gpg file | |||
# 전송 테스트 | # 전송 테스트 | ||
# 백업 정책 결정 | # 백업 정책 결정 | ||
** 주기, 시각 | ** 주기, 시각 | ||
# cron test | # cron test | ||
** http://en.wikipedia.org/wiki/Cron 예제 | |||
11 5 * * * /root/backupToNeocoin.py >> /var/log/backupToNeocoin.log 2>&1 | 11 5 * * * /root/backupToNeocoin.py >> /var/log/backupToNeocoin.log 2>&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 === | === Post Process === | ||
# 모니터링 | # 모니터링 | ||
| Line 32: | Line 63: | ||
# | # | ||
---- | ---- | ||
분류 | |||
Latest revision as of 00:34, 29 March 2026
2008-11-02 부터 진행하는 ZeroPage 서버 데이터 원격지 백업 스크립트 관련 내용.
Pre Process
사전 공부
Process
- screen 공유를 위한 서버 세팅
- (./) http://www.pixelbeat.org/docs/screen/
- (./) sudo 권한 설정
/etc/group
에 admin 그룹에 원하는 사용자 추가, /etc/sudoers에서 사용자 제거
- 언어 선택
- (./) 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')
- 백업 스크립트 작성
- backup target 설정
- mysql
/usr/bin/mysqldump -u <username> -p <password> <databasename> | gzip > /path/to/backup/db/zeropage_`date +%y_%m_%d`.gz
- (./) 압축 ~ 위 스크립트에서 한꺼번에 수행
- 임시 저장소에 복사 ~
* 서버 키를 쓰지 않은 최소의 암호화
{{{
gpg --passphrase #{PASSWORD} --no-use-agent -c file
- 복호화
gpg file
- 전송 테스트
- 백업 정책 결정
- 주기, 시각
- cron test
11 5 * * * /root/backupToNeocoin.py >> /var/log/backupToNeocoin.log 2>&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
- 모니터링
앞으로 할일
분류