정규식과 awk , sed

1. 정규식에 대한 이해

grep,awk,sed,vi,perl등과 같은 명령어들을 패터처리 언어에서 사용하는 패턴에 대한 특정 규칙을 정규식(Regular Expression)이라고 부른다. 다시 말해서 패턴이란 "규칙적으로 기술된 문자열" 이라고 설명 할 수 있고 이런 규칙들을 표현하는 형식중의 한 방법이 정규식이다.

다음은 샘플 데이터 파일과 egrep 명령을 이용하여 정규식을 하나씩 설명하겠다.



<샘플 파일>
$ cat sampfile
This is sample data file
Hello This is Kim.
I`m so happy
Test100
test200
Are you unhappy ?



1) " ^ " : 행의 시작과 부합

$ grep "^H" sampfile
Hello This is Kim.



2) " $ " : 행의 끝과 부합

$ grep "happy$" sampfile
I`m so happy



3) " * " : 임의의 0개 이상의 문자와 부합

$ egrep "e*" sampfile
This is sample data file
Hello This is Kim.
I`m so happy
Test100
test200
Are you unhappy ?
$ egrep "ee*" samplefile
This is sample data file
Hello This is Kim.
Test100
test200
Are you unhappy ?
$ egrep "ppp*" sampfile
I`m so happy
Are you unhappy ?



4) " ? " : 임의의 0 또는 1개의 문자와 부합

$ egrep "pp?" sampfile
This is sample data file
I`m so happy
Are you unhappy ?



5) " + " : 임의의 1개 이상 문자와 부합

$ egrep "pp+" sampfile
I`m so happy
Are you unhappy ?



6) " . " : 임의의 한문자와 부합

$ egrep "y.." sampfile
Are you unhappy ?



7) " < " : 단어의 시작과 부합

" > " : 단어의 끝과 부합
$ egrep "happy" samplfile
I`m so happy
Are you unhappy ?
$ egrep "" sampfile
I`m so happy
$ egrep "happy>" sampfile
I`m so happy
Are you unhappy ?





8) " [문자들] " : 문자들에 포함되는 하나의 문자와 부합

" ^[문자들] " : 문자들에 포함되는 문자들을 제외한 하나의 문자와 부합
$ egrep "^[A-Z]" sampfile
test200
$ egrep "^[^A-Z]" sampfile
This is sample data file
Hello This is Kim.
I`m so happy
Test100
Are you unhappy ?
$ egrep "[0-9]$" sampfile
Test100
test200



9) 정규식과 부합하는 문자의 반복횟수

{숫자} : 정확히 지정된 숫자만큼 반복
{최소값,최대값}: 최소값부터 최대값까지 횟수 만큼 반복
ex) a{1} a가 정확히 한번 team , happy, goal
a{1,} a가 한번이상 반복 team. aang, aaaang
a{2,5} a가 2번이상 5번 이하 반복 aa, aaa, aaaa, aaaaa



10) " ( 패턴 ) " : 내부 표현식을 만든다.

패턴을 하나의 문자 처럼 사용한다.
" 숫자 " : 숫자번째 내부 표현식에 부합된 문자열을 다시 참조한다.
$ egrep `([A-Za-z0-9].*)(:.*){4}:/export/home/1:` /etc/passwd
결과> /etc/passwd 파일안에서 사용자의 login명과 기본 디렉토리명이 같은 사용자를 검색하여 출력한다.



11) " " : 정규식의 메타 문자가 아닌 문자 자체로 해석

$ egrep ".$" sampfile
Hello This is Kim.



2. awk

awk 은 설계자인 Aho, Weingrger, Kernighan의 첫글자로 명명되어진 패턴검색과 처리 기능을 가진 인터프리티드 프로그래밍 언어로서 필터링, 치환, 간단한 리포팅 작업을 제어할수 있다.



1) "awk" 형식

awk 프로그램은 세부분으로 구성되어 진다.

BEGIN Section : 파일을 읽기전에 실행
Pattern Statment Section : 파일의 각 레코드 라인을 읽어들일 때 마다 실행
END Section : 파일을 다 읽어들인 뒤 실행

BEGIN { statements ….}
/pattern expression / { statements .... }
END { statements… }


여러개의 statement를 한 라인에 쓸때는 statement ; statement 의 형식으로 기술한다.



2) awk 명령어 실행 방법



"awk" 프로그램을 명령어 상에서 입력하는 경우
$ awk `{print $0 }` datafile ....
단일인용문( ` ` ) 안에 프로그램을 기술한다. 데이터 파일을 정의하지 않으면 표준 입력으로부터 데이터를 입력 받는다.

awk 프로그램을 파일로 작성하는 경우는
$ awk -f awk-program-filename data-filenames

ex)
$ awk ` BEGIN { print "awk 프로그램 실행 연습입니다" } `
$
$ awk `{ print $1, $2 } ` data1
100 200
300 400
500 600
$
$ cat ex01
# This is sample file
BEGIN {
print "Hello, I`m Kim "
exit }
$
$ awk -f ex01
Hello, I`m Kim

$



3) 레코드

레코드는 입력된 파일의 한 줄을 말한다. 라인 전체의 내용은 $0 변수명으로 사용되며, 입력된 레코드 번호는 NR 이라는 변수로 표시 된다.

4) 필드

입력된 레코드에서 스페이스 또는 탭으로 구분되는 문자들을 말한다. 각각의 필드는 $1,$2,$3,....$n 으로 필드위치에 따라 변수명으로 표기되며 현재 필드값은 NF 변수로 표시된다.

5) 변수

위치변수 는 필드 또는 레코드를 나타낸다.
$0 : 현재 입력된 레코드를 나타내는 변수
$1 : 현재 입력된 레코드의 첫 번째 필드를 나타내는 변수
$n : 현재 입력된 레코드의 n번째 필드를 나타내는 변수

재정의 변수는 입력된 레코드의 구성과 크기에 대한 정보를 제공한다.
NR : 레코드 수
NF : 필드 수
FS : 필드 구분 문자
RR : 레코드 구분 문자
OFS : 출력 필드 구분 문자
ORS : 출력 레코드 구분 문자
FILENAME : 현재 입력된 파일 이름
OFMT : 출력 인쇄 형식

사용자 정의 변수는 프로그램의 어느 곳에서도 사용자가 정의하여 사용 할 수 있으며, 숫자 또는 문자열 값을 가진다. 초기화 하지 않으면 자동적으로 null(0) 문자를 가진다.

ex)
$ cat data1
100 200
300 400
500 600
$ cat ex02
BEGIN { OFS="------" }
{ print $1,$2 }
$
$ awk -f ex02 data1
100------200
300------400
500------600
$
$ cat ex03
{ x = $1 + $2
y = y + x }
END { print y }
$
$ awk -f ex03 data1
1600
$



6) 패턴 과 연산자



패턴의 형식은 egrep과 유사한 형식을 가진다. 정규식을 사용하여 패턴을 구성할 수 있으며 패턴은 "/ /" 형식으로 지정한다.
"/ /,/ /" 형식을 사용하여 패턴으로 범위를 지정할 수 있다.

ex)

$ cat ex04
$2 ~ /^[0-9]+$/ { print $2 }
-> 두 번째 필드가 숫자로만 구성되어 있으면 두 번째 필드값을 출력
$ awk -f ex04 data1
200
400
600
$
$ cat ex05
$0 ~ /[Ee]nd/ { print "end of", FILENAME }
$
-> 읽어 들인 레코드의 값이 End 또는 end이면 "end of data1" 과 같은 형식으로 출력
$ cat ex05_1
/Begin/,/End/ { total += $1 }
END { print "Total = " total }

연산자는 관계연산자, 패턴 연산자, 산술연산자, 지정 연산자, 복합지정연산자, 증감연산자 가 있다.
관계연산자는 숫자 또는 스트링 값을 비교할 때 사용한다.

== 같다
!= 같지 않다
> 크다
< 작다
>= 크거나 같다
<= 작거나 같다

ex)

NF != 5 { print "필드수가 5개가 아님"}
$1 >= 10000 { print "첫번째 필드값이 10000 보다 크거나 같다" }
$1 >= "s" { print " 첫 번째 필드가 s 보다 뒷문자(tuvw..)이다"}
$1 < $2 { print "두번째 필드 값이 첫 번째 필드 값보다 크다"}



패턴연산자는 스트링 패턴과의 일치 여부를 비교할 때 주로 사용 된다.

~ 패턴과 일치
!~ 패턴과 같지 않다.



ex)
$1 !~ /^[0-9]+$/ { print "첫번째 필드가 숫자가 안니다" }
$2 ~ /korea/ { print "두번째 필드값이 korea 이다"}



산술연산자는 수식 계산에 사용된다
+ 더하기
- 빼기
* 곱하기
/ 나누기
% 나누어서 남은 나머지



지정 연산자는 오른쪽 값을 왼쪽 변수에 대입한다
= 지정연산
ex) a = 10



복합 지정 연산자는 산술연산자와 지정연산자를 결합해서 사용한다
+= , -=, *=, /=, %=

ex) a += 5 : a = a + 5 와 같은 문장이다.

증감 연산자는 값을 1씩 증가하거나 감소 시킬 때 사용한다

++ 1 증가
-- 1 감소

ex)
$ cat ex06
END { a = 0
print "a++ = ", a++
print "a-- = ", a--
exit
}

$ cat ex07
BEGIN { a = 0 }
$1 > 100 { a++ }
END { print "첫번째 필드의 값이 100보다 큰 경우는 ", a, "번입니다" }
$

$ awk -f ex07 data1
첫번째 필드의 값이 100보다 큰 경우는 2 번입니다



7) 출력문

print 문은 출력하고자하는 문자열은 "출력내용" 의 형식으로, 변수값은 변수명을 사용하여 출력한다.
" , " (쉼표)는 "print"문 안에서 필드를 구분한다. "" 사이의 문자열은 하나의 필드로 취급된다.
출력방향을 조정하기위해 " > " 문자와 " >> " 문자를 사용할수 있다. 출력될 파일이름은 인용부호("")안에서 사용한다.

ex)
$ cat ex08
{ print $1,$2 > "sample"}
$
$ awk -f ex08 data1
$ cat sample
100 200
300 400
500 600

"printf" 문을 사용하여 출력 양식을 지정할 수 있다.
사용형식은 printf "format",expression1, expression2,..... 이다.
format에서 변환사양은 % 기호를 붙여서 표시한다

%d 십진수
%o 8진수
%x 16진수
%s 문자열
%f 소수
%e 지수를 사용한 소수
%g %f,%e중 짧은 형태의 출력을 사용한다.

ex)
$ cat ex09
$1 ~ /^[0-9]+$/ { printf "첫번째 필드 값은 %d 입니다n",$1 }
$
$ awk -f ex09 data1
첫번째 필드 값은 100 입니다
첫번째 필드 값은 300 입니다
첫번째 필드 값은 500 입니다
$



파이프(|)를 사용하여 " print"문의 출력을 UNIX 시스템 명령어의 입력으로 사용할 수 있다. awk 안에서 유닉스 명령과 인수를 사용하는 경우는 인용부호(" ")로 묶어서 사용한다.

$ cat ex09
END { print " Pipe Test ...Is it OK? " | "mail guest" }
$
$ awk -f ex08 data1
$ login guest
Welcome to guest account
You have mail



8) 프로그래밍 언어 구조 제어문들



" if " 문

ex)
{ if ( $1 < 100 && $2 > $3 )
{ print "첫번째 필드값이 100보다 작고 두 번째 필드값이 세 번째 필드값 보다 큽니다" }
}

ex)
{ if ( $1 > 100 || $2 >100 )
{ print "첫번째 필드값이 100보다 크거나 두 번째 필드값이 100보다 큽니다" }
}



" while " 문

{ i = 1
while ( i <= NF )
{ print "필드수가 1개보다 작거나 같습니다" }
}



" for " 문

ex)
$ cat ex10
{ for ( a = 1 ; a <= NF ; a++ ) print NR,a ,$a }
$ awk -f ex10 data1
1 1 100
1 2 200
2 1 300
2 2 400
3 1 500
3 2 600
$



" break "문은 순환문의 수행을 중지 시키고 순환문 밖의 문장을 수행한다


" continue "문은 순환문의 수행을 중지하고, 순환문의 처음 조건을 테스트한다.


" next " 문은 다음 입력 레코드를 읽어 들이고 프로그램 수행은 패턴문의 처음을 수행한다.


" exit " 문은 프로그램 실행을 종료한다



ex)
$ cat ex11
{ for ( n = 1; ; n++ )
{ if ( n <= NF ) { print NR, n, $n
continue }
break
} }
$
$ cat ex12
NF > 2 { print NR, NF; next }
$
$ cat ex13
$1 > 100 { print NR, " $2= ", $2, "$2값 오류"
exit 99 }
$



9) awk에서 많이 사용되는 함수들



" length " 함수는 주어진 문자열의 문자 개수를 반환한다. length 함수에 인수가 없으면 현재 입력 레코드의 문자수를 반환한다.

$ cat ex14
{ print NR, "입력된 문자열의 문자수는 " , length, "개입니다" }
$

$ cat ex15
{ print NR, "첫번째 필드의 문자수는 ", length($1), "개입니다" }
$



" substr " 함수는 지정한 문자열에서 원하는 개수 만큼의 문자들을 추출하여 반환한다

$ cat ex16
BEGIN {
print substr("Happy Birthday",7,9)
exit }

$ awk -f ex16
Birthday



" index " 함수는 문자열에서 지정하는 문자열이 있는 위치를 나타낸다. 문자열에서 지정한 문자열이 포함되어 있지 않은 경우는 0 값을 반환한다.

$ cat ex17
BEGIN {
print index("Hello This is Kim","This")
exit
}

$ awk -f ex17
7
$



" sprintf " 함수는 printf함수와 사용방법이 유사하지만 출력의 방향이 지정연산자의 왼편에 있는 변수명이다.

$ cat ex18
{ var = sprintf("출력연습 : 첫 번째 필드 : %d ",$1)
print var
}
$

$ awk -f ex17 data1
100
300
500
$



3. sed



sed는 stream editor의 약어이며 문자를 스트림으로 나타나는 입력을 수정하거나 편집하는데 사용되는 툴입니다. 유닉스에서 제공하는 다른 편집기와의 차이점은 원본 파일을 변경시키지 않고 명령이 실행 되는 필터 기능을 가지고 있는 것입니다. 그래서 변경된 내용을 보존하기 위해서는 적절한 조치가 필요합니다.

1) "sed" 명령어 실행 형식

sed [-n][-e edit_command][-f command_file][ input_data_files ..]



옵션:
-n 결과행의 출력을 하지 않는다
-e 편집할 명령을 기술한다. 각각의 편집 명령마다 이 옵션을 붙인다
-f 편집할 명령을 파일로 작성한 뒤 파일에서 읽어서 명령을 실행한다
input_data_file 입력을 지정하지 않으면 표준입력으로부터 입력을 읽어 들인다.



사용 형식 예제:

$ sed -e `sed_command` -e `sed_command` .... filenames
$ sed -f sed_script_file filenames
$ cat datafile
Hello this is kim.
I`m so happy to meet you.
Test sample
sample program
Java programming



2) 라인 선택 출력과 파일로 출력



라인을 선택하여 출력할때는 -n 옵션과 sed명령중 p 명령을 이용하여 구현할 수 있다.

$ sed -n `1,3p` datafile <-- 1번-3번라인까지 출력한다.
Hello this is kim.
I`m so happy to meet you.
Test sample
$ sed -n `/^s/p` datafile
sample program : 라인의 시작이 `s`인 라인을 출력
$ sed `/^s/p` datafile
Hello this is kim.
I`m so happy to meet you.
Test sample
sample program
Java programming

$ sed -e `/^sample/w sam_file` datafile
$ cat sam_file

sample program



3) 삭제, 추가, 삽입, 치환



삭제예:
$ sed `1,3d `datafile
sample program
Java programming
$ sed `/^sample/,/^Java/d` datafile : 라인중 sample로 시작하는 라인 부터 Java로 시작하는 라인 까지 삭제
Hello this is kim.
I`m so happy to meet you.
Test sample



추가예:
$ cat file1 : 각 라인의 아래에 `=====` 라인이 추가된다

a
=====
$ sed -f file1 datafile
Hello this is kim.
=====
I`m so happy to meet you.
=====
Test sample
=====
sample program
=====
Java programming
=====



삽입예: : 각 라인 위에 `***` 라인이 추가된다
$ cat file2
i
***
$ sed -f sed_script_file filenames
***
Hello this is kim.
***
I`m so happy to meet you.
***
Test sample
***
sample program
***
Java programming



치환예:
$ sed -n `1,3s/t/T/gp` datafile :변경된 라인만 출력
Hello This is kim.
I`m so happy To meet you.
TesT sample

$ sed `1,3s/t/T/g` datafile :모든라인을 모두 출력
Hello This is kim.
I`m so happy To meet you.
TesT sample sample program
Java programming

$ sed -n `1,3s/t/T/gw sam_file2` datafile : 변경된 라인만 sam_file2 파일에 저장 한다
$ cat sam_file2
Hello this is kim.
I`m so happy To meet you.
TesT sample

$ sed `s//export/home/home3/g`]

`/` 문자는 ``문자를 사용하여 표시한다.
/export/home is user01`s base directory <-- 입력라인
/home3 is user01`s base directory <- 출력라인
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2005/07/04 16:08 2005/07/04 16:08
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/259

리눅스 시스템 관리자가 되기 위해서는 많은 것을 알아두어야 한다. 시스템 관리자의
관리 여하에 따라 많은 사람들의 시스템 장애를 초래할 수 있기 때문이다. 물론 시스
템 관리자가 모든 것을 미리 예방할 수 없다. 하지만 불가피한 상황을 제외하고는 시
스템이 정상적으로 작동되도록 해야한다.

이번호에는 시스템, 네트워크, APM, 메일, 보안, 장애발생시 복구등에서 일어날 수 있
는 시스템 관리자의 행동요령에 대해 알아볼 것이다. 시스템 관리자는 항상 모니터와
키보드아 함께 한다는 사실을 기억해야 한다.


[ 막강한 시스템 길들이기 ]



1. 바이오스 타이머 조정

시스템이 네트워크에 연결되어 있다면, 다음과 같이 한국 표준시간 서버에서 표준시간
을 받아서 설정할 수 있다.

# rdate -s time.kriss.co.kr

시스템이 온라인 상태가 아니라면 아래와 같이 수동으로 설정할 수도 있다.

# date -s \"1999-12-30 22:22:40\"

위와 같이 실행하면 실행할 때만 적용되므로 이후 시간이 늦어지는 것을 막기 위해서
는 주기적으로 변경 가능하게 크론(/etc/crontab)에 설정하는 것이 좋다.



2. .profile과 rc.local의 차이

.profile은 로그인시 적용되는 내용들이고, rc.local은 시스템 부팅시 실행해야 할 것
들을 적어 놓은 것이다. 사용자 홈디렉토리의 .profile이 /etc에 있는 설정 파일보다
우선하기 때문에 홈 디렉토리에 .profile에 패스를 설정해주거나 쉘환경 파일 등을 설
정해주면 계정 내에서 적용이 된다. rc.local에는 부팅시 가장 마지막에 실행되므로
일반적으로 부팅시 실행되어야 할 데몬 등을 적어준다.



3. 커널 컴파일시 시스템 자원 확인법

리눅스 시스템의 자원정보는 proc 파일시스템 구조를 통해서 알 수 있다. 이는 실제로
디스크 용량을 차지하는 파일들이 아닌 가상의 디렉토리 구조이며 리눅스 커널에 의
해 사용되는 시스템의 정보를 담는 곳으로 사용된다. 다음의 위치에서 하드웨어에 대
한 정보 및 시스템 관련 정보들을 확인할 수 있다.

-------------------------------------------------------------------------------
/proc/cpuinfo | CPU의 정보
-------------------------------------------------------------------------------
/proc/interrupts | interrupt 할당 정보
-------------------------------------------------------------------------------
/proc/ioports | I/O 포트 할당 정보
-------------------------------------------------------------------------------
/proc/devices | Character, Block 장치명
-------------------------------------------------------------------------------
/proc/swaps | 활성화된 스왑영역 정보
-------------------------------------------------------------------------------
/proc/meminfo | 물리적인 램용량, 램 사용량, 스왑 사용량 등
-------------------------------------------------------------------------------
표 1. proc 파일 시스템 구조를 통한 시스템 자원 정보

위와 같이 관련된 정보에 해당하는 파일 이름이 존재한다. 이 파일들은 텍스트 포맷이
므로 cat 명령을 통해서 확인할 수 있다.



4. vi 에디터로 유닉스에서 도스상의 ^M 문자 없애기

^M 문자를 공백으로 치환하면 된다.

:1,$s/^M//g



5. 특정 rpm 패키지의 설치 여부 확인

# rpm -qa | grep 패키지 명으로 확인할 수 있다.



6. RPM(Redhat Package Manager)에서 특정 패키지 복원시키기

rpm2cpio filename.rpm | cpio -I -make-deretories -E filename



7. TCP Syn Flooding 공격 대처방법

Tcp Syn Flooding은 웹으로의 공격이 대부분이므로 syn_recv 프로세스가 일정 개수가
넘게 되면 아파치를 재시작한다. 지속적인 공격일 경우 대처 방안으로 두 가지 방법이
있다. 첫째, sysctl -a | grep syn_backlog으로 확인 후 backlog를 늘려주거나 둘째,
sysctl -a | grep syncookies로 확인 후 syncookies의 값을 1로 바꾸어준다. syn_bac
klog의 값을 조정해주는 방법은 다음과 같다.

# sysctl -w net.ipv4.tcp_max_syn_backlog=1024
# echo 1024 > /proc/sys/net/ipv4/tcp_max_syn_backlog

syncookies의 값은 다음과 같이 변경이 가능하다.

# sysctl -w net.ipv4.tcp_syncookies=1



8. TCP Syn Flooding 공격 대처방법

Umount시 위와 같은 메시지가 나는 것은 unmount하려는 디렉토리에서 실행되고 있는
프로세스가 있기 때문이다. 예로 /tmp 디렉토리를 umount 시키려 할때 위의 메시지가
뜨는 경우 mysql.socket파일이 /tmp에 있는 경우를 들 수 있다. 이 경우에는 해당 파
일시스템에서 실행중인 프로세스를 제거해야 하나 일일이 제거가 번거로우므로 Fuser
에서 -k 옵션을 사용하면 간단히 해결할 수 있다.

Fuser -k 장치명



9. setuserid

디렉토리나 파일 퍼미션 중 setuid는 소유자의 권한을 잠시 빌려 실행 후 권한을 돌려
주고 실행을 마치게 되는데 실행도중 인터럽트가 발생한다면 정상적으로 권한을 반환
하지 못하게 되어 소유자의 권한을 그대로 가지고 있게 된다. 이때 파일의 소유자가
루트였다면 이것은 보안에 문제가 될수 있으며 이런 점을 이용해 해킹에 많이 사용된
다. Setuid가 걸여 잇는 파일 중에 실행권하이 있으며 루트권한일 경우에는 위험하다.
특정 디렉토리에서 setuid가 걸려있는 파일을 찾으려면 find /usr -perm 4775와 같이
perm 옵션으로 찾을 수 있다.



10. bash_profile 변경 후 변경된 내용을 유효하게 만들기

다음과 같이 ~/.bash_profile를 실행해서 변경이 적용되도록 한다.

# source ~/.bash_profile



11. root 패스워드를 잊어 버렸을때 다시 세팅하는 방법

리눅스 시스템을 재부팅하고 lilo가 뜨면 \'\'linux single\'\'로 부팅한다. Tab 키를 누르
면 등록되어 있는 라벨이 모두 보이므로, 여기에서 선택하도록 한다. 부팅 후 쉘 명령
어 화면에서 /etc/passwd 파일에서 암호 부분을 삭제하거나 passwd를 실행하여 루트의
패스워드를 새로 설정해 준다.

# passwd root

위의 명령을 입력한 후 변경할 패스워드를 입력하면 된다.



12. 파티션을 나누는 이유와 기준

보통 파티션을 나누는 것에 대해서 별다른 고려없이 /로 모든 것을 잡아서 설치하는
경우가 종종 있다. 이럴 경우 설치시 편리하지만, 나중에 파일시스템에 문제가 생기거
나 효율적으로 파티션을 관리하기에는 많은 어려움이 있다. 파티션을 나눌때는 어떤
용도로 쓸것인지에 대해서 충분히 생각한 후 파티션을 해야 한다. 다음은 9.1GB 스카
시 하드디스크를 기준으로 웹 서버에서 이용될 서버에 대해 파티션한 경우의 예다.

-------------------------------------------------------------------------------
/boot | 30M | boot에 필요한 booting 지원 파일들이 있다.
| | 커널 컴파일시 1MB 씩 늘어난다는 것을 염두해 둔다.
-------------------------------------------------------------------------------
/ | 1000M |
-------------------------------------------------------------------------------
/usr | 2000M | 리눅스에서 사용되는 모든 application 및 시스템 파일들이 위치
| | 하고 있으며, library 파일과 실행파일이 존재한다.
-------------------------------------------------------------------------------
/var | 1000M |
-------------------------------------------------------------------------------
/tmp | 200M |
-------------------------------------------------------------------------------
/home | | 나머지 모두 웹 서버 용도로 사용한다면 home 부분에 자료가
| | 많아질 것이므로 home에 용량을 더 많이 배분했다. 이렇게 파티션
| | 을 나눠주면 서비스 거부 공격 방어, SUID 프로그램에 대한 보호,
| | 빠른 부팅속도, 백업과 업그레이드 등 관리의 편리성, 마운팅된
| | 파일 시스템에 대한 제어 가능성의 증대, 각 파일 시스템에 대한
| | 효율적인 제한이 가능하다는 이점이 있다.
-------------------------------------------------------------------------------
표 2. 9.1GB 스카시 하드디스크를 기준으로 한 웹 서버 파티션의 예



13. 기존의 ext2파일시스템과 저널링 파일시스템인 ext3, Reiser의 비교

-------------------------------------------------------------------------------
최대 파일사이즈 | ext2 | Journalling filesystem
| |---------------------------------------------
| | ext3 | Reiser FS
-------------------------------------------------------------------------------
최대저장용량 | 2TB (지원으로 | 4TB | 4GB of blocks, 16Tb
| 4TB까지 가능) | |
-------------------------------------------------------------------------------
블럭사이즈 | 1KB | 1KB - 4KB | Up to 64KB Currently
| | | Fixed 4KB 필요할 때마다
| | | 정확한 사이즈 할당가능
-------------------------------------------------------------------------------
최대 파일사이즈 | 2GB | 2GB | 4GB, 2^10 Petabytes in
| | | ReiserFS(3.6.XX)
-------------------------------------------------------------------------------
장점 및 단점 | 성능위주, 20KB | 파일복구 능력 | 공간저약 효과,
| 저장에 유리, | 뛰어남, 항상 로그 | 속도향상
| access 속도저하| 남기므로 속도 저하|
-------------------------------------------------------------------------------
표 3. ext2, ext3, Resiser의 특징 및 장담점

/var 디렉토리와 같이 항상 새로운 자료가 쌓이는 곳은 안정성이 우선시 되므로, ext3
파일시스템이 유리하며, /usr와 같이 내용 변화 없이 빠르게 액세스하여 쓸 수 있어야
하는 부분은 ext2 시스템을 이용하여 성능에 초점을 두면 좋을 것이다.



14. 기본 데이터 블럭 사이즈 1024KB와 4096KB의 차이

1024KB인 경우에는 블럭이 작은 만큼 4096KB보다 하드의 낭비가 적다. 1023KB의 데이
터를 저장하는 경우, 기본 블럭사이즈가 1024KB일 때는 1K 공간이 사용되지만, 4096KB
가 기본 블럭이라면 4K를 차지하게 된다. 하지만 아주 작은 파일들이 많은 경우 해당
데이터를 액세스하는 데는 1024KB가 4096KB보다 더 걸리게 되므로 퍼포먼스가 급격히
떨어지게 된다. 따라서 자신이 이용하는 시스템의 특성과 용도에 맞게 블럭 사이즈를
지정해서 사용하면 된다.



15. RAID

RAID는 \'\'Redundant Array of Inexpensive (or Independant) Disks\'\'의 약어다. RAID 시
스템은 여러 드라이브의 집합을 하나의 저장장치처럼 다룰 수 있게 하고, 장애가 발생
했을 때 데이터를 잃어버리지 않게 하며 각각에 대해 독립적으로 동작할 수 있도록 한
다.



16. RAID 레벨 1과 레벨 5의 특성

시스템의 다운, 데이터 손실에 대비하여 보통 여러가지 RAID 레벨 중에서 1과 5번 방
법을 많이 사용한다.

RAID 1(mirroring)의 특징은 빠른 기록 속도와 함께 장애복구능력이 있다는 것이다. 2
대의 드라이브만으로 구성할 수 있기 때문에 작은 시스템에 적합하다. 읽을 똑같은 하
드가 복제되고 있으므로, 시스템에 문제 발생시 서비스 지연시간이 매우 짧아서 웹 서
비스를 하는 곳에서 유용하게 쓸 수 있다. 하지만 한 하드의 내용이 또 다른 하드에
똑같이 복사되므로 하드용량의 낭비가 심하다.

RAID 5(distributed parity)는 작고 랜덤한 입출력이 많은 경우 더 나은 성능을 제공
한다. 빠른 기록 속도가 필수적이지 않다면, 일반적인 다중사용자 환경을 위해 가장
좋은 선택이다. 그러나 최소한 3대, 일반적으로는 5대 이상의 드라이브가 필요하다.
변경된 내용이 있을 경우 그것만 기록한다. 일반적으로 RAID 1은 ECC 계산을 하지 않
으므로 RAID 5보단 빠르고, RAID 5는 하드 공간을 좀 더 여유있게 쓸 수 있다는 장점
을 지닌다.



17. 백업 계획 및 정책 수립의 요소와 Full 백업과 Incremental 백업

먼저 시스템의 전체 용량이 어떻게 되고, 그 중에서 백업할 가치가 있는 것은 어떤 부
분인지를 결정한다. 사용할 백업 장비와 종류를 알아보고, 총 백업 시간과 어느 정도
부하가 걸리는지 예상해보고 테스트해 본 후 마지막으로 백업 스케줄을 정한다. Full
백업은 백업할 자료를 처음부터 끝까지 다 기록하는 것이고, Incremental 백업은 이전
의 데이터와 비교해서 새로 추가된 내용만 백업하는 방법이다. 따라서 Full 백업시 완
전히 데이터를 백업할 수 있지만 시간이 많이 걸리고, 시스템에 부하를 초래할 수 있
는 반면에 Incremental 백업은 빠른 시간내에 백업을 할 수 있지만, 백업하는 시간에
따라 데이터가 완전히 백업되지 못할 경우도 있을 수 있다.



18. SNMP의 의미와 구성요소

SNMP는 \'\'Simple Network Management Protocol\'\'의 약자다. 네트워크에 연결되어 있는
장치에서 네트워크에 관련된 정보를 모으고 문제점 등을 보고할 수 있는 기능을 제공
하는 프로토콜이다. 구성요소는 에이전트와 매니저가 있다. 이것은 서버/클라이언트
구조로서 에이전트가 서버에 해당되고, 매니저가 클라이언트에 해당한다. 에러가 발생
하는 경우는 선택한 장비에 SNMP가 Enable이 안되었거나, 네트워크에 문제가 있어서
모니터링 하려는 장비까지 프로토콜이 전송되지 않는 경우, community 값이 잘못 사용
된 경우 등이 있다.



19. 데몬을 실행하고 정지하기

/etc/rc.d/init.d이 디렉토리에 있는 서비스를 \'\'서비스명\'\' stop 또는 start 시키거나
재시작시킨다.



20. 사용자별로 하드디스크 사용 용량 설정하기

quota를 이용하면 된다. df 명령으로 사용자의 홈디렉토리가 있는 디바이스를 확인한다.

-------------------------------------------------------------------------------
filesystem 1k-blocks Used Available Use% Mounted on
/dev/sda5 3028080 878480 1995780 31% /
/dev/sda1 62217 7713 51291 13% /boot
/dev/sda6 2759260 2088820 530276 80% /home2
/dev/sdb1 8744304 6496724 1803388 78% /home3
/dev/sdc1 3529628 25597928 7905940 76% /home4
/dev/sda10 202220 6 191774 0% /tmp
/dev/sda7 1517920 1280648 160164 89% /usr
/dev/sda8 608724 426992 150812 74% /var

# edquota username

Quotas for user jhk1:
/dev/sda6: blocks in use: 47584, limits (soft = 0, hard = 0) /* 이 부분에 설정*/
inodes in use: 4590, limits (soft = 0, hard = 0)
/dev/sda8: blocks in user: 4, limits (soft = 0, hard = 0)
inodes in use: 1, limits (soft = 0, hard = 0)
-------------------------------------------------------------------------------

Soft는 용량에 설정되어 있는 용량은 넘어도 어느 정도 여유가 있지만, hard 용량에
설정된 크기는 절대적이다. 따라서 hard 용량을 사용자는 넘을 수 없다. 일반적으로 s
oft 용량을 hard 용량보다 조금 더 적게 설정해 놓는다. 쿼터 조정후 quotacheck /dev
/sda6를 해줘서 체크를 해 주도록 한다.



21. -(하이픈)으로 시작하는 파일 지우기

파일명이 하이픈(-)으로 시작하는 파일

-------------------------------------------------------------------------------
rm ./-filename 상대경로를 이용하여 파일명을 지정해줌
rm -- -filename --를 이용 그 이후에는 오는 \'\'-filename\'\'이라는 파일이 옵션이
아닌 파일명이라는 것을 밝힘
-------------------------------------------------------------------------------


22. 사용하지 않은 가상 콘솔의 메모리 절약법

/etc/inittab에서 사용하지 않은 가상콘솔레벨을 주석처리 해주면 된다.

-------------------------------------------------------------------------------
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
#4:2345:respawn:/sbin/mingetty tty4
#5:2345:respawn:/sbin/mingetty tty5
#6:2345:respawn:/sbin/mingetty tty6
-------------------------------------------------------------------------------



23. 시스템 지원 모니터링 툴

-------------------------------------------------------------------------------
시스템 자원 | 모니터링 툴
-------------------------------------------------------------------------------
CPU | top, ps, uptime, vmstat, pstree
-------------------------------------------------------------------------------
메모리 문제 점검 | free, vmstat 등
-------------------------------------------------------------------------------
메모리에 문제가 없다면 디스트 I/O 점검 | df, du 등
-------------------------------------------------------------------------------
표 4. 시스템 자원과 모니터링 툴

[ 주 의 ]
디스크와 메모리에 문제가 없는데도 시스템에 문제가 생기면 CPU의 오버 헤드에 문제
가 있을 가능성이 크다.



24. 사용자들이 사용한 명령어 알아내기

먼저 psacct라는 패키지가 필요하다. 설치되지 않은 경우 rpm이나 소스 등을 직접 설
치한다(대부분 배포본에 기본적으로 포함되어 있으므로 그대로 사용하면 된다). 다음
과 같이 명령하면 사용한 명령어를 확인할 수 있다.

-------------------------------------------------------------------------------
더미 로그 파일 생성(데이타를 기록할 파일 생성)
# touch /var/log/pacct
# /sbin/accton /var/log/pacct 체크를 시작하게 하는 명령어 실행
# lastcomm 사용자계정 사용자가 수행한 명령어 체크
-------------------------------------------------------------------------------



25. tar로 특정 경로에 특정 파일 압축 해제하기

tar xvfpz 압축파일 또는 .tgz -C 특정경로 특정파일의 절대경로(또는 파일명)로 입력
하면 된다. test.tgz 파일에서 /home/test/test.txt 파일을 /tmp 디렉토리에 압축해제
를 한다면, tar xvfpz test.tgz -C /tmp /home/test/test.txt와 같이 하면 된다.



26. ping 명령어 실행시 ttl정보

TTL이란 Time To Live의 약자다. 이것은 라우팅 에러로 인하여 데이터그램이 네트워크
를 영원히 떠돌아다니는 것을 방지한다. 라우터는 네트워크 간을 이동하는 데이터그램
의 TTL 필드를 감소시키며 TTL 필드가 0이 되는 데이터그램은 버린다(drop). IPv4 멀
티캐스트에서 TTL은 문턱값(threshold)의 의미를 지닌다.

다음 예를 보면 그 용도가 분명해진다. 회사에서 모든 호스트가 속하는 아주 길고 대
역폭에 한 부서가 대역폭을 많이 차지하는 인터넷 방송을 한다면, 랜에는 엄청난 용량
의 트래픽이 발생할 것이다. 인터넷 방송도 하길 원하지만, 멀티캐스트 트래픽 때문에
인터넷 전체가 마비되어서는 안된다. 멀티캐스트 트래픽이 라우터간을 얼마나 멀리까
지 이동할 것인지 제한할 필요가 있다. 이것이 TTL의 용도다.



27. 특정 IP에서 서버 접속 방지법

TCP Wrapper를 사용하는 방법과 ipchains를 사용할 수 있는데 커널 2.4버전부터는 ipt
ables을 사용한다. hosts.allow와 hosts.deny를 사용한다면, hosts.deny 파일에서 다
음과 같이 모두 제한을 한다.

-------------------------------------------------------------------------------
all : ALL
-------------------------------------------------------------------------------

hosts.allow 파일에서 허용할 IP를 여러 개 설정할 경우 다음과 같이 스페이스로 구분
하여 준다.

-------------------------------------------------------------------------------
all : xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx. xxx.xxx.xxx.xxx ...
-------------------------------------------------------------------------------

ipchains나 iptables의 경우에는 다음과 같이 설정하여 주면 된다.

-------------------------------------------------------------------------------
# ipchains ?A input ?s xxx.xxx.xxx.xxx ?j DENY
# ipchains ?A INPUT ?s xxx.xxx.xxx.xxx ?j DROP
-------------------------------------------------------------------------------


[ 안전한 네트워크 다지기 ]



28. 네트워크 설정법

시스템에 기본적으로 설치된 아래의 명령들을 사용하여 네트워크가 정상적으로 작동하
지 않은 경우 여러 가지 테스트를 해볼수 있다.

-------------------------------------------------------------------------------
ifconfig | 네트워크 인터페이스의 기본 설정에 관한 정보를 제공한다. 잘못된
| IP나, 서브넷 마스크 및 브로드 캐스트 주소를 확인하는데 효과적이다.
-------------------------------------------------------------------------------
arp | 이더넷/IP 주소의 변환에 관한 정보를 제공한다. 로컬 네트워크 내에
| IP 주소가 잘못 지정되었는지를 확인하는데 효과적이다.
-------------------------------------------------------------------------------
netstat | 네트워크 인터페이스, 네트워크 소켓, 네트워크 라우팅 테이블등에
| 대한 정보를 확인할 수 있다.
-------------------------------------------------------------------------------
ping | 원격 호스트가 도달 가능한지를 판단할 수 있다. 또한 패킷의 유실율과
| 전송 시간 등을 확인할 수 있다.
-------------------------------------------------------------------------------
nslookup | DNS 네임 서비스 관련 정보들을 확인할 수 있다.
-------------------------------------------------------------------------------
dig | 역시 네임 서비스와 관련된 정보를 제공하면, nslookup과 유사하다.
| BIND 버전의 확인 방법 및 각 도메인의 네임 서버를 확인하려면 다음과
| 같이 하면 된다.
|
| dig @³戮憺?痔見?txt chaos version.bin. | grep VERSION
| dig @ns.도메인명 www.도메인명 위의 방법과 도메인을 등록 관리하는
| 업체에서 whois 검색을 도메인의 소유자 및 네임 서버 정보를 알아볼
| 수도 있다.
-------------------------------------------------------------------------------
traceroute | 원격 시스템까지 패킷이 진행되는 동안의 라우팅 홉(hop) 정보를 확인
| 할 수 있다.
-------------------------------------------------------------------------------
tcpdump | 네트워크를 통해 전달되는 각각의 패킷들을 분석할 수 있으며, 각 패킷
| 의 내용과 헤더 등을 분석하는 TCP/IP 프로토콜 분석 소프트웨어다.
-------------------------------------------------------------------------------
표 5. 명령어와 설정 내용



29. 네트워크 정보로 이더넷 카드 IP 정보 재조정하기

/etc/sysconfig 디렉토리 밑에 하드웨어에 대한 정보가 나오는데 이더넷 카드가 여러
개 꽂혀 있다면 ifcfg-eth1, ifcfg-eth2 식으로 확인할 수 있다.

-------------------------------------------------------------------------------
/etc/sysconfig/network-scripts/ifcfg-eth0


# cat ifcfg-eth0

DEVICE=eth0
BOOTPROTO=static /* 정적 아이피 */
BROADCAST=211.47.64.255
IPADDR=211.47.64.80
NETMASK=255.255.255.0
NETWORK=211.47.64.0
ONBOOT=yes /* 부팅시 자동인식 */
-------------------------------------------------------------------------------

사용하는 IP를 변경하거나, 새로운 네트워크 카드 추가시에는 ifcfg-eth0 파일을 수정
한 후에 반드시 ifdown ifcfg-eth0, ifup ifcfg-eth0 명령을 실행해 주어야 변경된 IP
가 적용된다. 또는 /etc/rc.d/init.d/network restart를 실행해주어도 된다.



30. 스위치와 라우터의 비교

-------------------------------------------------------------------------------
| 스위치 | 라우터
-------------------------------------------------------------------------------
사용용도 | 두개 이상의 동일 네트워크를 연결 | 동종 또는 이종 네트워크 미디어를
| 하는 LAN/WAN에 적합 | 사용하는 LAN/WAN에 적합
-------------------------------------------------------------------------------
OSI 모델 | 2계층(Data Link), 3계층(Network) | 3계층(Network)
-------------------------------------------------------------------------------
목 적 | 특수한 목적의 장비 | 일반 목적의 장비
| - 대역폭 확장을 위하여 LAN seg- | - 다른 수많은 어플리케이션의
| mentation 함 | 주소를 유연하게 디자인
| - 거대한 트래픽을 해결하기 위함 | Limit broadcast traffic
| - 낮은 지연율과 고성능의 출력 | Redundant active paths
| - 과업을 최적화 하기 위함 | WAN 액세스
| | - 일반적으로 거대한 트래픽을
| | 전송할 때 요구되지 않음
-------------------------------------------------------------------------------
동작방식 | MAC 주소를 추적하여 장비의 위치를 | 서로 다른 네트워크 계층 프로토
| 인식 목적지 MAC 주소에 기초하여 | 콜을 구분할 필요가 있고 프로토
| 전송하기 위한 목적의 장비 | 콜 지식은 보다 효과적인 전송
| | 결정을 할 수 있다.
-------------------------------------------------------------------------------
설치시 | 설치가 간단하고, 비용이 낮다. | 노드의 경로 설정에 필요한 초기
| 유지보수가 간단하다. | setup이나 IP 주소 및 네트워크의
| | 수정시 복잡
-------------------------------------------------------------------------------
비고 | 브리지와 비슷하나 훨씬 빠름 | 두개의 기본 기능
| - 더 작은 collision domain으로 | - 각 네트웍 계층 프로토콜을 위한
| LAN을 분할 | 라우팅 테이블을 유지
| - 현재 사용되는 cable과 hardware | - 네트워크 계층 어드레스에 기반
| 를 그대로 사용 | 하여 각의각 프레임을 전송
| - Protocol transparent |
| - 쉽게 추가, 이동, 변경 가능 |
| - ASIC technology |
| - 통합된 넓은 bandwidth |
| - 저렴한 포트당 비용으로 고성능 |
| 제공 |



31. httpd.conf에서 ServerType를 standlone으로 설정하는 것과 inetd로 설정하는 것의 차이

아파치에만 적용되는 내용은 아니지만 standlone으로 설정한 경우에는 /etc/rc.d/rc.l
ocal나 /etc/rc.d/rc3.d/밑에 설정되어 데몬으로 실행되면, inetd로 설정할 경우 /etc
/inetd.conf에 추가되어 실행되어 텔넷이나 FTP와 같이 시스템프로세스로 실행되므로
접속이 많은 httpd인 경우 standalone으로 설정하여야 한다. 그리고 inetd로 설정시에
는 한정된 프로세스만 수용 가능하며 반응속도가 standalone방식에 비해 느리다.



32. 아파치에서 httpd.conf 수정 후 데몬이 뜨지 않은 경우 대처법

httpd -t 옵션으로 우선 syntax error부터 확인한 후 syntax error가 있으면 먼저 수
정을 해주고 Logs 디렉토리에서 에러 로그 파일을 확인하여 수정 후 재실행한다.



33. php 설치 후 버전 및 정상적인 설치 여부 확인법

php3 버전의 경우 index.php3을 php4의 경우 index.php라는 파일을 다음과 같은 내용
으로 작성하여 웹에서 열어보면 버전 및 연동 현황을 확인할 수 있다.

-------------------------------------------------------------------------------
phpinfo();
?>
-------------------------------------------------------------------------------



34. APM 연동 설치시 php를 모듈로 삽입하기

먼저 php설치 후 apache 컴파일시 php모듈 넣어서 재컴파일 해준다.

-------------------------------------------------------------------------------
./configure --prefix=/usr/local/apache --activate-module=sr/modules/php4/libphp4
.a
-------------------------------------------------------------------------------



35. 아파치에서 속도제한하기

아파치에서 bandwidth 모듈이 삽입되어 있는 상태라면 모든 호스트에 대해 1024byte로
속도를 제한하기 위해 아파치에서 설정해 주는 부분은 다음과 같다. Httpd.conf에서
BandWidthModule On라고 설정 후 BandWidth all 1024라고 설정한다.



36. 디렉토리 목록 출력 금지법

아파치에서 index.html 파일이 없을 때 디렉토리 목록 출력을 원하지 않을 경우에는 D
ocumentRoot 디렉토리쪽에 설정되어져 있는 옵션에서 Indexes를 삭제한다. 또한 특정
디렉토리에서만 인덱스를 허용치 않을 경우에는 특정 디렉토리의 .htaccess 파일안에
\'\'Options -Indexes\'\' 이 부분을 삽입하면 된다.


안전한 메일 관리법



37. 센드메일에서 메일 용량을 제한하기

센드메일에서 한번에 보낼 수 있는 메일용량은 /etc/mail/sendmail.cf 파일에서 MaxMe
ssageSize 부분에서 다음과 같이 주석을 제거하고 바이트 단위로 설정을 해줄 수 있다
. 받는 메일 계정의 용량은 Mlocal 부분에서 M=1000000 부분에서 바이트 단위로 제한
량을 적는다.

-------------------------------------------------------------------------------
MaxMessageSize=1000000
-------------------------------------------------------------------------------



38. 센드메일 데몬을 실행시 수신만하기

relay를 막는 방법도 있지만 그건 외부에서 로컬 서버를 SMTP로 사용하지 못하도록 할
수 있으며 iptables를 이용하면 로컬 서버에서 보내는 메일에 대해 제한이 가능하다.

-------------------------------------------------------------------------------
# iptables -A OUTPUT -p tcp --syn --dport 25 -j DROP

-A 기존의 iptables에 추가
-p 프로토콜
-dport 포트 넘버
-------------------------------------------------------------------------------

로컬에서 외부로 보내는 메일이라면 remote의 25번 포트로 접속이 되므로 OUTPUT 패킷
중 목적지 포트가 25번인 패킷만 drop한다. 메일 송수신은 tcp이므로 --syn을 추가하
지 않을 경우에는 3 way-handshaking에 의해 메일을 받을 수도 없게 되므로 반드시 --
syn을 추가해야 한다. 보내는 메일은 일단 메일큐 디렉토리에 저장된 후 발송되므로
메일큐 디렉토리를 삭제하거나 다른 이름으로 변경하면 메일을 발송할 수 없게 된다.



39. 릴레이 설정과 차단법

/etc/mail/access 파일에서 Relay 여부를 설정한다.

-------------------------------------------------------------------------------
ocalhost RELAY
-------------------------------------------------------------------------------

변경한 후 적용하려면 다음과 같이 실행해 준다. 또는 인증 기능(SMTP AUTH)이 지원되
는 최신 버전의 센드메일을 사용한다.

-------------------------------------------------------------------------------
# makemap hash /etc/mail/access < /etc/mail/access
-------------------------------------------------------------------------------



40. 특정시스템에 설치되어 있는 센드메일 버전 알아보기

간단한 방법으로 다음과 같이 텔넷으로 센드메일 포트인 25번으로 접속해보면 알 수
있다.

-------------------------------------------------------------------------------
# telnet jimy.tt.co.kr 25
-------------------------------------------------------------------------------



41. 다른 도메인의 웹마스터 계정 사용하기

가상 계정을 이용해서 해결할 수 있다. 아웃룩에서 jhk라는 계정을 설정하면 jhk@jung
heekim.co.kr, webmaster@jungheekim.co.kr로 오는 메일을 모두 받아 볼 수 있다.

-------------------------------------------------------------------------------
# vi /etc/mail/virtusertable

webmaster@jungheekim.co.kr jhk(jhk계정에 webmaster라는 계정이 가상계정으
로 설정)
-------------------------------------------------------------------------------



42. 웹메일 포워딩

해외에 출장이 잦은 사용자가 메일을 자신이 사용하는 웹메일로 포워딩해 달라고 하고
, 회사에 돌아와서도 포워딩된 메일을 아웃룩에서 다시 받아보길 원한다면 다음과 같
이 한다. 해당 사용자의 홈디렉토리 밑에 .forward 파일을 만들어서 이메일 주소를 입
력하고 자신의 계정에는 를 추가해 주어야 루프를 막을 수 있다.

-------------------------------------------------------------------------------
vi ~junghee/.forward

sitsme75@hanmail.net, junghee.kim@tt.co.kr
-------------------------------------------------------------------------------



43. 자동응답 메일 작성법

메일을 확인할 수 없는 상황일 때, 메일 수신 후 자동으로 미리 작성되어 있는 메시지
를 보낼 수 있는 방법(즉 자동응답 메일 작성 방법)은 자신의 홈디렉토리에 \".procmai
rc\" 파일을 만들고 다음의 내용을 입력한다.

-------------------------------------------------------------------------------
:0 h c
* !^FROM_DAEMON
* !^X-Loop: YOUR@EMAIL
| (formail -r -A\"Prededence: junk\"
-I\"From: YOUR_NAME \"
-A\"X-Loop: YOUR@EMAIL
cat $HOME/autoreply.txt) | $SENDMAIL -t
-------------------------------------------------------------------------------

그리고 \'\'autoreply.txt\'\' 파일에 답변글을 작성햐면 그 내용이 자동 답변된다.



44. POP3 다운시 설정법

아웃록에서 메일을 받아보려고 하는데, POP3가 다운되어 반응하지 않을때 다음과 같이
조정한다. inetd는 기본적으로 1분에 fork 할 수 있는 인스턴스가 40으로 제한되어
있으므로 이 값을 늘려줘야 한다. POP3 부분에서 nowait.200이나 적절한 수만큼 늘려
주면 된다. nowait 뒤에 반드시 .(점)을 찍고 허용할 만큼이 POP 데몬의 수를 입력한
다. 이후 inetd를 재시작하면 적용된다.

-------------------------------------------------------------------------------
A # vi /etc/inetd.conf
# Pop and imap services et al
#pop-2 stream tcp nowait root /usr/sbin/tcpd ipop2d
pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
#imap stream tcp nowait root /usr/sbin/tcpd imapd
-------------------------------------------------------------------------------


철통 보안 관리

45. 일반적인 리눅스 보안법

1) 현재 서버에서 사용하지 않고, 보안상 취약점이 있는 데몬에 대해 서비스를 중지
한다.
2) TCP Wrapper와 ipchains를 이용한다. 커널 2.4에서는 iptables를 이용해 각 서비
스에 대해서 접속을 허락하거나, 제한한다.
3) 새도우 패스워드를 반드시 이용한다.
4) su 권한의 사용을 특정 사용자만 가능하도록 정의한다.
5) 원격에서 루트 권한으로 접속할 수 없도록 한다.
6) 지속적으로 패치한다.

46. Ping 요청 무시하기

-------------------------------------------------------------------------------
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
-------------------------------------------------------------------------------

다시 응답하게 하려면 다음과 같이 실행하면 된다.

-------------------------------------------------------------------------------
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
-------------------------------------------------------------------------------



47. 백도어 파일의 삭제

보통 백도어 파일은 rm 명령으로도 삭제되지 않는다. 속성이 있을 경우 다음과 같이
삭제한다.

-------------------------------------------------------------------------------
# lsattr /usr/sbin/in.fingerd

sattr 1.12, 9-Jul-98 for EXT2 FS 0.5b, 95/08/09

-----a-- /usr/sbin/in.fingerd

==> a 속성이 있음을 확인


# chattr -a /usr/sbin/in.fingerd

chattr 1.12, 9-Jul-98 for EXT2 FS 0.5b, 95/08/09

==> -a로 속성을 해제

sattr 1.12, 9-Jul-98 for EXT2 FS 0.5b, 95/08/09

-------- /usr/sbin/in.fingerd

==> 해제
-------------------------------------------------------------------------------



48. lpd(line printer daemon)의 취약점

pd는 내부와 원격 프린트 작업을 수행하는 BSD 라인 프린터 데몬이다. lpd 데몬의 접
근 권한을 가지고 있는 내부 시스템이나 원격 시스템의 사용자가 특별히 변형된 불완
전한 프린트 작업을 요청하고 이어서 프린터 큐의 디스플레이를 요청하게 되면 해당
시스템에 버퍼 오버플로우를 일으킬 수 있다. 결국 관리자 권한으로 내부 시스템에 공
격코드를 실행시킬 수 있게 된다. 따라서 패치를 해주거나 서비스를 하지 않는다면 데
몬을 중지하는 것이 좋다.



49. BIND에서 보안상 문제가 있는 버전

BIND 4.x, 8.x에서 문제가 검출되었다. BIND 8버전에서는 트랜잭션 시그너쳐(TSIG) 핸
들링 코드에 버퍼오버플로우 취약점을 포함하고 있다.

유효한 키를 포함하지 안는 TSIG를 발견하는 경우 BIND 8버전에서는 에러응답을 보내
기 위한 코드를 실행하게 되며, 이때 발생하는 변수 초기화 방식의 차이에 의해 해당
취약점이 발생하게 된다. DNS 시스템에 대한 요청 접근만으로 해당 취약점을 발생시킬
수 있으므로 이로 인한 위험성은 크게 된다.

BIND 4버전에서는 nslookupComplain() 내부에 있는 문자 배열(syslog를 위한 에러 메
시지 작성 버퍼)에 대해 입력 검증(input validation) 취약점을 포함하고 있다. 이것
은 특수한 포맷 형태를 가진 쿼리를 전송함으로써 입력 검증 취약점을 발생시킨다.

BIND 4, 8버전에서는 해당 서버가 쿼리를 처리하는 동안 정보가 누출(information lea
k)될 수 있는 취약점을 포함하고 있다. 특수한 포맷형태를 가진 쿼리 전송을 통해 공
격자가 프로그램 스택에 접근할 수 있게 함으로써 해당 취약점을 발생시킨다.

해결책은 BIND 버전은 8.2.3 이상이나 9.1 버전으로 업그레이드하는 것이다. 이것은
해결책이 아니라 시스템 관리자가 반드시 해야 할 일이다.


장애 발생시 복구

50. 비정상 종료시 하드디스크 체크요구 원인

대부분 정전이 발생한 후에도 시스템은 정상적으로 부팅되며 파일시스템도 자동으로 c
heck하지만 간혹 관리자가 수동으로 해주어야 하는 경우가 발생한다. 리눅스가 다운
되었을때 보통 Power OFF를 하는데, 이때 문제가 발생할 수 있으므로 Magic SysRq라는
것을 이용하여 안전하게 재부팅하는 방법을 이용한다.

Magic SysRq key란 시스템의 제어가 불가능한 상태(일반적으로 \'\'다운\'\'되었다고 한다)
에서도 제어를 가능하게 해주므로 커널 컴파일시 Kernel hacking ---> [*]Magic SysRq
key를 체크해야 한다. Magic SysRq key를 사용하려면 다음과 같이 /proc/sys/kernel/
sysrq 값을 1로 만들어야 한다.

------------------------------------------------------------------------------
# echo 1 > /proc/sys/kernel/sysrq

ilo: linux init=/bin/sh
------------------------------------------------------------------------------

그러면 커널이 뜨고 바로 shell prompt \'\'#\'\'가 나타난다. 이때에는 filesystem도 read
only로 마운트 되고, 동작하는 daemon process도 전혀 없는 상태가 된다. 그 상태에서
수동으로 모든 파일시스템을 체크한다.

------------------------------------------------------------------------------
# fsck [-t ext2] 장치명
# e2fsck 장치명
------------------------------------------------------------------------------

위의 명령 사용시 문제가 생긴 블록의 수정여부를 묻게 되는데 \'\'y\'\'를 선택하고 만약
수정여부를 묻는 질문이 많다면 -y 옵션을 사용하여 자동으로 \'\'y\'\'를 선택하게 할 수
있다.

------------------------------------------------------------------------------
# e2fsck -y 장치명
------------------------------------------------------------------------------

Ctrl-Alt-Del로 리부팅하면 아주 심하게 깨지거나, 디스트에 이상이 있지 않는 한 복
구가 된다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2005/07/04 16:06 2005/07/04 16:06
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/258

달리기는 세상에서 가장 쉬운 운동입니다. 한 발을 다른 발 앞에 놓지 못하는 사람은 없으니까요! 그렇습니다. 하지만 마음만 먹으면 달리기쯤은 언제든지 시작할 수 있다고 생각하신다면 오산입니다!. 막 달리기를 시작하셨거나 이미 열심히 뛰고 계신다면 훈련 방법과 달리기의 기본에 관해 알아두실 게 있습니다.
Matt Wesselhoff

Matt Wesselhoff는 러닝을 즐기는 모든 이에게 도움을 주기 위해 아디다스의 협조를 얻어 유용한 정보를 제공하고 있다.



올바른 맥박 -올바른 달리기 속도

기본적으로 올바른 달리기 속도를 정하는 3가지 방법이 있습니다:


1. (초심자의 경우) 자신의 건강에 대한 감각에 따르는 방법

초심자(완전한 초보자들뿐만 아니라 60분간 걷거나 쉬지 않고 뛰지 못하는 모든 사람들).

초심자에서 60분까지, 자신의 안전이 가장 주된 기준입니다. 즉, 조깅하는 내내 무리가 없이 뛰면서 호흡에 곤란을 느끼지 않고 얘기를 할 수 있어야 합니다. 문제가 느껴지면 좀 더 느리게 뛰도록 합니다. 그렇다고 계속 같은 속도로 뛰라는 얘기는 아니며 이매 30분 이상 뛸 수 있는 단계라면 1주일에 한 번 정도는 평소보다 조금 더 빠르게 뛰어도 괜찮습니다. 하지만 이처럼 속도를 빨리 했을 때에는 문제없이 숨쉬고 얘기할 수 있어야 합니다.


2. 자신의 최대 맥박에 따르는 방법

문제는 최대 맥박 자체입니다. 왜냐하면 그 자체가 차이가 심하고 일반적으로 맥박을 계산하는 \"최대 맥박=220-연령\"이라는 공식이 맞는 경우는 30%에 지나지 않기 때문입니다. 나머지 70%의 사람에게는 이 공식을 적용해서는 안됩니다.

나를 예로 들어 이 문제를 살펴봅시다. 나는 54살이고 일반적인 계산 공식에 따르면 내 최대 맥박은 220-54=166이지만 내 최대 맥박수는 187이며, 나와 같은 나이에 최대 맥박이 155밖에 되지 않는 사람도 알고 있습니다. 즉 같은 연령 집단 내에서도 30이라는 차이가 있을 수 있는 것입니다!정확한 최대 맥박을 구하는 방법은 2750-4600야드의 거리를 경쟁자와 함께 달린 직후(피니시 라인에서) 맥박을 재는 것입니다. 경쟁 상황에서만 전력질주를 할 수 있으니까요.

만일 훈련 과정에서 최대 맥박을 재려 한다면 15분간 워밍업을 한 후에 10분 휴식하고 2750야드를 마치 경쟁자와 함께 뛰는 것처럼 최대한의 속력으로 달립니다. 이렇게 할 때, 마지막에 속도를 줄여서는 안됩니다. 맥박이 다시 떨어질 수도 있기 때문입니다. 2750야드 테스트 주행에서 마지막 몇 야드를 뛸 때가 바로 최대 맥박입니다.

느린조깅 최대 맥박의 65-70 %
가벼운 조깅 약 75 %
일반적인 조깅 약 80 %
빠른 조깅 약 85 %
힘들 정도로 속도를 낸 달리기 90-95 %


3. 10km(6.2마일) 최대 속도에 따르는 방법

초보자를 탈피했을 경우(위의 1 참조), 조깅에 따르는 부담의 수준을 결정하기 위해 10k(6.2마일) 최대 속도가 필요합니다. 경쟁자들과 경쟁하면서 효과적으로 훈련하고 싶다면 이 과정은 꼭 필요로 합니다.

느린 조깅으로 60분간 뛸 수 있다면 10 k (6,2 miles) 를 경쟁하며 뛰거나 대안적으로 10 k (6,2 miles) 를 훈련삼아 완주할 수 있습니다. 다음 지시사항을 참조하십시오.

10 k (6,2 miles) 시합에 참가한 적이 없다면, 10 k (6,2 miles) 거리를 정식으로 완주해야 합니다. 즉 10-15분간의 워밍업, 10분간의 운동, 그런 다음 10 k (6,2 miles) 를 최대 속력으로, 즉 마치 시합에서처럼 가능한 빠른 속도로 달립니다. 초보자들의 문제는 정확한 시작 속도를 파악하는 것인데 아주 빠르게 달리기 시작했다면 실패하게 될 것입니다. 즉, 갈수록 속도가 느려져서, 속도를 제대로 조절했더라면 10k를 더 빨리(더 짧은 시간에) 달릴 수도 있었을 텐테, 피니싱 타임이 큰 의미가 없어지기 때문입니다. 이 시간에서 약 90-120초를 뺄 수 있습니다. 왜냐하면 정식 시합에서라면 좀 더 빠르게 뛰었을 것이기 때문입니다.


Example:
시험 주행에서 10 k (6,2 miles) 를 57분에 완주 55분이라고 가정하면, 10 k (6,2 miles) 최대 속력은 5:30 min./k. ( 약 8:50min/mile)가 됩니다. 따라서 느린 조깅은 100초 이하, 즉 약 7:10 min/k가 될 것입니다.

기본 + 컨셉

\"신은 성공 전에 땀을 만드셨다\" 이 말은 달리기, 특히 마라톤에 걸 맞는 말이다.

여러분 대다수는 장거리 주자로 훈련을 받지 않으신 분들이기 때문에 이제 여러 가지 달리기 종류에 대해 설명하고자 합니다. 이 데이터는 항상 10k(6,2 miles) 최대 속도(RT)를 기준으로 한 것입니다. 맥박수는 최대 맥박수 180회/분을 가정합니다(즉, 최대 맥박수가 더 높거나 낮은 경우 그에 따라 오르내립니다) 절대로 무리해서 빠르게 달려서는 안 된다는 사실을 명심합니다. 특히 느린 조깅은 아주 느리게 달려야 지방 연소 능력이 가장 적절하게 훈련됩니다. 왜냐하면 지방연소는 스트레인(응력)의 수준이 낮을 때 가장 효과적이기 때문입니다.이 최고 지방 연소 수준이 훈련, 특히 마라톤 훈련 중 가장 결정적인 요인입니다.


달리기 종류(개념):

slow jogging = (144 - 160 초/마일) 10k (6,2 miles) 최대속도보다 90 - 100 초 느리고 최대 맥박수가 180( )일 때 115-130정도의 맥박수(예를 들어, 10k(6,2 miles) 최대 속도가 50분일 때, 장거리 달리기의 속도는 (10:30 - 10;40 sec./mile) 6:30 - 6:40 min./km가 될 것이다. 그보다 더 빨라서는 안된다)

gentle jogging = 장거리 달리기보다 약 20 sec./k (32 sec./mile) 더 빠르다. 즉 10k6,2 miles) 최대 속도보다 약 75 sec./k. (120 sec./mile) 느리며 맥박수는 130-140 정도이다(최대 맥박 180일 때)

medium jogging = 10k(6,2 miles) 최대 속도보다 약 50-60sec./k. (80-90 sec./mile) 느리며 맥박수는 140-150 정도이다(최대 맥박 180일 때)

intensive jogging = 10k(6,2 miles) 최대 속도보다 약 30-40sec./k. (48-64 sec./mile) 느리며 맥박수는 150-160 정도이다(최대 맥박 180일 때)

paced jogging = 10k(6,2 miles) 최대 속도보다 약 15-20sec./k. (24-32 sec./mile) 느리며 맥박수는 160-170 정도이다(최대 맥박 180일 때)

paced running = 시합 속도에서의 반복 주행. 예를 들면, 10 k (6,2 miles) 시합 속도에서, 4 x 2 k (1,3 마일)

increase running = 약 100 m, 처음 30-40m까지 점차 빨라지다가 그 다음 30-40m는 전력 질주하고 마지막 30분은 다시 점차 느려진다.

marathon running pace = 마라톤에서의 달리기 속도 - 10k(6,2 miles) 최대 속도보다 약 20-30sec./k. (32-48 sec./mile) 느리며, 연습량이 많지 않은 사람들이나 마라톤에 처음 참가하는 사람들의 경우, 10k(6,2 miles) 최대 속도보다 최고 60sec./k. (80-90 sec./mile) 까지 느리다(속도의 측면에서 보면 대충 medium jogging과 비슷하다).

Running pace (RT) = 최대 속도, 즉 10 k (6,2 miles) 주행 속도(10km RT)는 10km 시합에서의 속도를 말한다.

훈련 그룹과 훈련 계획


퍼포먼스 그룹 I
30분 동안 달릴 수 있으며 4개월 안에 gentle jogging(DL)으로 75분까지 끌어올리고 싶은초보자 그룹.

훈련 그룹 II
이미 gentle jogging으로 60분간 뛸 수 있으며 4개월 안에 이 시간을 90분까지(약 14.5-15k) (approx. 9 - 9,5miles) 까지 늘이고 싶은 주자 그룹.


훈련 그룹 I을 위한 훈련 계획

첫번째 달 - 주당 3회:

달리기를 시작할 때:
빠르게 걷기 3분
slow jog 5분
스트레칭 5분

그 후:
1주: slow jog 35분
2주: slow jog 35분
3주: slow jog 40분
4주: slow jog 40분

달리기를 끝낼 때:
빠르게 걷기3분
스트레칭 10분


두번째 달
주당 3회:

달리기를 시작할 때:
빠르게 걷기 3분
slow jog 7분 - 스트레칭 5분

그 후:
5주: slow jog 45분
6주: slow jog45분
7주: slow jog 50분
8주: slow jog 50분

달리기를 끝낼 때:
빠르게 걷기 3분
스트레칭 10분


세번째 달
주당 3회:


러닝 유닛 2회(예를 들면, 화요일과 목요일):
3 분. 빠르게 걷기 - slow jog 7분- 스트레칭 5분
gentle jog 45분 (지금까지의 slow 조깅보다는 약간 빠르다)

달리기를 끝낼 때: 빠르게 걷기 3분- 스트레칭 5분

토요일이나 일요일 세번째 유닛: 3 분. 빠르게 걷기 - 7 분. slow jog - 5분. 스트레칭

그 후:
9주: slow jog 55분
10주: slow jog 55분
11주: slow jog 60분
12주: slow jog 60분
13주: slow jog 60분

달리기를 끝낼 때:
빠르게 걷기 3분
스트레칭 5분


네번재 달
주당 러닝 유닛 3회:


러닝 유닛 2회 (예를 들면, 화요일과 목요일):
빠르게 걷기 3분
slow jog 7분
스트레칭 5분
gentle jog 45분

달리기를 끝낼 때:
빠르게 걷기 3 분
스트레칭 5분
토요일이나 일요일 세번째 유닛
slow jog 7분
스트레칭 5분

그 후:
14주: slow jog 70분
15주: slow jog 70분
16주: slow jog 75분
17주: slow jog 75분

달리기를 끝낼 때:
빠르게 걷기 3 분
스트레칭 10분

Tip:
추가적으로 20분간 훈련을 더하면 근육 단련에 큰 도움이 됩니다!


훈련 그룹 II을 위한 훈련 계획

첫번째 달
주당 러닝 유닛 3회:

러닝 유닛 2회(예를 들면, 화요일과 목요일):
빠르게 걷기 3분
slow jog 10분
스트레칭 5분

화요일: gentle jog 45분
목요일: medium jog 40분

토요일이나 일요일 세번째 유닛:
빠르게 걷기 3분
slow jog 7분
스트레칭 5분
slow jog 60분

달리기를 끝낼 때:
아주 느린 \"trotting\" 5분
스트레칭 10분


두번째 달
주당 러닝 유닛3회:

러닝 유닛 2회(예를 들면, 화요일과 목요일):
빠르게 걷기 3 분
slow jog 10분
스트레칭 5분

화요일: gentle jog 50분
목요일: medium jog 40분

토요일이나 일요일 세번째 유닛
slow jog 7분
스트레칭 5분
slow jog 70분

달리기를 끝낼 때:
매우 느린 \"trotting\" 3 분
스트레칭 10분

세번째 달
주당 러닝 유닛 3회:

러닝 유닛 2회(예를 들면, 화요일과 목요일):
빠르게 걷기 3분
slow jog 10분
스트레칭 5분

화요일: gentle jog 60분
목요일: medium jog 45분

토요일이나 일요일 세번째 유닛:
빠르게 걷기 3분
slow jog 7분
스트레칭 5분
slow jog 80분

달리기를 끝낼 때:
아주 느린 \"trotting\" 5분
스트레칭 10분

네번째 달
주당 러닝 유닛 4회:

러닝 유닛 2회(예, 화요일과 목요일):
빨리 걷기 3분
slow jog 10분
스트레칭 5분

화요일: 45 분, 이중 20분은intensive (brisk) jog
목요일: gentle jog 60분

주말에 러닝 유닛 2회:
빠르게 걷기 3 분
slow jog 7분
스트레칭 5분

토요일: medium jog 30분
일요일: slow jog 90분 (혹은 반대, 토요일 slow jog 90 분, 일요일 medium jog 30분)

달리기를 끝낼 때:
아주 느린 \"trotting\" 5 분
스트레칭 10분


◎ 마라톤 출전 준비를 위한 조언:

1. 발톱을 깎는 것을 잊지 마라(달리기 이틀 전).

2. 가슴을 붕대로 감는 것을 잊지 마라(달리기 1시간 전).

3. 신체 주요 부위에 오일을 바른다(무릎 뒤쪽과 어깨, 달리기 1시간 전).

4. 금방 세탁한 양말을 신지 마라. 세제가 염증을 유발할 수도 있다.

5. 자기 시계를 잊지 말고 준비한다.(실제 시간은 출발선을 지날 때 시작된다)

6. 신발끈은 이중으로 묶는다.

7. 대회 당일, 적어도 7:30에는 아침 식사를 한다. 평소에 먹지 않던 걸 먹지 않도록 한다.

8. 출발 2시간 전에 물 1리터를 마신다. 그 다음부터는 보통 때처럼 마신다.

9. 마라톤 중에는, 40km 지점까지 식수대마다 멈추고 물 두 컵을 마신다.(미네랄 음료를 권장한다)

10. 물만큼 중요한 것이 체온이다. 수건이나 스펀지로 닦아내 체온을 낮추고 더운 날씨에는 모자를 물통에 넣어 적신다.

11. 완주한 후에는 물(미네랄 음료)을 많이 마시고 바나나 한 개를 먹는다.


◎ 도시에서 달리기

도심에서 달리는 것이 건강에 안 좋은 것은 아닙니까 ?

\"달리기 루트에 오염 수준이 높다 해도 강도가 낮은 지역에서의 스태미너 훈련은 항상 긍정적인 효과를 발휘합니다.\"라고 독일 라인하임의 훈련 상담 연구소 전문가 관리자인 Bernd Gimbel 박사는 말합니다. Tip:여러 연구에 따르면 나무나 녹식 식물이 있는 거리의 대기 중 이산화탄소 수준은 훨씬 낮습니다.

높은 오존 수준이 위험하지는 않습니까?

달리기 중 오존의 영향으로 기량이 떨어지는 사람은 많지 않습니다(새로운 조사에 따르면 7명 중 1명 꼴 입니다) 심지어 독일 뮌헨 대학의 연구에 따르면 다섯 명 중 한명은 오존이 존재할 때 페의 기능이 향상되는 것으로 나타났습니다.

아침과 저녁 중 언제 뛰는 것이 더 낫습니까?

일을 마친 후에 운동을 해주면 인체의 바이오리듬과는 잘 맞습니다. 독일 Regensburg 의 생물학자인 Dr. Jurgen Zulley는 이렇게 말합니다: \"신체 기능이 가장 활발 때는 약 오후 5시경입니다. 그러나 도시에서는 아침 일찍 운동하는 것이 더 좋습니다. 왜냐하면 교통량도 적고 공기도 깨끗하기 때문입니다. 오후에는 배출 가스 수준이 최고치에 달하고 날씨가 바뀌고(찬 공기와 따뜻한 공기 사이에 교환이 이루어지지 않아서) 일광이 강해지면서 스모그가 나타납니다.

어두운 곳에서 안전하게 뛰려면 어떻게 해야 합니까?

나갈 시간이 저녁밖에 나지 않으십니까? \"반드시 조명이 환한 곳에서 달리시기 바랍니다. 그래야 타이어 트랙처럼 고르지 못한 노면을 잘 알아볼 수 잇습니다\"라고 독일육상선수협회 육상코치인 Hans-Georg Scholz는 충고합니다. 밝을 때보다는 어두울 때 더 집중해야 하므로 워크맨이나 MP3 플레이어는 집에 두고 나오시는 게 좋습니다. 음악은 주위를 분산시키고 주위의 중요한 소음(자동차, 자전거 혹은 경고음)에 대한 반응이 느려질 수 있습니다. 약간의 돈을 투자해 반사띠가 있는 밝은 색 옷을 입거나 반사 안전 자켓을 마련하면 불빛이 비추면 훨씬 눈에 잘 띠일 것입니다.

아스팔트에서 달리는 것이 나쁘지는 않습니까?

이 문제에 대한 답변은 아스팔트에서의 달린다고 해서 뼈나 관절에 어떤 손상도 주지 않는다는 것입니다. 시골길에 비한다면 아스팔트에서는 훨씬 더 안전하고 훨씬 더 효율적으로 그리고 더 편안하게 달릴 수 있습니다. \"아킬레스 건에 문제가 있는 주자들의 경우 아스팔트가 이상적입니다. 발의 움직임을 훨씬 더 잘 조절할 수 있기 때문입니다.\"라고 Schulz 육상 코치는 말합니다. 오래되어서 닳지 않는 한, 안정성이 뛰어난 신발을 신었는데도 통증이 있다면 달리는 기법을 바꿔 보면 도움이 될 것입니다. \"발의 앞부분이 중간 부분에 좀 더 힘을 실어 뛰어 보십시오. 뒤꿈치에 무게를 실었을 때보다 충격 에너지 전환이 훨씬 용이합니다.\" 더욱이, 단단한 콘크리트 노면에 비해 아스팔트는 탄성 화합물이 포함되어 충격을 흡수하고 무릎에도 훨씬 부담이 덜합니다. 거리의 한쪽에 시멘트 포장도로와 다른 쪽에 보행자 도로 사이에서 선택을 해야 한다면 반드시 후자로 결정해야 합니다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2005/07/04 13:19 2005/07/04 13:19
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/409

깊은 밤에는 별이,
더운 여름에는 바람을 거느린 소나기가
있다는 사실은 모든 사람들의 위안입니다.


- 신영복의 <감옥으로부터의 사색> 중에서 -


* 2005년 6월도 참 덥습니다
바람을 거느린 소나기가 시원하게 대지를
늘 적셔 주었으면 좋을 정도로... 그 소나기로
땀흘리며 일하는 모든 사람들의 마음까지
위로해 주기를 바랍니다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2005/07/04 11:12 2005/07/04 11:12
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/991

보이지 않는 은인

어떤 이의 존재로 인해
자신이 분명 행복해졌다고 믿는 그런 사람이
누구의 생애든 반드시 있게 마련이다. 나에게도
실로 많은 은인이 있다. 그중 수십 명은 직접 아는
사람이지만, 나머지는 나 같은 팬이 있다는 사실도
전혀 눈치채지 못하는 사람이다. 상대에게 내가
좋아했다는 마음을 평생 알리지 않고 끝나는
것도 순수한 삶의 한 방법이다.


- 소노 아야코의《사람으로부터 편안해지는 법》중에서-


* 은인.
알게 모르게 도움을 주고
은혜를 베푸는 고마운 사람입니다.
저에게도 그런 은인이 많이 계십니다. 그분들 덕택에
아침편지도 존재하고 오늘의 저도 있게 되었습니다.
그래서 저도 늘, 누군가에게 도움을 주면서도
잘 드러나지 않는 \'보이지 않는 은인\'이
되기를 소원하고 있습니다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2005/07/04 11:11 2005/07/04 11:11
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/990

변화는 두려워하는 사람에게는 위협이 된다.
일이 잘못될지 모르기 때문이다.
변화는 희망을 갖는 사람에게는
힘을 북돋아준다.
일이 잘될지 모르게 때문이다.
변화는 자신감 있는 사람에게는 영감을 준다.
성공의 징검다리인 도전적 과제가 있기 때문이다.
- 킹 위트니, Jr. (퍼스널 래버러터리 사장)


변화가 있으므로 인해 흥망성쇠가 갈리게 됩니다.
안정은 기존 상황이 지속되는 것을 의미하기에
이는 당연한 논리입니다.
문제는 변화를 어떻게 받아들이느냐에 따라
득과 실이 결정된다는 것입니다.
비관론자는 모든 기회 속에서 어려움을 찾아내고
낙관론자는 모든 어려움 속에서
기회를 찾아내기 때문입니다.(윈스턴 처칠)
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2005/07/04 11:10 2005/07/04 11:10
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/1265


블로그 이미지

- 홍반장

Archives

Recent Trackbacks

Calendar

«   2005/07   »
          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
31            
Statistics Graph

Site Stats

Total hits:
251429
Today:
157
Yesterday:
1251