[SULINUX 강좌#16] 유용한 서버운영 명령어툴 SSU(서버유틸리티) 활용하기
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,568 조회
- 0 추천
- 목록
본문
[SULINUX 강좌#16] 유용한 서버운영 명령어툴 SSU(서버유틸리티) 활용하기
SSU (서버 유틸리티)
SSU(Superuser Server Utility)는 에스유소프트에서 개발한 리눅스 서버관리 솔루션입니다. 리눅스 서버 관리하기 위해 필요했던 많은 복잡하고 어려운 명령어들을 사용하지 않고도 쉽고 빠르게 서버를 설정할 수 있고, 관리할 수 있게 도와주는 프로그램입니다. SSU는 크게 2가지로 구분됩니다. 하나는 서버 설정 및 관리도구 이며, 또 하나는 서버 모니터링 도구입니다. SULinux에는 서버 설정 및 관리도구를 제공하고 서버 모니터링 기능은 다음에 소개될 LSCP에서 담당하게 됩니다.
SSU의 서버설정 및 관리도구
시스템 관리에서 꼭 필요한 백업 및 기타 설정을 아주 쉽게 도와주는 프로그램 및 서버 트래픽을 실시간으로 검색 할 수 있는 프로그램을 제공합니다.
1. su_backup (자동백업)
2. su_traffic (서버 트래픽 점검)
3. su_domain (네임서버설정)
4. su_dbuser (DB 사용자)
SSU 서버 관리도구
SSU는 힘들고, 틀리기 쉬우며, 많은 시간이 필요한 서버 설정작업을 아주 쉽게 할 수 있는 편리한 유틸리티들을 제공합니다. 아래 기능들을 제공합니다.
1. su_domain (네임서버설정) : 네임서버의 도메인을 관리 할 수 있습니다.
2. su_dbuser (DB 사용자) : DB사용자 및 DB를 관리 할 수 있습니다.
3. su_mailuser (Mail 사용자 설정) : Mail 사용자를 관리 할 수 있습니다.
4. su_usersetup (사용자 통합 자동 설정) : 사용자생성, 가상호스트 생성, 메일 설정, DB 및 DB사용자를 쉽고 빠르게 생성 할 수 있습니다.
5. su_traffic (서버 트래픽 점검) : 명령어로 입/출력되는 트래픽을 조사할 수 있습니다.
(1) DNS 도메인 관리
DNS서버에 도메인을 추가하려면, named.conf 파일에서 형식에 맞게 만들어 주어야 하며, zone 파일 또한 형식에 맞게 만들어 주어야 합니다. 도메인을 추가할 일이 많으면 지속적인 반복작업을 해야 하며, 도메인을 추가할 일이 적으면 도메인을 설정하기 위해 서적을 뒤지거나, 인터넷을 뒤져 설정할 것입니다. SSU의 su_domain프로그램을 이용하면 아주 쉽고 빠르게 도메인을 생성할 수 있습니다.
참 고 |
|
BIND CHROOT
요즘 나오는 배포판의 DNS서버인 Bind는 보안을 위하여 chroot를 적용하여 배포합니다. chroot는 bind가 실행되는 동안은 /var/named/chroot 디렉토를 / 디렉토리로 인식하고 작동하게 하는 기능입니다. SSU의 su_domain은 chroot 적용여부와 상관없이 작동하며, 만약 적용되어 있다면, 자동으로 zone파일을 /var/named/chroot/var/named/ 디렉토리에 생성하고, /var/named/ 디렉토리에 심볼릭링크를 생성합니다. |
① DNS 도메인 설정
DNS서버 도메인 관리 프로그램을 처음 실행하면 다음과 같은 경고 메시지가 나타납니다.
[root@sulinux sulinux]# su_domain
대표 네임서버 도메인을 설정 하세요 !!
설정방법 : /root/bin/conf/su_util.cfg 파일에서 수정 |
DNS 도메인 설정 중 zone 파일에 DNS도메인 및 관리자 항목이 들어가게 됩니다. 이 DNS도메인 및 관리자 정보를 입력하기 위해서는 다음 설정파일을 편집합니다.
/root/bin/conf/su_util.cfg 설정파일을 편집기로 열어 수정 합니다. 아래 부분은 약 30번째 줄부터 보여주고 있습니다.
################### dns(bind 9) 관련 셋팅 ###################### # dns 서버 도메인 # 예) dns_domain = ns.superuser.co.kr dns_domain = ns.YOUR-DNS-DOMAIN
## dns 서버 관리자 메일주소 @ ==> . 으로 치환 #예) dns_admin_mail = root.superuser.co.kr dns_admin_mail = root.YOUR-DNS-DOMAIN |
위 설정파일에서 “YOUR-DNS-DOMAIN”부분을 DNS도메인으로 변경하시기 바랍니다.
② DNS 도메인 생성
su_domain명령어로 쉽게 named.conf 파일설정 및 zone파일을 생성할 수 있습니다.
[root@sulinux conf]# su_domain --add 도메인 아이피 |
위 명령어에서 도메인은 www를 제거한 도메인입니다. su_domain은 자동으로 www에 대한 설정을 zone파일에 하게 됩니다.
[root@sulinux sulinux]# su_domain --add sulinux.net 192.168.0.1 도메인 추가 name 서버 RELOAD 중.... named를 다시 읽어오는 중: [ OK ] |
위와 같이 입력하면 sulinux.net에 대한 도메인 설정이, named.conf 파일에 생성되며, /var/named/sulinux.net.zone 파일이 생성되게 됩니다. 다음과 같이 설정된 내역을 확인 하였습니다.
[root@sulinux sulinux]# cat /etc/named.conf | grep sulinux zone "sulinux.net" IN {type master; file "sulinux.net.zone"; allow-update { none; }; }; [root@sulinux sulinux]# cat /var/named/sulinux.net.zone $TTL 43200 @ IN SOA ns.sulinux.net. root.sulinux.net. ( 2014050417 ; 시리얼값 (년월일시간)으로 대부분 셋팅 3H ; 2차 네임서버가 1차 네임서버에 접속하는 시간 15M ; 접속 실패시 다시 시도할 시간 간격 1W ; 1차 네임서버에서 데이터가 없다면 1주 이후에 지워진다. 1D ) ; 위에서 설정한 TTL 값과 같은 의미 ; IN NS ns.sulinux.net. ; 도메인을 소유한 DNS의 도메인 IN MX 10 mail.sulinux.net. ; 메일을 보낼 도메인 또는 주소 IN TXT "v=spf1 ip4:192.168.0.1 ~all" IN A 192.168.0.1 ; 도메인이 찾아갈 IP 주소 www IN A 192.168.0.1 ; www.도메인이 찾아갈 IP주소 mail IN A 192.168.0.1 ; 메일서버 아이피 * IN A 192.168.0.1 ; 모든 서브 도메인이 찾아갈 서버 ip 주소 |
위 내역은 su_domain에 의해서 자동 생성된 설정 내용입니다. zone 파일에 대해 각 항목은 알아보기 쉽게 한글로 주석처리 되어 생성됩니다.
③ DNS 도메인 내용 수정
su_domain명령어는 쉽게 특정 도메인의 zone파일을 수정할 수 있게 도와줍니다.
[root@sulinux conf]# su_domain --mod 도메인 |
위와 같이 입력하면, 도메인에 해당되는 zone파일을 열어 vi편집기로 열어 주게 됩니다. su_domain의 zone파일 수정기능을 사용하기 위해서는 vi 명령어 사용법을 먼저 학습하시기 바랍니다. 해당 내용을 수정하면 자동으로 DNS서버를 재 시작됩니다.
④ DNS 도메인 삭제
su_domain명령어를 이용하여 설정한 도메인을 쉽게 삭제 할 수 있습니다.
[root@sulinux conf]# su_domain --del 도메인 |
위와 같이 입력하면, 도메인에 해당되는 zone파일을 삭제합니다. 그리고, named.conf 파일을 열어 해당 도메인의 설정이 위치한 곳으로 커서를 자동으로 이동시킵니다. 한번 더 확인하고 "dd"를 눌러 해당 라인을 삭제합니다. 그리고는 “<ESC>"키를 누르고 ”:wq"를 눌러 설정파일을 저장하고, vi 편집기를 빠져 나옵니다. 완벽한 삭제를 위해 자동으로 DNS서버가 재 시작됩니다.
(2) MySQL 사용자 관리 (su_dbuser)
mysql의 사용자 설정은 서버에서 사용자 설정하는 것 보다 까다롭습니다. 입력해야 할 것들이 많고 많은 시간을 필요로 합니다. 이 번거로운 사용자 설정을 명령어 한 줄로 할 수 있는 명령어 su_dbuser를 SULinux는 제공합니다.
(mysql 3.23.* , mysql 4.0.*, mysql 4.1.*, MySQL 5.*.* 모두 사용가능합니다.)
① DB 사용자 및 DB 데이터베이스 생성
su_dbuser명령어로 쉽게 DB를 생성하고, DB 사용자를 생성 할 수 있습니다.
[root@sulinux conf]# su_dbuser --add DB명 DB사용자명 DB사용자패스워드 |
위 명령어에서 DB명, DB사용자명, DB사용자의 비밀번호를 입력합니다. 실행하면, DB생성, user테이블에 사용자생성, db 테이블에 생성된 DB를 접근할 수 있게 생성된 사용자에게 권한을 부여합니다.
[root@sulinux conf]# su_dbuser --add testdb testdb 12345 MYSQL 관리자(root) 패스워드입력 : mysql_Root비밀번호입력 DB 사용자 추가 DB에 사용자 추가 완료 |
위와 같이 입력하면 testdb 가 생성되며, testdb 사용자가 생성되고, testdb 사용자의 비밀번호는 12345가 됩니다. 그리고 testdb사용자로 로그인 하면 testdb를 사용할 수 있습니다.
다음은 설정된 값을 DB에 접속하여 쿼리로 확인한 결과입니다.
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | test | | testdb | +--------------------+ 4 rows in set (0.00 sec) mysql> select * from user where user='testdb' \G *************************** 1. row *************************** Host: localhost User: testdb Password: *00A51F3F48415C7D4E8908980D443C29C69B60C9 Select_priv: N Insert_priv: N Update_priv: N Delete_priv: N Create_priv: N Drop_priv: N Reload_priv: N Shutdown_priv: N Process_priv: N File_priv: N Grant_priv: N References_priv: N Index_priv: N Alter_priv: N Show_db_priv: N Super_priv: N Create_tmp_table_priv: N Lock_tables_priv: N Execute_priv: N Repl_slave_priv: N Repl_client_priv: N Create_view_priv: N Show_view_priv: N Create_routine_priv: N Alter_routine_priv: N Create_user_priv: N ssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0 max_updates: 0 max_connections: 0 max_user_connections: 0 1 row in set (0.01 sec) mysql> select * from db where user='testdb' \G *************************** 1. row *************************** Host: localhost Db: testdb User: testdb Select_priv: Y Insert_priv: Y Update_priv: Y Delete_priv: Y Create_priv: Y Drop_priv: Y Grant_priv: N References_priv: Y Index_priv: Y Alter_priv: Y Create_tmp_table_priv: N Lock_tables_priv: N Create_view_priv: N Show_view_priv: N Create_routine_priv: N Alter_routine_priv: N Execute_priv: N |
② DB 사용자 비밀번호 변경
su_dbuser명령어로 쉽게 DB 사용자의 비밀번호를 변경할 수 있습니다.
[root@sulinux conf]# su_dbuser --mod 사용자명 변경할패스워드 |
위 명령어에서 DB사용자명, DB사용자의 비밀번호를 입력합니다. DB사용자 비밀번호를 입력한 비밀번호로 변경됩니다.
[root@sulinux ~]# su_dbuser --mod testdb qwer MYSQL 관리자(root) 패스워드입력 : DBroot비밀번호 입력 DB 사용자 비밀번호 변경 DB에 사용자 비밀번호 변경 완료 |
위와 같이 입력하면 testdb 사용자의 비밀번호가 qwer으로 변경됩니다.
③ DB 사용자 및 DB 삭제
su_dbuser명령어로 쉽게 DB 및 DB사용자를 삭제할 수 있습니다.
[root@sulinux conf]# su_dbuser --del DB명 DB사용자명 |
위 명령어에서 DB 및 DB 사용자를 삭제합니다. DB사용자명, DB사용자의 비밀번호를 입력합니다. DB사용자 비밀번호가 입력한 비밀번호로 변경됩니다.
[root@sulinux ~]# su_dbuser --del testdb testdb MYSQL 관리자(root) 패스워드입력 : DBroot비밀번호 입력 DB 사용자 삭제 DB에 사용자 및 DB 삭제 완료 |
위와 같이 입력하면 testdb 사용자 및 testdb 를 삭제합니다.
(3) 가상호스트 생성
요즘은 서버 한 대에 하나의 도메인만을 셋팅해서 사용하는 분들은 거의 없다고 생각합니다. 아파치의 가상호스트 기능을 사용해서 많은 도메인을 하나의 서버에서 사용할 것입니다. 도메인이 추가 삭제 될 때마다 httpd.conf 파일을 건드려야 하고, 실수가 있을 수도 있습니다. 간단하게 이 설정을 해주는 프로그램이 있습니다. su_vhost는 ssu 패키지의 일부입니다. SULinux는 기본적으로 ssu패키지를 지원합니다. 다음과 같은 방법으로 원하는 작업을 쉽고 편하게 할 수 있습니다.
su_vhost는 Apache 1.3.X , Apache 2.0.X, Apache 2.2.X 모든 버전을 지원합니다. Apache 1.3.X와 Apache 2.0.X는 httpd.conf 파일에 가상 호스트 값을 설정하고, Apache 2.2.X는 extra/httpd-vhost.conf 파일에 가상호스트 설정을 추가하게 됩니다.
su_vhost는 설정후 자동으로 아파치 웹서버를 재시작하게 됩니다.
① 가상 도메인 추가
su_vhost --add 가상WebRoot 도메인 |
예) sulinux.net 도메인 추가
[root@sulinux conf]# su_vhost --add /home/sulinux/www sulinux.net 가상 도메인 추가 apache 재 시작 중..... |
이렇게 하면 /hom/sulinux/www를 가상WebRoot로 하고, sulinux.net 및 www.sulinux.net 에 대한 가상호스트 설정이 완료됩니다.
설정된 내역은 다음과 같이 확인 할 수 있습니다.
<VirtualHost *:80> DocumentRoot /home/sulinux/www ServerName www.sulinux.net ServerAlias sulinux.net # ErrorLog /home/sulinux/www/web_log/error_log # CustomLog /home/sulinux/www/web_log/access_log common </VirtualHost> |
위 설정과 같이 www.sulinux.net까지 설정된 것을 볼 수 있습니다. 그리고, ErrorLog 및 CustomLog를 사용자가 쉽게 설정할 수 있도록 추천 설정이 나오고 “#”으로 주석처리 되어 있습니다.
② 가상 호스트 도메인 정보 변경
su_vhost --mod 도메인 |
가상 호스트 도메인 정보 변경은 단순히 설정파일을 열어 설정파일을 편집 할 수 있게 합니다.
③ 가상 도메인 삭제
su_vhost --del 도메인 |
입력한 도메인과 관련된 가상 호스트 설정을 삭제 할 수 있게 도와줍니다.
예) sulinux.net 도메인 삭제
[root@sulinux conf]# su_vhost --del sulinux.net apache 재 시작 중..... |
위와 같이 입력하면, httpd.conf 파일을 열어서 관련 도메인이 위치한 곳을 찾아 주며, dd 라는 키로 지우고, ESC ,:wq로 저장하고 나오면 끝납니다.(vi 편집기 필수기능은 숙지하시기 바랍니다.)
④ 도메인 포워딩
su_vhost --redirect 대상도메인 도메인들.... |
아파치 웹서버의 Redirect 기능을 이용하여 도메인을 포워딩 할 수 있습니다. 여러 개의 도메인을 다른 도메인으로 포워딩 할 수 있는 강력한 기능을 제공합니다.
예) sulinux관련 도메인 sulinux.net 도메인 으로 포워딩 예제
[root@sulinux conf]# su_vhost --redirect www.sulinux.net www.sulinux.kr sulinux.kr sulinux.co.kr www.sulinux.co.kr sulinux.com www.sulinux.com 도메인 포워딩 apache 재 시작 중..... |
위와 같은 명령을 내리면, www.sulinux.kr, sulinux.kr, sulinux.co.kr, www.sulinux.co.kr, sulinux.com, www.sulinux.com, 모두 www.sulinux.net 도메인으로 포워딩 됩니다.
설정된 내역은 다음과 같이 확인 할 수 있습니다.
<VirtualHost *:80> ServerName www.sulinux.com Redirect / http://www.sulinux.net ServerAlias sulinux.com ServerAlias www.sulinux.kr ServerAlias sulinux.kr ServerAlias sulinux.co.kr ServerAlias www.sulinux.co.k </VirtualHost> |
위 설정은 ServerName으로 설정된 도메인과 ServerAlias로 설정된 도메인 모두 Redirect 지시자를 이용해 www.sulinux.net으로 포워딩 하는 설정입니다.
(4) 트래픽 측정 프로그램
SULinux는 TUI환경에서 실시간으로 트래픽을 측정 할 수 있는 프로그램(su_traffic)을 제공합니다. 대부분은 트래픽을 MRTG등으로 확인하지만, MRTG는 5분단위이며 시스템의 트래픽을 실시간으로 알 수 없습니다. su_traffic는 proc파일 시스템을 조사하여 실시간으로 트래픽을 보여줍니다.
트래픽 프로그램 사용법은 아래와 같습니다.
su_traffic 이더넷디바이스번호 <text|html> [시간간격] |
* 시간간격은 초단위로 기술 하며 생략할 경우 기본 3초로 조사합니다. 이더넷디바이스번호는 이더넷 장치의 이름 eth0, eth1 등으로 기술합니다.
다음 예제는 TUI환경에서 트래픽을 조사한 결과입니다.
[root@sulinux sulinux]# su_traffic eth0 text 1 날짜 입력 출력 09-05-04 0:13 : 169 KBit/Sec 6628 KBit/Sec 09-05-04 0:13 : 162 KBit/Sec 5713 KBit/Sec 09-05-04 0:13 : 142 KBit/Sec 6027 KBit/Sec 09-05-04 0:13 : 135 KBit/Sec 5549 KBit/Sec 09-05-04 0:13 : 123 KBit/Sec 5503 KBit/Sec |
위 내역은 SULinux에 SSH로 접속하여 트래픽을 보는 명령어를 실행시킨 결과입니다. 이더넷 장치는 eth0이며, 트래픽을 볼 모드는 text이며, 조사 간격은 1초 단위입니다.
다음은 TUI 환경에서 명령을 내리고, 웹서버에서 파일을 불러 확인해 보았습니다.
[root@sulinux sulinux]# su_traffic eth0 html 1 > /usr/local/apache/htdocs/traffic.html |
SSU를 이용한 시스템 자동백업 설정
리눅스 시스템에서 사용하는 저장장치는 대부분 HDD(하드디스크)를 사용합니다. 이 HDD는 소모품으로 언제든지 물리적, 논리적 손상이 있어 모든 데이터를 잃을 수 있습니다. 이러한 불안요소를 제거하기 위하여 RAID구성으로 이중화 시키고, 다른 디스크 및 원격지 백업서버에 백업을 합니다. 이 뿐만 아니라, 사용자의 실수로 데이터를 지울 수 도 있어 이를 대비한 백업은 아주 중요합니다. 최악의 경우 가장 힘이 되는 것은 백업 데이터이며, 백업은 아무리 강조해도 더하지 않습니다. SSU는 복잡한 백업을 아주 쉽게 할 수 있는 프로그램(su_backup)을 제공합니다.
(1) 백업프로그램 사용법
su_backup --local |
* 위 프로그램을 실행하면 자동으로 백업을 수행 합니다. 백업 내용은 다음과 같이 확인 할 수 있습니다. ( 데이터양에 따라 다소 시간이 소요될 수 있습니다. )
[root@sulinux ~]# ll /backup/ 합계 20 drwxr-xr-x 3 root root 4096 5월 4 18:32 data drwx------ 2 root root 16384 4월 9 19:03 lost+found lrwxrwxrwx 1 root root 21 5월 4 18:33 today -> /backup/data/09-05-04 [root@sulinux ~]# ll /backup/today/ 합계 144632 -rw-r--r-- 1 root root 9982817 5월 4 18:33 etc.tar.gz -rw-r--r-- 1 root root 120 5월 4 18:32 home.lost+found.tar.gz -rw-r--r-- 1 root root 18059863 5월 4 18:32 home.sulinux.tar.gz -rw-r--r-- 1 root root 525 5월 4 18:32 home.sulinux.tar.gz -rwx------ 1 root root 94 5월 4 18:32 restore.home.sh -rw-r--r-- 1 root root 79363596 5월 4 18:32 root.tar.gz -rw-r--r-- 1 root root 39772131 5월 4 18:32 usr.local.tar.gz -rw-r--r-- 1 root root 724141 5월 4 18:33 var.named.tar.gz -rw-r--r-- 1 root root 4593 5월 4 18:33 var.spool.mail.tar.gz |
위와 같이 백업된 결과를 확인 할 수 있습니다. 기본 백업 경로는 "/backup" 디렉토리입니다. 그 아래 data 디렉토리가 생기고 그 아래 날짜(/backup/data/09-05-04)가 생겼습니다. 오늘 백업한 디렉토리를 /backup/today 로 심볼릭 링크를 걸고 있습니다.
오늘 날짜 백업 디렉토리(/backup/today)를 확인 하면, 여러 가지 데이터가 압축되어 백업된 것을 확인 할 수 있습니다.
(2) 백업 대상 및 백업 파일
백업대상 디렉토리 | 백 업 파 일 | 설 명 |
/etc | etc.tar.gz | 계정정보 및 환경설정 파일 |
/usr/local/ | usr.local.tar.gz | Apache, DB 등 주요 프로그램 |
/home/* | home.*.tar.gz | 사용자 데이터 ( home.사용자명.ta.rgz으로 각자 압축백업) |
/root | root.tar.gz | root 사용자 데이터 |
/var/named/ | var.named.tar.gz | DNS 설정 데이터 (zone파일 등) |
/var/spool/mail | var.spool.mail.tar.gz | 사용자 메일 데이터 |
위와 같이 리눅스 시스템의 중요한 데이터를 백업하게 됩니다. 백업 데이터는 기본 2일 보관 하게 설정되어 있습니다.
(3) 매일 자동 백업 실행 설정
SSU의 자동백업 프로그램을 사용하여 매일 백업을 수행 하려면 cron에 의해 주기적으로 자동백업프로그램(su_backup)을 실행시켜야 합니다. 앞에서 설정했던, /etc/cron.d/ssu파일을 열어 3번째 줄의 주석(#)을 제거합니다. 아래 설정 중 3번째 줄은 매일 새벽 3시에 자동으로 백업프로그램(su_backup)을 작동 시킵니다.
*/5 * * * * root /root/bin/sbin/system_test -q >& /dev/null 00 07 * * * root /root/bin/system_check -q >& /dev/null 00 03 * * * root /root/bin/su_backup --local >& /dev/null |
위와 같이 설정하면 매일 새벽 3시에 백업을 수행합니다.
(4) 백업 데이터 보관 및 백업 경로 변경
SULinux에서 제공하는 SSU의 자동백업 기능은 기본적으로 백업 데이터를 2일간 보관하며, 기본 백업 디렉토리를 /backup으로 합니다. 디렉토리 및 보관일 수 를 변경하려면 다음과 같이 설정파일을 편집하시기 바랍니다.
/root/bin/conf/su_util.cfg 설정파일을 편집기로 열어 수정 합니다. 아래 부분은 약 41번째 줄부터 보여주고 있습니다.
################# 백업관련 셋팅 ########### ## backup 디렉토리 ## 예) backup_dir = /backup backup_dir = /backup
## home 디렉토리 (여러개 지정 가능, 꼭 공백으로 띄워 주세요.) ## 예) home_dirs = /home /host1 /host2 home_dirs = /home
## backup 본 보관 일수 ## 예) backup_count = 3 (3일간 보관) backup_count = 2 |
위 설정에서 백업 디렉토리 변경을 위해서는 backup_dir 부분에 “/backup"을 수정하고, 백업 보관일수를 변경하기 위해서는 backup_count의 "2"를 원하는 보관일 수로 설정 하시기 바랍니다. 만약 사용자의 데이터를 보관하는 "/home" 디렉토리가 여러 개 이거나, 다른 곳에 보관 한다면, home_dirs 부분의 "/home"을 수정 또는 추가 하시기 바랍니다.
(5) SULinux 원격 백업서버 구축
SULinux를 사용하여 쉽게 원격 백업서버를 구축 할 수 있습니다.
SULinux를 사용하여 여러 대의 서버를 구축하고 각각 로컬 백업을 진행하고 있다면 각 서버의 백업 데이터를 FTP를 통해 백업할 수 있는 백업서버를 구축 할 수 있습니다.
① 각 서버에 FTP 계정 생성(백업대상)
SULinux가 설치된 각 서버에 ftp 계정을 생성합니다. 기존에 생성되어 있는 계정을 사용하셔도 무관합니다.
useradd backup passwd backup "비밀번호 입력“ |
② 백업서버 설정
각 서버에 FTP계정을 생성하였다면, 백업서버에서 다음과 같이 설정합니다. 다음과 같이 쉘 스크립트를 작성합니다.
/root/backup.sh 파일 생성
su_backup --remote 192.168.10.100 backup bk123 /backup/today/ /backup/100/ 3 |
su_backup의 --remote옵션을 사용하여 백업합니다. 사용법은 다음과 같습니다.
su_backup --remote 대상ip ftp계정 비밀번호 대상경로 로컬경로 보관일수 |
- 대상ip : 백업대상 서버의 IP ( 예) 192.168.10.100 )
- ftp계정 : 백업대상 서버의 FTP계정 ( 예) backup )
- 비밀번호 : 백업대상 서버의 FTP계정의 비밀번호 ( 예) bk123 )
- 대상경로 : 백업대상 서버의 로컬 백업되는 경로 ( 예) /backup/today/ )
( SULinux는 기본 /backup/today에 새벽에 백업된 데이터를 보관 )
- 로컬경로 : 백업서버의 보관 위치 ( 예) /backup/100/ )
( 저장형태 : /backup/100/remote/<오늘날짜>/백업파일 )
- 보관일수 : 백업서버의 보관 일 수
( 지정된 보관일이 경과한 데이터는 삭제됩니다. )
백업 스크립트(/root/backup.sh)에는 백업 대상 서버가 여러 대일 경우 위와 같은 방법으로 한 줄 씩 열거해 줍니다.
작성 완료 후에는 다음 명령으로 실행 권한을 부여하시기 바랍니다.
chmod 700 /root/backup.sh |
③ 자동 원격백업 설정
앞에서 작성했던 백업스크립트(/root/backup)를 매일 정해진 시간에 수행 할 수 있게 cron에 등록합니다.
crontab -e |
위 명령어를 입력하면, vi 편집모드가 나타나며 다음과 같이 입력합니다.
03 04 * * * su - root -c '/root/backup.sh' |
입력 후에는 ':wq‘를 입력하고 빠져 나옵니다. 위 설정은 매일 새벽 4시 3분에 백업스크립트(/root/backup.sh)를 수행하는 설정입니다.
(주의) 백업 대상 서버의 백업 시간을 충분히 경과한 후 수행되도록 설정하시기 바랍니다.
백업 대상서버가 3시에 백업한다면, 백업서버는 4시에 백업하는 것이 좋습니다. 만약, 데이터가 많아 로컬 백업이 오래 지연된다면, 백업서버 시간 또한 충분히 늦게 수행되도록 설정하시기 바랍니다.
기타 고급 설정
SSU는 다양한 기능을 제공합니다. 사용자의 다양한 환경을 고려하여 작성되었기 때문에 설정파일(/root/bin/conf/su_util.cfg)을 편집하므로 여러 환경에 적용시킬 수 있습니다. 설정파일에 대한 설명은 다음과 같습니다.
항 목 | 설 명 | 예 제 |
# | # 으로 시작하는 줄은 주석으로 인정 | ## 주석을 의미하는 줄입니다. |
mysql_bin_dir | mysql 의 bin 디렉토리를 지정(mysql 및 mysqladmin 명령어가 있는 위치 입니다.) | mysql_bin_dir = /usr/local/mysql/bin |
mysql_data_dir | MySQL의 data디렉토리를 지정(MySQL의 데이터가 저장된 디렉토리를 지정합니다. ) | mysql_data_dir = /usr/local/mysql/data |
apache_bin_ctl | Apache 실행 스크립트가 있는 절대 위치를 지정 | apache_bin_ctl = /usr/local/apache/bin/apachectl |
apache_conf_dir | Apache conf(설정파일) 디렉토리를 지정 | apache_conf_dir = /usr/local/apache/conf |
htpasswd_path | htpasswd 명령어 위치를 지정 | htpasswd_path = /usr/local/apache/bin/htpasswd |
web_root | 가상 WebRoot 생성 방법 | * 현재 시간으로 설정 (보안을 위해서)web_root = random* httpd.conf 파일에 설정된 UserDir 에 맞게 설정web_root = allow_httpd.conf* www 로 설정web_root = www* public_html 로 설정web_root = public_html* 임의로 설정 web_root = abc |
dns_domain | dns 서버 도메인(NS서버 호스트명) | dns_domain = ns.domain.co.kr |
dns_admin_mail | dns 서버 관리자 메일주소 ( @ ==> . 으로 치환) | dns_admin_mail = root.domain.co.kr |
backup_dir | backup 파일이 저장될 디렉토리 | backup_dir = /backup |
home_dirs | home 디렉토리들 (여러개 지정 가능, 꼭 공백으로 띄워 주세요.) | home_dirs = /home /host1 /host2 |
backup_count | backup 본 보관 일수 | backup_count = 3 (3일간 보관) |
관련자료
-
이전
-
다음