블로그 이미지
Rootrator
1개를 알면 모르는 10개가 튀어나온다..!

calendar

1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

Notice

2011. 3. 17. 11:56 Windows
출처 : 마이크로소프트

SMTP 서비스를 테스트하려면 다음과 같이 하십시오.
  1. Windows Server 2003을 실행하는 컴퓨터의 명령 프롬프트에서 Telnet을 입력한 다음 Enter 키를 누릅니다.
  2. 텔넷 프롬프트에서 set LocalEcho를 입력하고, Enter 키를 누르고, open <machinename> 25를 입력한 다음 Enter 키를 누릅니다.

    다음과 비슷한 출력이 표시됩니다.
    220 computername.microsoft.com ESMTP Server (Microsoft Exchange Internet Mail Service 5.5.2651.58) ready
    					
  3. helo me를 입력한 다음 Enter 키를 누릅니다.

    다음과 비슷한 출력이 표시됩니다.
    250 OK
    					
  4. mail from:email@domain.com을 입력한 다음 Enter 키를 누릅니다.

    다음과 비슷한 출력이 표시됩니다.
    250 OK - mail from <email@domain.com>
    					
  5. rcpt to:youremail@yourdomain.com을 입력한 다음 Enter 키를 누릅니다.

    다음과 비슷한 출력이 표시됩니다.
    250 OK - Recipient <youremail@yourdomain.com>
    					
  6. Data를 입력한 다음 Enter 키를 누릅니다.

    다음과 비슷한 출력이 표시됩니다.
    354 Send data.  End with CRLF.CRLF
    					
  7. Subject:This is a test를 입력한 다음 Enter 키를 차례로 두 번 누릅니다.
  8. Testing을 입력한 다음 Enter 키를 누릅니다.
  9. Enter 키를 누르고 마침표(.)를 입력한 다음 Enter 키를 누릅니다.

    다음과 비슷한 출력이 표시됩니다.
    250 OK
    					
  10. quit를 입력한 다음 Enter 키를 누릅니다.

    다음과 비슷한 출력이 표시됩니다.
    221 Closing Port / Mail queued for delivery
    					




반응형
posted by Rootrator
2011. 3. 16. 14:33 Mssql

mssql을 이용해서 BAK파일로 백업을 받은 후에

사용자와 DB를 지우고 나서

다시 복원을 해야하는데 DB명과 사용자 명은 똑같이 다시 생성하고 DB복원을 진행했지만

실제 웹상에서는 500에러가 떠버렸다.

분명 복원 후 설정상에 문제는 없었고, 소스상에서도 ID,PW,DB명 모두 일치했다.


허나 간과한게 있었으니...Mssql상에서 유저GUID다..

이것이 syslogins.sid와 다르기 때문이다...염병 ㅠㅠ

sp_change_users_login 'Report'
go

위 쿼리로 붕떠버린 유저가 나오는데 이 유저 ID를 기억하고

sp_change_users_login 'Update_one', '유저ID', '유저ID'
go


이제 로그인이 정상적으로 되면서 페이지가 제대로 열린다..



반응형

'Mssql' 카테고리의 다른 글

DTS 가져오기/내보내기 오류  (0) 2011.11.29
MSSQL-2000 서비스팩 확인  (0) 2011.03.24
Mssql 테이블 소유자 변환  (0) 2011.03.02
Msslq 테이블 복제  (0) 2011.03.02
MSSQL 용량 확인 및 설정  (0) 2011.02.28
posted by Rootrator
2011. 3. 4. 12:26 Network


◆IP Address
 Layer3의 주소 체계
 - 서로다른 Network로 통신시 사용되는 주소(규약)
 - IP는 Unicast, Broadcast, Multicast를 사용하여 통신을 실시
 Unicast > 1:1통신(신뢰성이 제일 높으나 비효율적)
 Broadcast > 1:N통신(Broadcast는 긴급메세지로 처리. 필요없는 정보임에도 우선순위가 부여됨)
 Multicast > 1:Group통신(Header에 Destication Address가 다를경우 Drop. Broadcast과 같으나 거부권이 있음)

 

◆class(제일 첫번째 옥텟에서 나뉨)
 A class
 -> 0 ~ 127(00000000 ~ 01111111) 실제로 (1~126까지 사용. 0과 127은 예약주소) ex>127은 loopback주소
예약 
 0.0.0.0 ~ 127.255.255.255
 B class
  -> 128 ~ 191(10000001 ~ 10111111)
 C class
 -> 192 ~ 223(11000000 ~ 11011111)
----------------------------------Unicast용(모든 인터넷망은 A,B,C로 구성)
 D class
 -> 224 ~ 239(11100000 ~ 11101111)
----------------------------------Multicast용
 E class
 -> 240 ~ 255(11110000 ~ 11110111)
----------------------------------연구용, 예비용

◆Subnet Mask
 -네트워크와 호스트를 구분하는 역활
 1 -> Network(공통비트)
 0 -> Host(비공통비트)
 
 11110000, 10000000, 11111110은 서브넷마스크 가능
 11101110, 11000111, 00011111은 서브넷마스트 불가능

 즉, 1로 시작하되(128) 연속성을 지녀야 함

 11111111.11111111.00000000.11111111 -> 사용 불가
 11111111.11111111.00000000.00000000 -> 사용 가능

 A class 255.0.0.0 => host 2^24 => 16777216개의 IP

 B class 255.255.0.0 => host 2^16 => 65536개의 IP

 C class 255.255.255.0 => host 2^8 => 256개의 IP

 D class => 없음. 낱개의 개념(묶음의 개념이 아님)

반응형

'Network' 카테고리의 다른 글

Root 네임서버 업데이트 주기  (0) 2013.03.29
3com 스위치 초기화  (1) 2012.11.28
TTL 값  (0) 2011.04.05
서버 Ethernet 속도 잡아주기  (0) 2011.03.28
posted by Rootrator
2011. 3. 4. 12:19 Linux

출처 : linux.co.kr

도메인 Redirection 하기

여러개의 도메인을 가지고 있는데 한가지 도메인으로 출력되게 하기위해 우리는 도메인 Redirection을 한다.

redirection 하는 방법은 rewrite 모듈과 redirection 을 이용하는 두가지가 있다.

여기서 설명되는 도메인들에 대해 사전 설명을 하자면

linux.co.kr    www.linux.co.kr     linux.kr     www.linux.kr

이렇게 이용한다고 하자. 웹에서 각 도메인을 입력했을때 www.linux.kr 으로 출력되게 해보자

httpd.conf 파일의 내용중에 도메인의 설정이 있을 것이다.

여기서 각 방법에 대해 적어보면

- Rewrite 모듈을 이용하는 방법

<VirtualHost *:80>
    DocumentRoot /home/linux
    ServerName linux.kr
    ServerAlias www.linux.kr
    ServerAlias linux.co.kr
    ServerAlias www.linux.co.kr
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^(linux\.kr|www\.linux\.co\.kr|linux\.co\.kr)
    RewriteRule   (.*) http://www.linux.kr$1 [R,L]
</VirtualHost>

- Redirect 를 이용하는 방법

<VirtualHost *:80>
        ServerName      www.linux.kr
        DocumentRoot    /home/linux
</VirtualHost>
<VirtualHost *:80>
    ServerName linux.kr
    Redirect / http://www.linux.kr
</VirtualHost>
<VirtualHost *:80>
    ServerName linux.co.kr
    Redirect / http://www.linux.kr
</VirtualHost>
<VirtualHost *:80>
    ServerName www.linux.co.kr
    Redirect / http://www.linux.kr
</VirtualHost>

Rewrite 모듈을 이용하기 위해 필요한 것들에 대해서 알아보자.

Rewrite 를 적용할 수 있는 범위 - 서버 전체에 설정할 수도 있고 특정 호스트에만 적용할 수도 있다.

Rewrite 모듈 지시자

RewriteEngine On / Off
Rewrite 엔진을 사용할지 여부를 설정한다. default는 off이다.
현재 Apache에서 실행중인 모든 RewriteRule을 비활성화 시킬때 RewriteRule 라인의 주석처리보다 RewriteEngin Off 로 해야 한다.

RewriteLog FILE-PATH
RewriteLog 지시자는 Rewrite 엔진의 로그를 기록할 파일을 지정한다.

RewriteLogLevel Level
RewriteLog 지시자로 설정한 로그파일에 기록할 로그들에 대해 얼마나 자세한 내용을 로그에 남길 것인가에 대해 설정하는 지시자이다.
Level 은 0~9까지 사용할 수 있으며 0은 기록하지 않겠다는 의미이다. 숫자가 높을 수록 자세한 로그를 기록한다.

RewriteCond TestString CondPattern
RewriteRule 과 함께 사용되는 규칙으로 RewriteCond 다음에 오는 RewriteRule은 RewriteCond 에서 설정한 패턴과 일치해야지만 RewriteRule을 실행한다.

RewriteRule Pattern Substitution
Rewrite 모듈의 실질적인 Rewrite 규칙들을 적용하는 지시자이다.
Pattern(input URL)을 Subtitution(Return URL)로 변경하기 위한 모든 규칙들은 이 지시자를 사용해서 설정해야 한다.
Pattern에는 Perl 정규표현식을 사용할 수 있기 때문에 Pattern의 규칙을 폭넓게 적용 가능하다.

기본 정규표현식
. : 다수의 한문자
? : 0개 이상의 한문자
* : 0개 이상의 문자열
+ : 1개 이상의 문자열
(chars) : (, ) 안의 문자 또는 문자열을 그룹으로 묶는다. 이 문자그룹은 Substitution에서 $N의 변수로 활용할 수 있다.
^ : 문자열의 첫부분을 지정
$ : 문자열의 끝을 지정
\ : 정규표현식에서 특별한 의미로 사용되는 문자의 특수기능을 제거
{n} : 정확히 n번 반복
{n,} : n번 이상 반복
{n,m} : n이상 m 이하 반복
[chars] : 문자들의 범위 또는 표현할 수 있는 문자들을 설정

정규표현식 단축표현들
[:alpha:] : 알파벳과 같은 표현, [a-zA-Z]
[:alnum:] : 알파벳과 숫자, [a-zA-Z0-9]
[:digit:] : 숫자, [0-9]
[:upper:] ㅣ 알파벳 대문자 [A-Z]

으로 간단하게 알아보았다.

반응형

'Linux' 카테고리의 다른 글

인증없이 ssh/rsync 접속하기  (0) 2011.04.05
가상호스트의 2차도메인에 접속되지 않을때  (0) 2011.03.28
bind (네임서버) 사용하기  (0) 2011.03.28
/etc/fstab 특정 LABEL에 대한 정보보기  (0) 2011.03.03
/etc/fstab  (0) 2011.02.25
posted by Rootrator
2011. 3. 4. 12:17 Scripts


관리하는 서버중 부하가 무거워 가끔 아파치가 죽어서 안올라오는 경우가 있다.

이전에 써먹었던 아파치 재시작 프로그램을 응용해서 쉘을 짜봤다.

#!/bin/sh

  if [ "`pgrep -x httpd | wc -l`" -eq "0" ] ; then
    /etc/init.d/httpd start
  fi

eq는 같다의 의미로
ge(크거나 같다),
gt(크다),
le(작거나 같다),
lt(작다)
등이 있다.

작성후 테스트
[root@localhost test]# service httpd stop
httpd 를 정지함:                                           [  확인  ]
[root@localhost test]# ./httpd_starter.sh
httpd (을)를 시작합니다:                               [  확인  ]

테스트 결과 정상적으로 작동을 하는것이 확인되었다.

이 쉘을 crontab에 등록하여 10분마다 돌아가도록 설정하였다.

0-59/10 * * * * /root/test/httpd_starter.sh

끝! 

반응형
posted by Rootrator
2011. 3. 3. 11:44 Linux


특정 라벨에 대한 정보를 얻고 싶을때 확인하는 방법이다.

#cat /etc/fstab
LABEL=/1                /                       ext3    defaults        1 1

LABEL-=/1이 ext3 파일시스템인지 확인 가능


#findfs LABEL=/1
/dev/sda3

장치명까지 확인 가능하다.

반응형

'Linux' 카테고리의 다른 글

인증없이 ssh/rsync 접속하기  (0) 2011.04.05
가상호스트의 2차도메인에 접속되지 않을때  (0) 2011.03.28
bind (네임서버) 사용하기  (0) 2011.03.28
[펌] 아파치에서 Redirection 사용하기  (0) 2011.03.04
/etc/fstab  (0) 2011.02.25
posted by Rootrator
2011. 3. 3. 11:19 Scripts

출처 : linux.co.kr

while ( true ) ; do
  if [ "`pgrep -x httpd | wc -l`" -ge "500" ] ; then
    /usr/local/apache/bin/apachectl restart
  fi   
  sleep 1
done

하나하나씩 살펴보자

while문은 어느 조건을 만족할때까지 계속적으로 실행되는 반복문이다.

그럼 그것이 어떤 조건이냐 함은

pgrep -x httpd | wc -l 이 500 이하일때, 즉 현재 서버에서 돌아가는 httpd 프로세스의 갯수가 500개

이하일때를 뜻한다.


httpd 갯수를 구하는 명령어를 살펴보자.

ps -e는 서버에서 돌아가는 프로세스 전체를 보여준다.

ps -e | grep -w httpd  여기서 -w는 단위단어 검색이다. 즉, https 같은 단어는 검색되지 않는다.

여기서 해당 줄을 카운트하는 명령어만 써주면 완성이다.

ps -ed | grep -w httpd | wc -l

이걸 더 간단화 시키면

pgrep -x httpd | wc -l

pgrep은 httpd 프로세스의 pid를 얻기 위해 쓰이는 명령어이다.

여기까지가 프로세스 갯수를 구하는 명령어..


다음으로 아파치를 재시작하는 명령어이다.

간단히 service httpd restart 하거나 /usr/local/bin/apachectl restart로 할 수 있으나,

간혹가다 죽지않고 뻐팅기는 프로세스가 있어서 시작이 안되는 경우가 있다.

이럴때는 강제로 프로세스를 죽이는 방법이 있다.

pgrep -x httpd | xargs kill -9

xargs는 앞에 pgrep에서 얻은 인자를 뒤의 kill -9의 인자로 넘겨주겠다는 명령어다.

이렇게되면 httpd 프로세스가 몇백개를 넘겨도 다 죽일수 있다.

자 이렇게 완성된 명령어로 아파치 재시작 프로세스가 완성되었는데.

sleep 1을 넣어 1초간 쉬어 서버의 부하를 덜어주면서 스크립트가 계속 실행될 수 있게 되었다.




반응형
posted by Rootrator
2011. 3. 3. 10:52 Security

Linux용 공개웹방화벽인 mod_security설치를 위해

 

Mod_uniq_id 모듈을 설치한 후에 웹방화벽까지 모두 설치하고

 

service httpd restart 하였으나

 

httpd (을)를 시작합니다: httpd: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

[실패] 

 

아파치 로그를 살펴보니

 

[Wed Feb 09 14:07:34 2011] [alert] (EAI 2)Name or service not known: mod_unique_id: unable to find IPv4 address of "######"

즉 모듈에서 자기 이름을 모르겠단 말이다.

 

/etc/hosts에 등록해 주도록 하자

 

ip  domain

 

반응형

'Security' 카테고리의 다른 글

su 제한하기  (0) 2012.01.02
리눅스 웹서버정보 숨기기  (0) 2011.12.13
/tmp 보안설정하기  (2) 2011.09.05
SPF 레코드 확인 방법  (0) 2011.04.14
SSH IP / 계정 차단  (0) 2011.03.24
posted by Rootrator
2011. 3. 2. 13:20 Mssql

MSSQL db복원을 할때 소유자까지 딸려서 복원이 되는 경우가 있다.

이 소유자는 로그인 정보가 없어도 db소유자로써 db사용자에 등록이 되어 있다.

삭제를 위해선 이 소유자를 해당계정으로 바꿔어 줘야 삭제가 가능하다.

즉 소유하고 있는 테이블 및 프로시저가 없어야 삭제가 가능하다.


Exec sp_changeobjectowner '전소유자.프로시저명(테이블명)', '바뀔 소유자'

 

반응형

'Mssql' 카테고리의 다른 글

DTS 가져오기/내보내기 오류  (0) 2011.11.29
MSSQL-2000 서비스팩 확인  (0) 2011.03.24
mssql DB복원 후 로그인이 되지 않을 때  (0) 2011.03.16
Msslq 테이블 복제  (0) 2011.03.02
MSSQL 용량 확인 및 설정  (0) 2011.02.28
posted by Rootrator
2011. 3. 2. 12:39 Mssql

간혹가다가 테이블만 복원해 달라는 고객이 있었다..

DB전체 복원은 참 쉽지만...

테이블 복원 뭐랄까...참 쌩뚱맞다.

DB하나를 생성해서 이전 백업본으로 복원 후 테이블만 복사하는 식으로 복원할때 썻던 방법이다.

<테이블 구조만 복사>
select * into [백업데이타테이블] from [복원할테이블] where '1' = '2';

<테이블 구조와 값까지 복사>
select * into [db명.소유자.테이블명] from [db명.소유자.테이블명] where '1' = '1';

위의 쿼리는 다른 DB간의 테이블 복사이다. 참고
반응형

'Mssql' 카테고리의 다른 글

DTS 가져오기/내보내기 오류  (0) 2011.11.29
MSSQL-2000 서비스팩 확인  (0) 2011.03.24
mssql DB복원 후 로그인이 되지 않을 때  (0) 2011.03.16
Mssql 테이블 소유자 변환  (0) 2011.03.02
MSSQL 용량 확인 및 설정  (0) 2011.02.28
posted by Rootrator