위와 같은 상황의 시스템이 있다고 가정해 봅시다. 말하고 싶은것은 알람메일을 전송하는 서버가 메일서버가 아니고 mail과 관련한 그 어떤것도 없다고 할때 알람 메일을 어떻게 보낼 수 있을까요?
간단하게 사용할 수 있는 Perl 라이브러리로 Mail::Sender가 있습니다. 어떻게 사용하는지 볼까요?
우선 설치부터 해보겠습니다. 요즘 Perl은 많이 발전해서 CPAN이라는 놈으로 매우 쉽게 새로운 모듈을 설치할 수 있습니다.
[code][root@Theeye /]# perl -MCPAN -e ‘install Mail::Sender'[/code]
이제 준비가 끝났습니다. 스크립트를 작성해 봅시다.
[code][root@Theeye /]# vi sender[/code]
[code]#!/usr/bin/perl
use Mail::Sender;
eval { rsync를 사용하면 손쉽게 데이터 미러링을 할 수 있습니다. 또한 증분 백업이 가능한 백업 시스템을 구축 할 수 있으며, 다수의 웹서버를 사용할 경우 웹페이지 배포등에 활용할 수 있습니다. 저는 백업 용도로 구성을 한번 해보겠습니다. FILE SERVER #1(192.168.0.1) ———————————————————————————— disable을 no로 바꾼후에 xinetd를 재시작 해줍니다. nmap을 실행해 정상적으로 873번 포트가 떠있는지 확인해 봅시다. /etc/rsyncd.conf 파일을 만들어 줍시다. 첫번째 줄의 []로 감싸여 있는 값은 해당 설정의 이름입니다. 이 이름으로 다른 서버에서 데이터를 끌어올 수 있습니다. path : 공유할 디렉토리 FILE SERVER #2 (192.168.0.2) ————————————————————————————– BACKUP SERVER (192.168.0.3) ————————————————————————————- 보시다 시피 위에서 지정한 file이라는 공유 이름으로 데이터를 가져오게 됩니다. 다시 한번 실행해 보면 변동된 데이터만 가져오게 됩니다.
$sender = new Mail::Sender {
from => ‘Theeye <
This entry was posted in 리눅스서버관리 and tagged linux, mail, Mail::Sender, 리눅스, 메일, 서버관리, 알람 on .
rsync 사용 하기
위와 같이 파일 서버가 2대가 있고 그 정보를 백업할려는 백업 서버가 있습니다. 파일 서버에는 rsync 데몬을 실행하고 백업 서버에서는 rsync 명령으로 데이터를 끌어가면 됩니다.
rsync는 xinetd 슈퍼 데몬에 얹혀 돌아갑니다. 데몬모드로 실행하기 위해 설정을 바꿔 봅시다.$ vi /etc/xinetd.d/rsync
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
$ service xinetd restart
xinetd 를 정지 중: [ OK ]
xinetd (을)를 시작 중: [ OK ]
$ nmap localhost
Starting Nmap 4.99 ( http://www.insecure.org/nmap/ ) at 2008-05-20 13:05 KST
Interesting ports on Theeye (127.0.0.1):
Not shown: 1672 closed ports
PORT STATE SERVICE
873/tcp open rsync
Nmap finished: 1 IP address (1 host up) scanned in 0.105 seconds
[file]
path = /home/file
comment = File server #1
uid = nobody
gid = nobody
use chroot = yes
read only = yes
host allow = 192.168.0.3
max connection = 1
timeout 300
comment : 설명
uid : 접근할 user id
gid : 접근할 group id
use chroot : chroot를 사용할지 여부, 특별한 이유가 없는 이상 꼭 사용할 것
read only : 읽기만 가능할 것인지, 백업의 피 대상이므로 yes로 설정
host allow : 접근 가능한 호스트 설정. 백업서버만 접근 가능하도록 설정
max connection : 최대 몇개의 커넥션을 연결할 수 있는지 설정
timeout : 타임아웃 시간 설정
당연하게도 FILE SERVER #1과 모든 설정이 동일합니다. 그래도 rsyncd.conf 파일의 comment값만 좀 조정해 볼까요?;;[file]
path = /home/file
comment = File server #2
uid = nobody
gid = nobody
use chroot = yes
read only = yes
host allow = 192.168.0.3
max connection = 1
timeout 300
백업 서버에서는 안타깝게도 그다지 설정할 것이 없습니다. 데이터를 끌어와 봅시다.$ rsync -avz 192.168.0.1::file /home/backup/file1
$ rsync -avz 192.168.0.2::file /home/backup/file2