호스팅 사용법
호스팅 신청하기
도메인 연결하기
홈페이지 올리기
이메일 설정하기
서버 사용법
FTP사용법
메일사용법
텔넷/리눅스
MySQL사용법
MSSQL사용법
리눅스명령어 모음
시스템사용법
서버세팅
네트워크/보안
L4 매뉴얼
백업/미러링
호스팅용어 모음
프로그램 사용법
알리미사용법
제로보드설치방법
워드프레스설치방법
태터툴즈설치방법
그누보드설치방법
우편번호DB사용법
폼메일사용법
주문서사용법
예전 게시판/방명록
전자지불 서비스


HOME > 호스팅 > 사용안내 > 백업/미러링 > 리눅스 서버 백업
리눅스 서버 백업  윈도우즈 서버 백업과 복원 작업  MSSQL DB 백업 
1) 홈백업 스크립트 사용 방법
- 아래 스크립트 중 수정할 부분을 서버설정에 맞도록 수정한다.(수정해야 할 부분에 밑줄로 표시해 두었음)
- 저장 후 실행권한(chmod 700 server_full_backup.pl)을 준다.
- crontab에 저장 후 원하는 시간에 실행되도록 설정한다.
2) 홈백업 스크립트의 특징
- 각 계정별로 백업 실행(홈 전체를 rsync 실행 시 부하가 발생하기 때문)
- 환경이 다른 시스템에 적용해도 간단하게 수정 가능
- 백업이 완료되면 백업 완료된 시점으로 백업 프로세스 로그 저장
############# Home full backup #############
#!/usr/bin/perl
$date_time = `date +%Y%m%d%H%M`;
chomp($date_time);
$server = `hostname`;
chomp($server);
############## 수정할 부분 ################
$backup_server_ip = "백업서버 아이피 지정";
$backup_server_dir = "백업서버 데이터 저장 디렉터리 지정";
@backup_dir_list = qw(/home);     # 백업받을 디렉터리 지정
@no_backup_dir_list = qw(. .. lost+found log logs);     # 백업받지 않을 디렉터리 지정
###########################################
open(BACKUP_CHECK, "> /tmp/$server.txt");
print BACKUP_CHECK "$date_time\n";
foreach $backup_dir (@backup_dir_list) {
chomp($backup_dir);
if(-d $backup_dir) {
foreach $df (`df -h`) {
chomp($df);
@df_list = split(' ', $df);
if($df_list[5] eq "$backup_dir") {
print BACKUP_CHECK "$backup_dir\t$df_list[2]\n";
}
}
opendir(BACKUP_DIR, "$backup_dir");
while($bak_dir = readdir(BACKUP_DIR)) {
chomp($bak_dir);
$no_backup_check = 0;
foreach $no_backup_dir (@no_backup_dir_list) {
chomp($no_backup_dir);
if($no_backup_dir eq $bak_dir) {
$no_backup_check = 1;
}
}
if($no_backup_check == 0) {
`rsync -zavg --delete $backup_dir/$bak_dir $backup_server_ip\::$backup_server_dir/$server`;
}
}
close BACKUP_DIR;
}
else {
print BACKUP_CHECK "$backup_dir\t디렉터리 없음!\n";
}
}
print BACKUP_CHECK "$date_time\n";
close BACKUP_CHECK;
`rsync -zavg /tmp/$server.txt $backup_server_ip\::$backup_server_dir/`;
unlink("/tmp/$server.txt");
##############################################################
1) DB 및 conf 백업 스크립트 사용 방법
- 아래 스크립트 중 수정할 부분을 서버설정에 맞도록 수정한다
- 저장 후 실행권한(chmod 700 server_conf_backup.pl)을 준다.
- crontab에 저장 후 원하는 시간에 실행되도록 설정한다.
2) DB 및 conf 백업 스크립트의 특징
- 백업된 데이터는 7일 후 자동 삭제됨.
- 환경이 다른 시스템에 적용해도 간단하게 수정 가능.
- 백업이 완료되면 백업 완료된 시점으로 백업 프로세스 로그 저장.
############# Mysql, conf backup ##############
######### 현재 날짜를 구한다. ###########
$date = `date +%Y%m%d`;
chomp($date);
$server = `hostname`;     # 서버명 자동 추출
chomp($server);
$tmp_dir = "임시 저장될 디렉터리 지정";
$mysql_root_pw = "DB 루트 암호";
$mysql_daemon = "/usr/local/mysql/bin";     # mysql 데몬 위치 지정
$mysql_data = &mysql_datadir;     # 함수 이용(MySQL data 디렉터리 추출)
$error_check = 0;
############ 관리자 설정 사항 ###########
$admin_email = "master\@abc.com";     # 관리자 이메일
$backup_server_ip_1st = "1차 백업 아이피 지정";     # 1차 백업
$backup_server_dir_1st = "1차 백업 디렉터리 지정";
$backup_server_ip_2st = "2차 백업 아이피 지정";     # 2차 백업
$backup_server_dir_2st = "2차 백업 디렉터리 지정";
$backup_list = "/usr/local/apache/conf /etc";     # 백업받을 목록 지정
#########################################
open(ERRORMAIL, "> /tmp/conf_backup_error_mail.txt");
print ERRORMAIL "$server 서버 환경 파일 백업에 실패하였습니다.\n\n";
if(-e "/etc/cron/backup_system/server_conf_backup/backup_server_ip.txt") {
open(BACKUPIPFILE, "/etc/cron/backup_system/server_conf_backup/backup_server_ip.txt");
$old_backup = < BACKUPIPFILE >;
chomp($old_backup);
close BACKUPIPFILE;
if($old_backup eq $backup_server_ip_1st) {
$backup_server_ip = $backup_server_ip_2st;
}
else {
$backup_server_ip = $backup_server_ip_1st;
}
}
else {
$backup_server_ip = $backup_server_ip_1st;
}
if($backup_server_ip eq $backup_server_ip_1st) {
$backup_server_dir = $backup_server_dir_1st;
}
elsif($backup_server_ip eq $backup_server_ip_2st) {
$backup_server_dir = $backup_server_dir_2st;
}
if(-d "$tmp_dir") {
;
}
else {
mkdir("$tmp_dir", 0700);
}
`rm -Rf $tmp_dir/mysql`;     # MySQL 백업 받기 전 저장될 디렉터리 초기화
`rm -Rf $tmp_dir/conf`;     # 환경 설정 파일 저장될 디렉터리 초기화
mkdir("$tmp_dir/mysql", 0700);     # MySQL 디렉터리 생성
mkdir("$tmp_dir/conf", 0700);     # 환경설정 디렉터리 생성
if(-d "$mysql_data") {
`tar -zcvpf $tmp_dir/mysql/$server\_mysql_$date\.tgz $mysql_data`;     # MySQL 자료 압축
}
else {
print ERRORMAIL "MySQL 백업에 실패하였습니다.\n압축에 실패하였습니다.\n";
$error_check = 1;
}
}
else {
print ERRORMAIL "MySQL Data 디렉터리를 찾지 못하였습니다.\n";
$error_check = 1;
}
############ 환경 설정 파일 압축하여 백업 서버로 이동 ############
`repquota -a > $tmp_dir/conf/quota.txt`;     # Quota 조사
`tar -zcvpf $tmp_dir/conf/$server\_conf_$date\.tgz $backup_list`;
if(-e "$tmp_dir/conf/$server\_conf_$date\.tgz") {
`rsync -zavg $tmp_dir/conf/$server\_conf_$date\.tgz $backup_server_ip\::$backup_server_dir/server_conf_backup`;
}
else {
print ERRORMAIL "CONF 파일 백업에 실패하였습니다.\n압축에 실패하였습니다.\n";
$error_check = 1;
}
close ERRORMAIL;
open(NEWBACKUPIPFILE, "> /etc/cron/backup_system/server_conf_backup/backup_server_ip.txt");
print NEWBACKUPIPFILE "$backup_server_ip";
close NEWBACKUPIPFILE;
if($error_check == 1) {
`mail -s "[긴급] $server 환경 설정 백업 실패" $admin_email < /tmp/conf_backup_error_mail.txt`;
}
unlink("/tmp/conf_backup_error_mail.txt");
##############################################################################
사이트명 : 바다넷 | 회사명 : (주)아사달 | 대표이사 : 서창녕 | 대표전화 : 070-7510-3007 | 팩스번호 : 02-2026-2008
사업자등록번호 : 206-81-24351 | 법인등록번호 : 110111-1940504 | 통신판매업신고 : 제18-890호 | 벤처확인번호 : 051134532200563
(우편번호 : 153-803) 서울특별시 금천구 가산동 371-28번지 우림라이온스밸리 A동 8층 (주)아사달
Copyright ⓒ badanet.co.kr All rights reserved.

페이지 맨 위로 이동하기