« Prev : 1 : 2 : 3 : 4 : 5 : ... 14 :

sendmail.cf 설정

2014/05/28 09:52 / Linux/Etc
이 문서를 다른 웹이나 출판물에 게시할 때는 반드시 출처를 밝혀 주시기 바랍니다.

최종 수정일 : 2001년 8월 14일
글쓴이 : 윤 일(admin@rootman.org)
참고 서적 : Linux 네트워크 서버(출판사 : 삼각형 프레스)

HOW-TO Configuration sendmail.cf

SMTP(Simple Mail Transport Protocol)는 TCP/IP 메일 전송 프로토콜입니다. Linux 에서는 기본적으로 sendmail프로그램을
통해 SMTP를 완벽하게 지원합니다. 간혹 sendmail데몬과 pop3데몬의 역할에 대해 잘못 알고 계시는 분이 계신데 sendmail
은 메일의 발신, 수신, 중계의 역할을 합니다. 즉 sendmail데몬은 메일을 보내고 받고 하는 역할을 합니다.
pop3데몬은 sendmail이 수신한 사용자의 메일을 사용자의 메일 클라이언트에서 받아 볼 수 있는 역할을 합니다.

0. 들어가기 전에
sendmail.cf파일을 다루는 능력이 안된다고 해서 sendmail을 사용할 수 없는건 아닙니다. sendmail을 설치하면 기본적으로 설정되어 있는 sendmail.cf파일만으로도 충분히 아니 만족스러울 정도로 sendmail을 가동할 수 있습니다.
이번 강좌에서 다루는 sendmail.cf 설정들의 설명은 쉽고 자주 이용되는 설정에 대해서만 다룰려고 합니다. 하지만 이번 강좌에서 다루는 내용만으로도 sendmail을 사용하는데 아무런 지장이 없을 것입니다. 센드메일 관련 질문들을 봐도 이 범위에 벗어난 질문은 없는 것 같군요. 사실 더 이상 자세히 다룰 실력도 안되고, 워낙 sendmail의 기능이 많아서...
(800페이지 분량의 sendmail만을 다룬 책도 있습니다)
사실 sendmail.cf 파일에 대해서 공부하는것이 무척 부담스러울 것이다. 부담 되시는 분이나 처음부터 이해가 되지 않아 이 페이지를 닫으실 분들은 "1.3 Options 섹션" 부분만이라도 한번 읽어 보길 바란다.


1. sendmail.cf(sendmail 환경설정)
1.1-1 sendmail.cf의 규칙
-->>sendmail.cf의 각 행들은 다음과 같은 규칙이 적용됩니다.
1) 빈행은 무시한다.
2)
#로 시작하는 행은 주석행이다.
3)
C, D, F, H, K, M, O, P, R, S, V로 시작하는 행은 설정행이다.
4)
하나이상의 빈 공간으로 시작하는 행은 앞 행의 연장이다.

sendmail.cf 파일은 7개의 색션으로 나누어져 있는 아주 복잡한 파일이다.
아마 초보 분들은 sendmail.cf파일을 열고 그 내용의 방대함에 놀라 그냥 파일을 닫는 분도 있을 겁니다. 저도 첨에sendmail.cf 파일을 열어봤을 땐 짜증이 확 밀려 왔으니까.....
우선 간략하게 7개의 섹션들에 대해서 잠깐 살펴보고 넘어 갑니다.. 아주 간략하게.. 지금부터 바짝 긴장 하시길.. ^^;

Local Info

--->> 0이 섹션은 해당 로컬 호스트의 구성 정보를 정의합니다.
Options
--->> sendmail 환경을 정의하는 옵션을 정의 한다.
Message Precedence
--->> sendmail 메시지 순서 값을 정의 합니다.
Trusted Users
--->> 발신인의 주소를 변경할 권한을 갖는 사용자를 정의합니다.
Format of Headers
--->> 메일에 삽입도는 메일 헤더를 정의합니다.
Rewriting Rules
--->> 사용자의 메일 프로그램에 있는 e-mail 주소를 메일 배달 프로그램에 필요한 폼으로 다시 작성하는 명령이 들어 있습니다.
Mailer Definitions
--->> 메일을 배달하는데 사용되는 프로그램을 정의합니다. Mailer가 사용하는 재작성 규칙도 이 섹션에 정의되어
있습니다
.

1.1-2 sendmai.cf에서 사용되는 명령
C : 클래스 정의(문자열)
D
: 메크로 정의
E
: 환경변수 지정
F
: 클래스 정의(file, pipe)
H
: Herder 정의
K
: Key file 정의(map 정의)
M
: mailer 정의
O
: 옵션
P
: Message precedences
R
: 덮어쓰기
S
: Ruleset(새로운 규칙 시작)
T
: Truseted users(사용자 지정)
V
: 설정파일 버젼

1.2 local info 섹션

Cwlocalhost
localhost를 w클래스로 정의 한겁니다.
다음에 나오는 Fw와의 차이점은 C는 문자열을 정의하고 F는 파일을 정의합니다.

Fw/etc/mail/local-host-names
Cwlocalhost와 같이 w클래스를 정의하는데 문자열 대신 파일을 정의합니다.
즉 /etc/mail/local-host-names에 추가할 내용을 Cwlocalhost aaa.com bbb.com 으로 설정해도 같은 효과가 납니다..

FR-o /etc/mail/relay-domains
Relay를 허용할 도메인을 설정합니다.
그러나 /etc/mail/access에서 Relay 제어를 할 수 있기 때문에 이 파일은 거의 쓰기 않는 파일입니다.


DnMAILER-DAEMON
sendmail이 return 메일을 보낼 때 사용하는 사용자 이름을 정의한다.
sendmail로부터 return 메일을 받아 본 사람들은 MAILER-DAEMON의 메일을 받아본 기억이 있을 겁니다.


Kmailertable hash -o /etc/mail/mailertable
Mailer 테이블을 작성하는 파일을 정의합니다.
K 명령은 모든 정보와 내부 이름, 데이터베이스의 유형, 이 데이터베이스를 가지고 있는 파일을 정의할 때 사용한다.
K명령은 "mailertable"라는 이름의 데이터 베이스를 선언하는데 이 데이터 베이스는 표준 Unix 데이터베이스 포맷인 hash 포맷으로 되었있다는 것을 정의한다.


Kvirtuser hash -o /etc/mail/virtusertable
가상 유저 테이블을 정의하고 있다.


Kaccess hash -o /etc/mail/access
메일 수신자 데이터 베이스 파일을 정의하고 있다.

1.3 Options 섹션
아마 서버 관리자의 취향에 따라 가장 많이 수정되어 지는 부분이 Options 섹션의 설정들이 아닌가 생각된다.
모든 옵션에 대해서 설명을 하지 않았지만 특별한 경우가 아니면 이 밖의 설정들을 건드릴 일은 없을 것이라고 생각된다.

O SevenBitInput=False
7비트로 받아 들이지 않게 설정하고 있다.


O EightBitMode=pass8
8비트 데이트로 처리하게 설정하고 있다.


O AliasFile=/etc/aliases
aliases파일의 위치를 정의하고 있다.


O MaxMessageSize=1000000
메일의 최대 용량을 제한하는 옵션이다. 기본적으로 주석처리 되어 있어 무제한으로 설정되어 있다.
메일 박스 용량과는 무관한 설정이다.


O DeliveryMode=background
센드메일을 백그라운드로 작동하게 설정하고 있다.


O MaxHopCount=17
최대 메일 포워딩 수를 정의하고 있다.
큐잉 서버를 만들 때 사용되는 것으로 기본적으로 주석 처리 되어 있다.


O HelpFile=/usr/lib/sendmail.hf
help파일의 위치를 정의하고 있다.


O ForwardPath=$z/.forward.$w:$z/.forward
.forward 파일의 위치를 정의하고 있다.
$w는 호스트 이름을 가리키는 매크로 값이고 $z는 사용자 홈 디렉토리를 가리킨다.


O QueueDirectory=/var/spool/mqeue
센드메일의 큐 디렉토리의 위치를 지정한다.
큐 디렉토리는 메일 발송 실패 또는 대기 하고 있는 메일들이 임시로 저장되는 곳이다.


O Timeout.connect=1m
타임 아웃을 1분으로 설정하고 있다.


O Timeout.queuereturn=5d
Return메일이 발송될 시간을 설정하고 있다.
특정 이유로 메일이 5일동안 발송되지 않으면 메일을 보낸 사람에게 반송된다.


O Timeout.queuewarn=4h
메일이 최종 발신지까지 4시간동안 발송되지 않으면 메일을 보낸 사람에게 경고 메일을 보낸다.
sendmail.cf 파일에는 위 3가지 Timeout 설정외에 많은 Timeout 설정들이 있다.


O StatusFile=/var/log/sendmail.st
센드메일의 status 파일의 위치를 지정한다.


O DefaultUser=8:12
Mailer 의 UID와 GID를 설정한다. (UID : 8 , GID : 12)


O MinQueueAge=30m
메일을 바로 발송하지 않고 최소한 30분동안 큐잉 상태로 대기 시킨다. 기본적으로 주석 처리 되어 있다


O


1.4 Mesage Procedure 섹션
메시지 대기열에 들어가는 메시지의 우선 순위를 할당할 때 사용한다. 디폴트로 메일은 "1종 우편물"로 간주되어 0이라는 우선 순위가 할당된다. 우선 순위를 나타내는 수가 음수일 경우 메일로 보낼 에러 메시지가 만들어지지 않기 때문에 대량 메일링에는 낮은 우선 순위를가 유리하다. 아래의 우선 순위 설정들은 수정하지 말고 기본값으로 사용하길 바란다.
Pfirst-class=0
Pspecial-delivery=100
Plist=-30
Pbulk=-60
Pjunk=-100


1.5 Trusted Users 섹션
Trust된 사용자는 메일을 보낼 때 발신의의 주소를 변경할 수 있다. 단 trust된 사용자는 /etc/passwd 파일에 존재하는 사용자이어야 된다. 기본적으로 root, daemon, uucp가 설정되어 있다. 보안상 아래의 값을 변경하는 일은 없기 바란다.
Troot
Tdaemon
Tuucp


1.6 Format of Headers 섹션
메일 헤더를 정의하는 부분이다.
H?P?Return-Path: <$g>
HReceived: $?sfrom $s $.$?_($?s$|from $.$_)
$.$?{auth_type}(authenticated$?{auth_ssf} (${auth_ssf} bits)$.)
$.by $j ($v/$Z)$?r with $r$. id $i$?{tls_version}
(using ${tls_version} with cipher ${cipher} (${cipher_bits} bits) verified ${verify})$.$?u
for $u; $|;
$.$b
H?D?Resent-Date: $a
H?D?Date: $a
H?F?Resent-From: $?x$x <$g>$|$g$.
H?F?From: $?x$x <$g>$|$g$.
H?x?Full-Name: $x
# HPosted-Date: $a
# H?l?Received-Date: $b
H?M?Resent-Message-Id: <$t.$i@$j>
H?M?Message-Id: <$t.$i@$j>

#^L


1.7 Rewritng Rules 섹션
R$* $#error $@ 5.7.1 $: "550 Relaying denied"
이 설정은 localhost에서만 RELAY를 허용하라는 설정이다. 절대 주석 처리 되어 있으면 안된다.
만약 주석 처리 되어 있을 경우 스패머들의 놀리터가 될 수 있다.


Mlocal, P=/usr/bin/procmail, F=lsDFMAw5:/|@qSPfhn9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
M=1000000, T=DNS/RFC822/X-Unix, A=procmail -Y -a $h -d $u
위의 "M=1000000" 설정을 통해서 사용자가 사용할 수 있는 전체 메일 용량이 아니라 들어오는 메일 용량을 제한 할 수
있다. 기본적으로 설정이 되어 있지 않다. (단위: bytes)

==============================================================================================
출처 :
https://www.linux.co.kr/home/lecture/index.php?cateNo=6&leccode=390&secNo=65&theNo=389

2014/05/28 09:52 2014/05/28 09:52
샤이 이 작성.

당신의 의견을 작성해 주세요.

/proc 설명

2014/02/04 10:09 / Linux/Etc
/proc 내부 내용 설명

loadavg 지난 1,5,15 분간의 평균 시스템 부하
uptime 부트 이래로 총 가동 시간(초) 과 프로세스에 의해 사용된 총 시간
meminfo 메모리와 스왑의 사용 및 프리 바이트
kmsg 커널에 의해 읽혀질 커널 메시지
version 커널 또는/그리고 배포본의 버전
cpuinfo 프로세서(CPU) 파라메터
pci 현재의 PCI 슬롯 사용 정보
self/ 현재 /proc를 억세스하고 있는 프로세스 정보
net/ 네트워크 계층 설명
scsi/ 개개의 scsi 장치에 관한 정보를 갖는 파일들이 위치함.
malloc kmalloc 과 kfree 운영 정보 모니터링
kcore 커널 코어 덤프
modules 단일 적재 모듈에 관한 정보
stat 일반 리눅스 통계
devices 커널에 등록된 시스템 장치에 관한 정보
interrupts 인터럽트 할당 정보
filesystems 현재의 파일시스템 구현
ksyms 커널에의해 익스포트된 심볼
dma 사용중인 DMA 채널
ioports 현재 사용중인 입출력 포트
smp SMP가 활성화 돼 있을 경우 각 CPU 정보
cmdline 부트시에 커널에 넘겨진 파라메터
sys/ 중요한 커널과 네트워크 정보
mtab 현재 마운트된 파일 시스템
md 다중 디바이스 드라이버 정보(활성화 되었을 경우)
rc 확장 리얼타임 클럭
locks 현재 락(locked)된 파일
Numbered Directories - 숫자로 된 디렉터리는 그 PID의 실행 프로세서 정보이다.

=====================================================================================
출처:https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=linuxserver&wr_id=20850
2014/02/04 10:09 2014/02/04 10:09
샤이 이 작성.

당신의 의견을 작성해 주세요.

현재 위치의 하위에서 용량이 1MB 이상인 파일 찾는 명령어

find . -xdev -size +2048 -ls |sort -r +6
2013/12/31 11:30 2013/12/31 11:30
샤이 이 작성.

당신의 의견을 작성해 주세요.

apache LogFormat에서 사용되는 %변수



































































































%a


원 격 IP-주소


%A


(서버) IP-주소


%B


HTTP 헤더를 제외한 전송 바이트수.


%b


HTTP 헤더를 제외한 전송 바이트수. CLF 형식과 같이 전송한 내용이 없는 경우 0 대신 '-'가 나온다.


%C


서 버가 수신한 요청에서 Foobar 쿠키의 내용.


%D


요청을 처리하는데 걸린 시간 (마이크로초 단위).


%e


환경변수 FOOBAR의 내용


%f


파일명


%h


원 격 호스트


%H


요청 프로토콜


%i


서버가 수신한 요청에서 Foobar: 헤더의 내용.


%l


(있 다면 identd가 제공한) 원격 로그인명. mod_ident가 있고 IdentityCheck On이 아니면 빼기기호를 기록한다.


%m


요청 메써드


%n


다른 모듈이 기록한 Foobar 노트(note) 내용.


%o


응 답의 Foobar: 헤더 내용.


%p


요청을 서비스하는 서버의 정규 포트


%P


요청을 서비스하는 자식의 프로세스 ID.


%P


요청을 서비스하는 자식의 프로세스 ID 혹은 쓰레드 ID. format에는 pid tid가 가능하다.


%q


질 의문자열 (질의문자열이 있다면 앞에 ?를 붙이고, 없다면 빈 문자열)


%r


요청의 첫번째 줄


%s


상 태(status). 내부 리다이렉션된 요청의 경우 *원래* 요청의 상태이다. 최종 요청의 상태는 %>s.


%t


common log format 시간 형식(표준 영어 형식)의 시간


%t


strftime(3) 형식 format의 시간. (지역시간일 수 있음)


%T


요청을 처리하는데 걸린 시간 (초 단위).


%u


원격 사용자 (auth가 제공하며, 상태(%s) 401인 경우 이상한 값을 나올 수 있음)


%U


질 의문자열을 제외한 요청 URL 경로.


%v


요청을 서비스한 서버의 정규 ServerName.


%V


UseCanonicalName 설정에 따른 서버명.


%X


응답을 마쳤을때 연결 상태.
X =
응답을 마치기 전에 연결이 끊어졌다.
+ =
응답을 보낸후에도 연결이 살아있다(keep alive).
- =
응답을 보낸후 연결이 끊어졌다.


%I


요청과 헤더를 포함한 수신 바이트수로 0일 수 없다. 이를 사용하려면 mod_logio가 필요하다.


%O


헤더를 포함한 송신 바이트수로 0 없다. 이를 사용하려면 mod_logio 필요하다.





=====================================================================
출처 : http://sol9501.blog.me/70086719455

2013/09/16 13:55 2013/09/16 13:55
샤이 이 작성.

당신의 의견을 작성해 주세요.

[양평] 두물머리

2013/05/19 23:45 / Travel log

사용자 삽입 이미지

북한강과 남한강이 만나는 양평 두물머리.
일출이 더 이쁘다고 하는 말에 꼭두새벽부터 일어나 도착.. 5시경 이었음에도 사진을 찍으러 온
사람들로 북적거림 생각보다는 아담하고 듣던대로 이쁘다 멋진 풍경과 아침공기로 인해 힐링이 되는기분~

사용자 삽입 이미지
사용자 삽입 이미지

도당할매,할배라고 불린다는 소원나무
일단 소원을 들어준다니 돌맹이 하나 얹어놓고 빌어봄.

사용자 삽입 이미지

소원나무 앞의 포토존.
뒤에 사람을 세워두고 찍으면 멋진 사진이 완성!
(모델은 착한 사람 눈에만 보입니다.)

사용자 삽입 이미지

가장 아름다운 사진을 찍을 수 있는 일출의 매직아워 시간이 지나가자 20여명 남짓 모여있던
진사님들 약속이나 한듯이 흩어져 돌아감.. 난 두물머리가 처음인 관계로 한바퀴 둘러 보았다
사진은 나룻배 5형제..

사용자 삽입 이미지
물속에서 솟아나온 이름모를 식물들..
아침이슬을 받아 멋진 풍경을 만들어 준다.

사용자 삽입 이미지
아니요.. 아쉽게도..

사용자 삽입 이미지
이른 아침임에도 가족단위의 사람들이 눈에 띈다
부지런한 가족인듯..

사용자 삽입 이미지
차가 없다면 일출시간은 맞추기 힘들 듯 하지만 일출이 아니더라도
두물머리는 나도 모르게 힐링이 되는 정말 멋진 곳 입니다~

사용자 삽입 이미지

두물머리 둘레로 볼만한 장소가 한가득~ 이길을 지나면
연꽃이 가득한 물의 정원 세미원으로 갈 수 있는듯 하다..
7월초가 절정이라고 하니 아쉽지만 다음을 위해 아껴 두었다.

사용자 삽입 이미지

일출이 아름다운 명소



2013/05/19 23:45 2013/05/19 23:45
샤이 이 작성.

당신의 의견을 작성해 주세요.

사용자 삽입 이미지
사용자 삽입 이미지

급하게 핸드폰으로 검색하니...
운이 좋게도 월천리와 삼척 사이에 한국의 나폴리 라는 장호항이 있다는 것을 알게 되었다.
월천리에서 1박 후 살짝 둘러본 후 미련없이 바로 이동~
왠지 정겨운 시골 정류장에서 걸어들어가니 바로 펼쳐지는 작고 아담한 멋진 해변~
월천리 공사장에서 받은 충격덕인지 몇배로 근사함!

사용자 삽입 이미지

장호항은 물이 너무나 깨끗하여 스노쿨링과 투명카누 등의 레포츠가 유명한 모양이지만
겨울이었기 때문에 관광객을 보기 힘들 정도로 한적 했다.. 해변엔 개미 한마리 보이지 않아
멋진 해변의 경관을 친구와 둘이서 독차지 함
북쪽으로 능선을 따라 올라가면 휴게소와 전망대가 있어 장호항을 한눈에 볼 수 있다.

사용자 삽입 이미지
사용자 삽입 이미지

휴게소에는 갖가지 술과 도자기 등의 특산물을 판매하고 있어 눈요기 하기 좋았음.
역시나 직원외엔 사람이 없다.

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

장호항 선착장에서는 그날 잡은 물고기들을 바로바로 손질하고 있어서
부산물 하나라도 건지려는 갈매기들이 멋진 장관을 연출한다.
통통배와 갈매기들의 추격전이 인상적..

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

마을 한쪽 돌섬에는 작은 전망대가 설치되어 있어 멋진 등대와 기암 절벽들을 감상하기 좋다.
지금 생각 해보니 여름에는 사람들로 북새통을 이룰듯..

사용자 삽입 이미지
사용자 삽입 이미지
바다 낚시를 즐기는 강태공들과 뭔가 쌩뚱맞은 분위기의 암반장... 사람은 한명도 없다~
바위에 부서지는 파도를 담으려는 진사들도 많이 보였음..

사용자 삽입 이미지
남쪽 방향에는 기암절벽이 가득해 멋진 분위기를 연출 하는데 가까이 갔다가
바닷물이 너무 투명하고 맑아 왠지 마셔봐야 할거 같아서... 한모금 시음함
시원한 바닷물맛! 물론 다시 먹고 싶지는 않다.

사용자 삽입 이미지

월천리에서 너무 안싱싱한 광어회를 이미 먹었기 때문에 패스하려고 하다가
그래 회먹고 죽자~ 라는 심정으로 인터넷을 검색하여 평이 좋은 횟집으로 들어감
이름은 기억 안나지만 수족관은 깨끗하고 선장님이 매일 잡은 싱싱한 물고기로 장사 한다고 한다.
주문한 모듬회와 매운탕+스끼다시 대박~!

정리 하면 월천리 (솔섬 사진이 목적이 아니라면) 별 0.1개 장호항 별 5개 만점!


2013/05/19 18:54 2013/05/19 18:54
샤이 이 작성.

당신의 의견을 작성해 주세요.

사용자 삽입 이미지

바다가 보고 싶은 마음에 사진도 찍고 회도 먹을 겸 친구 한넘을 꼬셔서 무작정 1박 2일 일정으로 삼척에 도착!

삼척 월천리 솔섬.
영국의 사진작가 마이클 케냐의 사진 덕분에 유명해진 출사 장소이며 현재는 LNG 생산기지 공사로 인해
예전만큼의 경관을 감상하기는 어렵다.. (뭐 나는 처음 온 곳이지만)
공사로인해 없어질 위기에 처했다가 국내 사진 애호가들의 거센 항의로 그나마 솔섬은 살아 남았다고 한다.

사용자 삽입 이미지

누군가의 블로그에서 보았던 이쁘다던 다리..
언제적 사진 이었는지는 모르지만 현재는 심하게 낡아 무심코 건너다 추락할뻔...
바닥 철판이 심하게 부식되어 아주 위험한 상태임 반대편 계단은 부숴지기 직전..

사용자 삽입 이미지

동네 멍멍이.. 아주 순해 보이는데 담벼락에는 "개조심" 이라고 써있다.. 음...
사실 별 생각없이 정한 여행지로 솔섬 사진 찍고 회나 먹고 바다나 보자 하는 마음으로 갔는데
친구한테 두고두고 갈굼 당할 뻔 함 "여행 가자더니 공사장으로 끌고왔냐!!"
사실 바다는 별로 안보이고 온통 공사장...
항구에는 횟집 달랑 3개 그나마 손님은 한명도 없음..
회는 바로 잡은건지 냉장고에 보관하던 걸 꺼내준건지 알수 없을 정도고..
계획을 변경하여 1박 후 다른곳으로 이동하기로 함...







2013/05/19 02:50 2013/05/19 02:50
샤이 이 작성.

당신의 의견을 작성해 주세요.

########################################## git 설치
cassandra-pdo 소스를 다운받기 위해서는 git이 필요하며 다음 명령어로 git을 설치 합니다.

#yum install git

centos 6 은 yum 으로 가능하지만 centos 5는 소스를 다운로드하여 설치 하여야 합니다.

http://distfiles.macports.org/git-core/

#wget http://distfiles.macports.org/git-core/git-1.8.2.2.tar.gz
#tar zxvf git-1.8.2.2.tar.gz
#cd git-1.8.2.2
#./configure
#make && make install

cassandra-pdo 프로젝트 url

http://code.google.com/a/apache-extras.org/p/cassandra-pdo/

다음 명령어로 cassandra-pdo 소스를 다운 받습니다.

#git clone https://code.google.com/a/apache-extras.org/p/cassandra-pdo/

cassandra-pdo를 설치하기 위해서는 thrift 와 boost 라이브러리가 필요하며 공식 홈페이지는 다음과 같습니다.

http://thrift.apache.org/download/

http://www.boost.org/users/download/

########################################## thrift 설치
thrift 의 경우 0.9.0 버전까지 나왔으나 cassandra-pdo 설치 중 (centos 5.8 환경) 에러가 발생하여 0.7.0 버전을 사용 하였습니다.

#wget http://archive.apache.org/dist/thrift/0.7.0/thrift-0.7.0.tar.gz
#tar zxvf thrift-0.7.0.tar.gz
#cd thrift-0.7.0
#chmod +x configure
#./configure
#make
#make install

########################################## boost 라이브러리 설치
boost 라이브러리의 경우 yum으로 설치시 필요한 라이브러리가 충족되지 않아 소스를 다운받아 설치 합니다.

#tar zxvf boost_1_53_0.tar.gz
#mv boost_1_53_0 /usr/local/boost_1_53_0
#cd /usr/local/boost_1_53_0
#./bootstrap.sh
#./b2
#ln -s /usr/local/boost_1_53_0 /usr/local/boost_1_53_0/include

########################################## cassandra-pdo 설치
이제 cassandra-pdo를 설치하며 php는 5.3.8 버전에서 테스트 하였습니다.

#cd $down_path/cassandra-pdo
#$php_path/bin/phpize
#./configure --with-php-config=$php_path/bin/php-config --with-boost-dir=/usr/local/boost_1_53_0
#make

centos 5 또는 32bit 에서는 다음과 같은 에러가 발생할 수 있습니다. (centos6 64bit 에서는 미발생)

cassandra_statement.cpp:231: error: ‘tsrm_ls’ was not declared in this scope
make: *** [cassandra_statement.lo] 오류 1

에러 발생시 cassandra_statement.cpp 파일의 (2013/05/07 ver.) 231 라인에 다음과 같이 TSRMLS_FETCH(); 을 추가하여야 합니다.
========================================================================
static long pdo_cassandra_marshal_numeric(pdo_stmt_t *stmt, const std::string &binary)
{
    if (sizeof(long) < binary.size()) {
        TSRMLS_FETCH();
        pdo_cassandra_error(stmt->dbh, PDO_CASSANDRA_INTEGER_CONVERSION_ERROR, "The value is too large for integer datatype", "");
        return LONG_MAX;
    }

    const unsigned char *bytes = reinterpret_cast <const unsigned char *>(binary.c_str());

    long val = 0;
    size_t siz = binary.size ();
    for (size_t i = 0; i < siz; i++)
        val = val << 8 | bytes[i];

    return val;
}
========================================================================
make 후 생성되는 modules/pdf_cassandra.so 파일을 php extension 디렉토리에 복사하여 php.ini에 등록한 후 아파치를 재가동 하면 됩니다.

php 모듈 추가 관련은 다음 url 참고
http://www.worldwalker.co.kr/entry/php-재설치-없이-확장모듈-추가하는-방법

2013/05/07 10:47 2013/05/07 10:47
샤이 이 작성.

당신의 의견을 작성해 주세요.

카산드라 (ver:1.2.4)

centos 5.9 에서 테스트 하였으며 6.3 에서는 에러가 발생.. 일단 6.3은 패스

카산드라 다운로드

http://cassandra.apache.org/download/

바이너리 파일을 받아 압축해제로 바로 사용할 수 있으며 소스 파일을 사용할시 apache-ant로 컴파일 하여야 합니다.

java 1.6.0_19 이상을 설치하여야 하며 1.7은 추천하지 않는다고 합니다.

java 설치시 소스파일을 다운받아서 설치하고 컴파일 해도 되며 여기서는 간단하게 yum 으로..

#yum install java-1.6.0-openjdk-1.6.0.0-1.28.1.10.10.el5_8

다운받은 카산드라 바이너리 파일을 압축해제

#tar zxvf apache-cassandra-1.2.4-bin.tar.gz

환경 설정 파일은 $cassandra_path/conf/cassandra.yaml

로그 및 데이터 파일은 기본으로 /var/log/cassandra, /var/lib/cassandra 하위로 설정 되어 있으니 적절히 수정하여 사용하면 되며

외부 클라이언트에서 사용하기 위해서는 환경 설정파일의 rpc_address: localhost 를 rpc_address: 0.0.0.0 으로 변경 합니다.

실행방법은

#$cassandra_path/bin/cassandra -f

그냥 실행하면 segmentation fault 가 발생하며 $cassandra_path/conf/cassandra-env.sh 파일의 다음 라인을 수정 합니다. (1.2.4 의경우 193 라인)

JVM_OPTS="$JVM_OPTS -Xss180k"  =>  JVM_OPTS="$JVM_OPTS -Xss280k"

수정후 재가동 하면 9160 포트가 오픈되며 실행이 되며 접속 확인은 다음과 같이 가능 합니다.

#$cassandra_path/bin/cassandra-cli
Connected to: "Test Cluster" on 127.0.0.1/9160
Welcome to Cassandra CLI version 1.2.4

Type 'help;' or '?' for help.
Type 'quit;' or 'exit;' to quit.

[default@unknown]

외부 서버로의 접속은 cassandra-cli -host IP

2013/05/06 17:43 2013/05/06 17:43
샤이 이 작성.

당신의 의견을 작성해 주세요.

/var/spool/clientmqueue 디렉토리에 파일 쌓이는 현상

/var/spool/clientmqueue 에는 sendmail 에서 보낸 메일의 목적지가 불붕명 할 경우 메일이 임시저장
되었다가 목적지가 확인이 되면 mqueue로 보내서 메일을 발송한다고 함.

sendmail을 사용하지 않을 경우에는 logwatch에서 로그를 메일로 발송하기 때문에 발생함.
그중에서 logwatch의 메일발송 기능을 없애러면

/etc/mail/submit.cf
----------------------------------------------
# queue directory
O QueueDirectory=/var/spool/clientmqueue <- 요부분 주석처리
----------------------------------------------

그리고

/var/spool/clientmqueue 폴더 안에 들어가서 ll 하면 다운먹으니까
리스트 보지말고 바로

# ls | xargs rm -f
쳐주면 삭제됨! 시간이 좀 걸림!

기타 다른 방법으로는~

/etc/crontab 에서
----------------------------------------------
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
----------------------------------------------
MAILTO=root에 있는 root를 제거
========================================================================
출처: http://supermono.tistory.com/75

2013/04/10 17:32 2013/04/10 17:32
샤이 이 작성.

당신의 의견을 작성해 주세요.

« Prev : 1 : 2 : 3 : 4 : 5 : ... 14 :