* queue-fix로 권한조정
[root@test src]# wget http://rpm.lhb.kr/mail/qmail/lib/queue-fix-patch-1.4.tar.z
[root@test src]# cd queue-fix-1.4/
[root@test queue-fix-1.4]# make
[root@test queue-fix-1.4]# cp queue-fix /var/qmail/bin/
[root@test queue-fix-1.4]# cd /var/qmail/bin

* qmail 중지후 실행
[root@test bin]# /etc/init.d/qmail stop
Stopping qmail: svscan qmail logging.
[root@test bin]# ll /var/qmail/queue/
total 36
drwx------  2 root qmail 4096 Oct 16 14:25 bounce/
drwx------  25 root qmail 4096 Oct 27  2006 info/
drwx------  2 root qmail 4096 Oct 16 17:05 intd/
drwx------  25 root qmail 4096 Oct 27  2006 local/
drwxr-x---  2 root qmail 4096 Oct 27  2006 lock/
drwxr-x---  25 root qmail 4096 Oct 27  2006 mess/
drwx------  2 root qmail 4096 Oct 16 17:05 pid/
drwx------  25 root qmail 4096 Oct 27  2006 remote/
drwxr-x---  2 root qmail 4096 Oct 16 17:05 todo/
[root@test bin]# ./queue-fix -i /var/qmail/queue
It looks like some permissions are wrong, should I fix them? (Y/n)
y
Changing ownership of [/var/qmail/queue/] to uid 505 gid 502
Changing ownership of [/var/qmail/queue/info] to uid 507 gid 502
..중략...
Changing ownership of [/var/qmail/queue/lock/tcpto] to uid 506 gid 502
Changing ownership of [/var/qmail/queue/lock/trigger] to uid 507 gid 502
queue-fix finished...
[root@test bin]# ll /var/qmail/queue/          
total 36
drwx------  2 qmails qmail 4096 Oct 16 14:25 bounce/
drwx------  25 qmails qmail 4096 Oct 27  2006 info/
drwx------  2 qmailq qmail 4096 Oct 16 17:05 intd/
drwx------  25 qmails qmail 4096 Oct 27  2006 local/
drwxr-x---  2 qmailq qmail 4096 Oct 27  2006 lock/
drwxr-x---  25 qmailq qmail 4096 Oct 27  2006 mess/
drwx------  2 qmailq qmail 4096 Oct 16 17:05 pid/
drwx------  25 qmails qmail 4096 Oct 27  2006 remote/
drwxr-x---  2 qmailq qmail 4096 Oct 16 17:05 todo/
2013/04/02 14:08 2013/04/02 14:08

오라클 에서 한글 comment 를 사용시에는 오라클 접속 툴의 캐릭터셋 설정을 서버의 설정과 일치시켜야
한글 comment 가 정상적으로 보이니 서버의 캐릭터셋을 확인하여 툴에서 캐릭터셋을 일치시키 후 접속하여 작업을 하여야 한다.

1. TABLE COMMENT 추가
COMMENT ON TABLE 테이블명 IS '주석문'

2. COLUMN COMMENT 추가
COMMENT ON COLUMN 테이블명.필드명 IS '주석문'

3. TABLE COMMENT 삭제
COMMENT ON TABLE 테이블명 IS ''

4. TABLE COMMENT 확인
SELECT * FROM ALL_COL_COMMENTS WHERE TABLE_NAME = '테이블명';
2013/03/27 15:48 2013/03/27 15:48

2005 smss 에선 auto close 가 true 더라도 디비 리스팅에 문제가 없는데
2008 에서 거기서 에러가 나면서 리스팅이 안되네요.
2008 smss 버그라는 생각이 대세네요.

select * from sys.databases where is_auto_close_on = 1 로 확인 시 결과값으로 나오는 디비의 속성에서
auto close 를 false 로 변경하면 이 문제를 해결할 수 있음.

http://groups.google.co.kr/group/microsoft.public.sqlserver.tools/browse_thread/thread/c159cb0de2e9b81c 
2013/03/22 16:23 2013/03/22 16:23

http://qmail.kldp.net/wiki/wiki.php/qmail_antispam


http://mediakorea.net/sirboard/board_view.php?sm_id=JSPstudy&sb_id=558&search_category=&search_select=&search_text=&search_op=&page=15&next_num=

http://hatsari.egloos.com/2066595


Qmail을 이용한 SMTP 운용

Qmail을 이용한 SMTP 운용

1.qmail, spamGuard 설치
qmail 설치(qmail-scanner, smtp-auth 포함) :
http://qmail.kldp.org/ 

spamGuard 설치는 이전글을 참조하세요!!! ^^

큐메일 설치시 리눅스 설치 후 퍼미션을 변경하지 않고 설치해야 합니다.

2. qmail 운용

2.1 첨부파일 용량
/var/qmail/control/databytes 에 바이트 단위로 입력합니다. 실제 첨부 가능 용량은 설정 용량의 70% 정도로 보면 됩니다. 설정 후 /etc/init.d/qmail reload or restart

2.2 동시 접속자 수 제한
# cat /var/qmail/supervise/qmail-smtpd/run
1 #!/bin/bash
2 QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
3 export QMAILQUEUE
4 ALIAS_UID=`id -u alias`
5 ALIAS_GID=`id -g alias`
6 exec /usr/local/bin/softlimit -m 9000000
7 /usr/local/bin/tcpserver -v -p –c200 -x/etc/tcp.smtp.cdb -u $ALIAS_UID -g $ALIAS_GID 0 25
8 /var/qmail/bin/qmail-smtpd webmail.kobis.net
9 /bin/cmd5checkpw /bin/true 2>&1

7번 라인의 –c100 을 변경하고 재시작하면 됩니다. 만약 설정하지 않는다면 기본값은 40입니다.

2.3 동시 처리량 제한
# cat /var/qmail/control/concurrencyremote
50
동시 처리량을 제한하고자 하면 값을 적절히 변경해 주면 됩니다. 로컬에서 발송되는 메일에 대한 처리량은 /var/qmail/control/concurrencylocal 에 설정하면 됩니다.
concurrencyremote는 값은 동시 메일 발송량 즉 참고인 수와 관련이 있는 것 같습니다.

기타 설정 파일에 대한 설명은 다음 표를 참조하시기 바랍니다.

Control 파일 Default 사용 설명
rcpthosts 없음 qmail-smtpd 메일을 받아들일 도메인(들)
badmailfrom 없음 qmail-smtpd 이 메일주소로 부터 오는 메일은 553 sorry, your envelope sender is in my badmailfrom list 라는 메세지와 함께 무조건 User unknown으로 bounce 한다.
bouncefrom MAILER
-DAEMON qmail-send bounce 할때 메일의 from: 헤더에 들어갈 유저 이름.
bouncehost me qmail-send bounce 할때 메일의 from: 헤더에 들어갈 호스트 이름.
concurrencylocal 10 qmail-send 로컬 메일 배달시 qmail-send의 동시 최대 프로세스의 수를 조절
concurrencyremote 20 qmail-send 리모트 메일 배달시의 qmail-send 동시 최대 프로세스 수를 조절
databytes 0 qmail-smtpd 메일의 최대 크기(byte, 0 = 무제한)
doublebouncehost me qmail-send double bounce 된 메일을 수신할 호스트
doublebounceto postmaster qmail-send double bounce 된 메일을 받을 유저
envnoathost me qmail-send 메일주소에 @ 가 명시되지 않았을 경우의 디폴트 도메인 이름
helohost me qmail-remote SMTP HELP 명령에 표시될 호스트 이름
localiphost me qmail-smtpd 로컬 IP 주소가 대체될 이름
locals me qmail-send 로컬로 인식하며 배달할 도메인(들)
me 시스템의 FQDN   다른 콘트롤 파일을 위해 쓰임
morercpthosts 없음 qmail-smtpd 두번째 rcpthosts 파일
percenthack 없음 qmail-send "%"-형식의 릴레이를 사용 할 수 있는 도메인
plusdomain me qmail-inject domain substituted for trailing "+"
qmqpservers 없음 qmail-qmqpc QMQP 서버의 IP 주소
queuelifetime 604800 qmail-send 메세지가 메일 큐안에 머물 수 있는 시간 (초단위)
smtpgreeting me qmail-smtpd SMTP greeting message
smtproutes 없음 qmail-remote artificial SMTP routes
timeoutconnect 60 qmail-remote SMTP 연결 대기 시간 (초)
timeoutremote 1200 qmail-remote 리모트 서버 연결 대기 시간 (초)
timeoutsmtpd 1200 qmail-smtpd SMTP client 대기 시간 (초)
virtualdomains 없음 qmail-send 가상 도메인들과 유저들
defaultdomain me qmail-inject 기본 도메인 이름
defaulthost me qmail-inject 기본 호스트 이름
idhost me qmail-inject Message-ID 에 사용될 호스트 이름

2.4 특정 도메인 발송 제한
/var/qmail/control/badmailfrom에 해당 이메일이나 도메인을 추가하고 큐메일을 재시작할 필요는 없습니다.
spammer@spammer.com <- 메일 주소
@nospam.com < - 도메인

2.5 메일큐 삭제
qmHandle이라는 프로그램을 이용해서 서버에 쌓인 큐를 삭제할 수 있습니다.
/var/qmail/bin/qmHandle에 존재합니다.
사용법:
qmHandle v1.0.0
by Michele Beltrame
-l : 리스트 보기
-L : 로컬 큐 보기
-R : 리모트 큐 보기
-s : 상태 보기
-vN : 해당 번호의 메시지 보기
-dN : 해당 번호의 메시지 삭제
-D : 리모드&로컬 모든 큐 삭제
Additional (optional) parameters are:
-c : 컬러 출력
-N : 해당 번호의 메시지 보기
(-l, -L or –R 함께 사용 가능함)

2.6 메일 서버 인증 에러 메시지 편집
# cat /usr/local/src/qmail/qmail-1.03/qmail-smtpd.c
/* void err_nogateway() { out("553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)rn"); } */
void err_nogateway() { out("553 보내는 메일 서버에 접속 중 인증 에러가 발생하였습니다. 보내는 메일 서버 인증을 요청하시기 바랍니다. 감사합니다. Tel: 02-xxxx-0xxx, Email: webmaster@xxx.net (#5.7.1)rn"); }
수정이 끝났으면 큐메일을 멈춘 후 make clean && make setup check 로 재컴파일 설치해 주면 됩니다.

2.7 인증 아이디 패스워드 설정
# cat /etc/poppasswd

smtp_id:smtp_password

위와 같이 아이디:패스워드 방식으로 추가하시면 됩니다.

3. qmailscanner 운용
3.1 rule 적용
# cat /var/spool/qmailscan/quarantine-attachments.txt

.pif 0 PIF files not allowed per Company security policy
첨부파일 확장자가 .pif이고 사이즈가 0인 메일을 필터링합니다. 실제 사이즈가 정확히 체크되지 않는 관계로 불필요한 확장자를 제한하는 방식이 됩니다.

# W32.Frethem.J@mm
.*Re: Your password!.* Virus-Subject: Your message may contain W32.Frethem.J@mm
제목에 해당 문자열이 있을 경우입니다.

# Refuse to Portal Siteㅁ
.*@hanmail.net.* Virus-RCPTTO: 한메일 메일 발송 불가…..
수신지 메일 주소로 메일을 필터링합니다.

룰 추가시 주의하실 점은 센드메일과 마찬가지로 각 필드는 탭으로 구분해야 합니다.

룰 추가 후 데이터 베이스를 생성한 후 큐메일을 재시작합니다.
# /var/qmail/bin/qmail-scanner-queue.pl -g
perlscanner: generate new DB file
perlscanner: total of 20 entries.

3.2 바이러스 로그 삭제
다음과 같이 크론에 등록하여 바이러스 로그를 주기적으로 삭제합니다.
0 5 * * * /bin/rm -rf /var/spool/qmailscan/viruses/new/* > /dev/null 2>&1
7 5 * * * echo > /var/spool/qmailscan/qmail-queue.log > /dev/null 2>&1

3.3 바이러스 알림 메일 삭제
바이러스에 감염된 메일이 발송될 경우 발송자 및 root에게 메일이 발송됩니다. 따라서 root, postmaster로 오는 메일을 postman이라는 계정을 생성 후 해당 계정의 메일을 주기적으로 삭제합니다.

포워딩 설정
# ls –al /home/vpopmail/domains/mail.kobis.net
drwx------ 6 vpopmail vchkpw 4096 Apr 23 11:43 .
drwx------ 3 vpopmail vchkpw 4096 Apr 23 11:20 ..
-rw------- 1 vpopmail vchkpw 34 Apr 23 11:42 .dir-control
drwx------ 3 vpopmail vchkpw 4096 Apr 23 11:25 kobis
drwx------ 3 vpopmail vchkpw 4096 Apr 23 11:42 postman
drwx------ 3 vpopmail vchkpw 4096 Apr 23 11:20 postmaster
-rw------- 1 vpopmail vchkpw 55 Apr 23 11:20 .qmail-default
-rw-r--r-- 1 root root 24 Apr 23 11:43 .qmail-postmaster
-rw-r--r-- 1 root root 24 Apr 23 11:43 .qmail-root
drwx------ 3 vpopmail vchkpw 4096 Apr 23 11:25 root
-rw------- 1 vpopmail vchkpw 462 Apr 23 11:42 vpasswd
-rw------- 1 vpopmail vchkpw 2598 Apr 23 11:42 vpasswd.cdb
-rw------- 1 vpopmail vchkpw 0 Apr 23 11:42 .vpasswd.lock

여기서 .qmail-root, .qmail-postmaster 파일에 포워딩 설정을 합니다.
# cat /home/vpopmail/domains/mail.kobis.net/.qmail-root
&postman@mail.kobis.net 

postman에게 오는 메일을 크론에 등록하여 주기적으로 삭제합니다.
*/5 * * * * /bin/rm -rf /home/vpopmail/domains/mail.kobis.net/postman/Maildir/new/* > /dev/null 2>&1

4. spamGuard 운용
위 설치 문서를 참고하시면 되면 주기적으로 메일 로그를 감시하도록 크론에 등록해 줍니다.
# spamGuard설정
*/5 * * * * /usr/local/bin/spamGuard -w 100 -b 210 -p 1000 > /dev/null 2>&1

출처 : http://applewer.chonnom.com/2011/01/qmail-smtp.html
2013/03/20 11:58 2013/03/20 11:58

soap toolkit

Windows 2013/03/18 19:34
http://www.microsoft.com/en-us/download/search.aspx?q=soap&p=1&r=10&t=90&s=Relevancy~Descending
2013/03/18 19:34 2013/03/18 19:34

에러로그:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
 ...., which  is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.


자상하게도 autoReconnect=true 로 바꾸거나 wait_timeout 을 수정하라고 한다..

wait_timeout 은 connection 증가로 그리 땡기진 않고..autoReconnection 을 추가하기로 했다.
설정은 jdbc 커넥션 설정 파일에서 url 에 "autoReconnection=true" 를 넣어주면 된다.

* url=jdbc:mysql://ip:port/dbname?useUnicode=true&characterEncoding=utf8&autoReconnect=true
* validationQuery="select 1"

그리고 이 외에도 validationQuery를 넣어주는 데 이유는 한번 커넥션이 끊어진다음 재시도를 하는 경우 문제가 있는 처음 한번의 시도는 에러가 나게 된다. 이때 넣어주는게 validationQuery로 모든 사용자쿼리를 실행 전에 한번 이 쿼리를 실행하게 된다.(그러므로 DB로서는 추가적인 부하가 됨) 쿼리가 한번 더 실행되는 것인 만큼 가장 간단한 쿼리여야 한다.

>validationQuery description

Parameter Default Description
validationQuery The SQL query that will be used to validate connections from this pool before returning them to the caller. If specified, this query MUST be an SQL SELECT statement that returns at least one row.



보통은 SELECT 1 을 많이 쓴다.(oraqle은 SELECT 1 FROM DUAL)
추가적인 쿼리인 만큼 access가 많은 곳에선 조심해서 써야 할듯?

jdbc 설정과 관련된것은 아래 링크를 참조함..
http://commons.apache.org/dbcp/configuration.html

출처 : http://netholic.tistory.com/137
2013/03/12 13:55 2013/03/12 13:55

-- 테이블별 사용 용량
SELECT table_name = convert(varchar(30), min(o.name))
 , table_size = ltrim(str(sum(cast(reserved as bigint)) * 8192 / 1024.,15,0) + 'KB')
FROM sysindexes i
  INNER JOIN
  sysobjects o
  ON (o.id = i.id)
WHERE i.indid IN (0, 1, 255)
AND  o.xtype = 'U'
GROUP BY i.id

-- 용량별 소팅
SELECT table_name = convert(varchar(30), min(o.name))
 , table_size = convert(int, ltrim(str(sum(cast(reserved as bigint)) * 8192 / 1024., 15, 0))), UNIT = 'KB'
FROM sysindexes i
  INNER JOIN
  sysobjects o
  ON (o.id = i.id)
WHERE i.indid IN (0, 1, 255)
AND  o.xtype = 'U'
GROUP BY i.id
ORDER BY table_size DESC

-- 테이블별 Row 수
SELECT o.name
 , i.rows
FROM sysindexes i
  INNER JOIN
  sysobjects o
  ON i.id = o.id
WHERE i.indid < 2
AND  o.xtype = 'U'
ORDER BY i.id

출처:http://ariswear.com/new_blog/entry/MSSQL-Table-%BA%B0-%BF%EB%B7%AE-%B9%D7-Row-%BC%F6-%C1%B6%C8%B8

2013/03/08 14:00 2013/03/08 14:00
$HTTP_SESSION_VARS[] 변수형식은 php 5.2 이하부터 사용이 가능하며,
php 5.3 이상부터는 사용할 수 없어 로그인이 안되는 경우가 발생한다.

버전을 php 5.2로 변경하면 정상적인 것을 확인할 수 있다.
2013/03/01 12:00 2013/03/01 12:00
config.php 파일의 $g4['cookie_domain'] = ".도메인"; 설정이 사용하는 도메인으로 되어 있는 지 확인하면 된다.
2013/02/27 17:48 2013/02/27 17:48

$_FILES['userfile']['tmp_name'] 값이 출력되지 않는다면,

MAX_FILE_SIZE 설정에 걸려 발생되는 것이니 사이즈를 키운후 확인해 보면 된다.


form.php

<form enctype="multipart/form-data" action="up.php" method="POST">
    <!-- input의 name은 $_FILES 배열의 name을 결정합니다 -->
    이 파일을 전송합니다: <input name="userfile" type="file" />
    <input type="submit" value="파일 전송" />
</form>

up.php
<?php
$uploaddir = '/home/hosting_users/rightedu/www/uploads/lets_question/';
$uploadfile = $uploaddir . $_FILES['userfile']['name'];

echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "파일이 유효하고, 성공적으로 업로드 되었습니다.\n";
} else {
    print "파일 업로드 공격의 가능성이 있습니다!\n";
}

echo '자세한 디버깅 정보입니다:';
print_r($_FILES);

print "</pre>";

?>
2013/02/25 15:26 2013/02/25 15:26