다음 이전 차례

10. 고급수준의 설정 I - 아카이브의 설정

여기에서는 아카이브의 설정 및 아카이브에 저장된 파일을 어떻게 가져갈 것인가에 대해 이야기 하도록 하겠다.

10.1 아카이브를 위한 majordomo.aliases 설정하기

아래는 아카이브를 위한 majordomo.aliases 파일의 예이다. 설명의 편의를 위해 #으로 막아놓은 주석문으로 설명하였다.


bbs:          "|/usr/lib/majordomo/wrapper resend -l bbs bbs-outgoing"
# 위에서 bbs-list이던 엘리어스가 bbs-outgoing으로 바뀌었다.

bbs-outgoing: :include:/usr/lib/majordomo/lists/bbs,
"|/usr/lib/majordomo/wrapper archive2.pl -a -m -f /usr/lib/majordomo/archive/bbs/bbs.archive"
# 일반적인 리스트 파일 인클루드 외에 , 로 구분된 아카이브 프로그램과
# 연결되었다. 아카이브 프로그램의 옵션을 보면 '-a'는 mbox 형식으로
# 아카이브를 만든다는 옵션이고 -m 은 매월 단위로 아카이브 파일을 
# 만든다는 옵션이다. -f로는 아카이브 파일 이름을 적는다.

owner-bbs-outgoing:owner-bbs
owner-bbs:    kulslist
bbs-request: "|/usr/lib/majordomo/wrapper majordomo -l bbs"
bbs-approval: kulslist
# bbs-outgoing의 owner- 엘리어스가 생긴 것 외에 다른 것은 없다. 

위 설정에 대해 알아보기 전에 세번째 방법을 사용하려는 서버는 반드시 다음 사항을 주지하기 바란다! 일반적으로 -outgoing 엘리어스를 통해 직접 메일을 보냄으로 외부인이 서버에 스패밍 공격을 할 수 있다. 특별히 심각한 보안문제는 아니지만 서버의 하드디스크 공간을 차지하게 만들거나 가입자에게 올바로된 아카이브를 제공할 수 없다. 일반적으로 서버의 하드 공간이 모자라게 되면 몇몇 프로그램을 올바로 수행시킬 수 없다. 따라서 이 방법을 시험해 보고자 하는 사람은 -outgoing이라 되어있는 엘리어스를 자신만이 알 수 있는 다른, 특히 -outgoing 이라 짐작도 할 수 없는 엘리어스를 만들기 바란다. 필자는 보통 만든날의 날짜나 그냥 주섬주섬 생각나는 것으로 만든다.

아카이브는 archive2.pl 파일에 의해 생성된다. archive2.pl 역시 펄스크립트 이고 주석으로 옵션들에 대한 설명이 주어진다. 좀 더 자세히 알고 싶은 사람은 자신에게 익숙한 에디터를 사용하여 확인해 보기 바란다. 다음은 일반적인 옵션이다.

archive2.pl -f archive {-u|-a} [-d|-m|-y]

-f archive 아카이브 파일 이름은 이 옵션 다음에 절대경로나 상대경로로 표시되며 우리가 주어준 파일 이름 뒤에는 날짜 구분용 확장자가 붙게된다.

{-u|-a} 아카이브 파일 형식이다. 일반적으로 -a를 쓰면 될 것이다.

-m 옵션 몇일 단위로 아카이브를 만들 것인가와 아카이브 파일 확장자의 형식을 정해준다. 단위는 하루(d), 한달(m), 일년(y)이며 만일 대문자를 이용한다면 년도를 4자리로 표시한다. 일반적인 소문자일때는 년도는 2자리로 표현된다.

위의 예제와 같은 설정을 통해 메일링 리스트를 운영하면 위의 디렉토리에 다음과 같은 파일이 생성되게 된다.

[kulslist@kuls bbs]$ pwd
/usr/lib/majordomo/archive/bbs
[kulslist@kuls bbs]$ ls
total 24
  20 bbs.archive.9901     4 bbs.archive.9902
[kulslist@kuls bbs]$

일반적인 메일링 리스트라면 한달단위로 저장하는 것으로도 충분할 것이다.

10.2 아카이브를 제공하기 위한 설정사항들

지금까지 설정한 것을 통해 아카이브 파일이 만들어졌다. 사실 아카이브 파일의 목적은 가입자로 하여금 가입 이전 메일의 내용을 얻을 수 있도록 해 주거나, 실수로 지워버린 메일을 다시 가져갈 수 있게 해 주는데 있다. 따라서 이 절에서는 가입자를 위한 설정을 하도록 하겠다. majordomo.cf 에서 다음 설정사항을 찾아보자.


#--------------------------------------------------------------------
#    Stuff below here isn't commonly changed....
#--------------------------------------------------------------------
#
# Majordomo will look for "get" and "index" files related to $list in
# directory "$filedir/$list$filedir_suffix", so set $filedir and
# $filedir_suffix appropriately.  For instance, to look in
# /usr/local/mail/files/$list, use:
#   $filedir = "/usr/local/mail/files";
#   $filedir_suffix = "";               # empty string
# or to look in $listdir/$list.archive, use:
#   $filedir = "$listdir";
#   $filedir_suffix = ".archive";

$filedir = "/usr/lib/majordomo/archive/$list";
$filedir_suffix = "";

# What command should I use to process an "index" request?
#
$index_command = "/bin/ls -lRL";

가입자는 index 명령을 통해 사용가능한 파일을 알아볼 수 있다. 위의 설정에서는 절대경로나 상대경로, 또한 $로 시작하는 변수들을 이용하여 설정가능하다. 하나의 메일링 리스트를 운영한다면 단지 디렉토리만을 써주면 되겠지만, 여러개의 메일링 리스트라면 적절히 변수를 이용해 모든 메일링 리스트가 공통된 형식을 유지할 수 있도록 하는 것이 좋을 것이다. index명령은 내부적으로 'ls -lRL'로 사용되게 된다. 가입자가 echo 'index bbs' | mail majordomo@kuls.korea.ac.kr 명령으로 인덱스를 알아보면 다음과 같은 답신이 온다. majordomo.cf에 올바로 디렉토리를 명시하지 않는다면 아무런 결과도 나오지 않을 것이다. 한번 확인해 보도록 한다.

참고로 $filedir = "/usr/lib/majordomo/archive/$list" 에 설정된 디렉토리는 만들어 주어야 한다.

Date: Wed, 3 Feb 1999 23:16:48 +0900
From: majordomo@kuls.korea.ac.kr
To: artsilly@kuls.korea.ac.kr
Subject: Majordomo results
--
>>>> index bbs
total 24
-rw-rw----   1 kulslist daemon      18480 Feb  3 21:19 bbs.archive.9901
-rw-rw----   1 kulslist daemon       3282 Feb  3 21:19 bbs.archive.9902

가입자는 목록을 살펴보고 원하는 파일이 있다면 echo 'get bbs bbs.archive.9901' | mail majordomo@kuls.korea.ac.kr 과 같이 'get 리스트이름 파일이름' 과 같은 형식의 메일을 메이저도모에게 보냄으로 원하는 파일을 메일로 받을 수 있다. 가입자는 메일을 받아 파일로 저장한다든지 한 후 pine과 같은 메일리더를 이용하여 일반 메일 박스를 읽듯이 읽을 수 있다.

서비스 제공자는 아카이브 디렉토리에 아카이브 파일 외에 가입자에게 제공하려는 파일을 만들어 놓음으로 가입자를 위한 서비스를 개선할 수 있다.

만일 아카이브 파일을 index, get등 명령으로 전송해 주는 것 외에 웹이나 ftp등의 파일전송 프로토콜을 이용하려 한다면 아카이브 저장 디렉토리를 좀 더 평범한(COMMON) 곳에 위치시키는 것은 좋은 생각일 것이다. /var/mail/archive나 /var/majordomo/archive 등을 생각해 볼 수 있다. 웹과 FTP등과의 연동에 대해서는 추후 논의하도록 한다.


다음 이전 차례