http://steadypost.net/post/knowhow/id/8/

여기서 퍼옴.



과거


  1. date -d 'yesterday' # 어제
  2. date -d '1 day ago' # 1일전 = 어제
  3. date -d '2 day ago' # 2일전
  4. date -d '35 day ago' # 20일전
  5. date -d '1 week ago' # 1주일전
  6. date -d '2 month ago' # 1달전
  7. date -d '3 year ago' # 3년전
  8. date -d '10 second ago' # 10초전
  9. date -d '20 minute ago' # 20분전
  10. date -d '30 hour ago' # 30시간전
  11. date -d '3 year 7 month ago' # 3년 7개월전




미래 

* 과거에서 ago 를 빼면 됨

  1. date -d 'tomorrow' # 내일
  2. date -d '1 day' # 1일후 = 내일
  3. date -d '2 day' # 2일후
  4. date -d '35 day' # 20일후
  5. date -d '1 week' # 1주일후
  6. date -d '2 month' # 1달후
  7. date -d '3 year' # 3년후
  8. date -d '10 second' # 10초후
  9. date -d '20 minute' # 20분후
  10. date -d '30 hour' # 30시간후
  11. date -d '3 year 7 month' # 3년 7개월후



요일 기준


  1. date -d 'this friday' # 이번주 금요일
  2. date -d 'last monday' # 지난 월요일
  3. date -d 'next tuesday' # 다음 화요일



특정 시간을 기준으로 날짜 더하고 빼기


  1. date -d '2010-01-03 07:32:10 + 2 day 5 hours 17 minute'
  2. # 2010년 1월 3일 7시 32분 10초를 기준으로 2일 5시간 17분후



옵션 1


-d 는 --date 옵션으로 사용해도 됩니다. --date 로 쓸때에는 --date= 형식으로 사용하시면 됩니다.

  1. date --date='2 month'



옵션 2


시간단위를 나타내는 day, week, month, year, second, minute, hour 등은 뒤에 s(복수)를 붙여도 되고 안붙여도 됩니다.

  1. date -d '1 day ago'
  2. date -d '1 days ago'



옵션 3


시간을 원하는 형식으로 뽑기위해서는 아래같이 하시면 됩니다.

현재 시간으로부터 2일전의 년-월-일 시:분:초 형식으로 표시하려면

  1. date '+%Y-%m-%d %H:%M:%S' -d '2 day ago'



쉘스크립트에서 해당 시간을 변수에 담기


보통 위와 같은 date 함수는 주로 쉘스크립트에서 사용하게 됩니다. 리눅스 명령으로 가져온 결과값을 변수에 담으려면

  1. yesterday=$(date -d '1 day ago')


또는

  1. yesterday=`date -d '1 day ago'`


변수를 사용할때는

  1. echo $yesterday


Posted by Sumin Family

ls -l 출력 시 날짜 변경( 12월  2009 -> 2009-07-01 08:35 )

 

변경 전

[root@wooseob ~]# ls -l
-rw------- 1 root root  1104 12월 17 03:22 anaconda-ks.cfg
-rw-r--r-- 1 root root 25690 12월 17 03:22 install.log
-rw-r--r-- 1 root root  4508 12월 17 03:21 install.log.syslog

 

# alias ls='ls --color=auto --time-style=long-iso'          날짜표시 변경하는 명령어

 

 

변경 후

[root@wooseob ~]# ls -l
-rw------- 1 root root  1104 2012-12-17 03:22 anaconda-ks.cfg
-rw-r--r-- 1 root root 25690 2012-12-17 03:22 install.log
-rw-r--r-- 1 root root  4508 2012-12-17 03:21 install.log.syslog

 

 

개인 사용자(~/.bashrc 기재)

[root@wooseob ~]# vi ~/.bashrc
# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias ls='ls --color=auto --time-style=long-iso'       -  추가 입력

 

 

 

 

전체 사용자 적용 시

[root@wooseob ~]# vi /etc/bashrc
# /etc/bashrc

# System wide functions and aliases
# Environment stuff goes in /etc/profile

alias ls='ls --color=auto --time-style=long-iso'        -  추가 입력

Posted by Sumin Family
TAG LS, 날짜


http://visu4l.tistory.com/398  여기서 퍼옴.

  1. iostat

    1. 별도의 설치 필요없음, 물리적 드라이버 별로 기본적인 Disk Read/Write 볼 수 있음
    2. 한 개 이상의 디스크 드라이브에 대한 입출력 통계와 CPU 활용량

      arg-cpu
      %user
      %nice
      %system
      %iowait
      %steal
      %idle
      마지막 재부팅 이후의 평균 CPU 활용량 어플리케이션 등 사용자 모드에 소모된 시간 nice를 사용하여 스케줄링 우선순위가 바뀐 프로세스에 소모된 시간 시스템(커널)이 사용한 시간 디스크I/O 요청 때문에 CPU가 대기한 시간 다른 가상 CPU가 서비스하는 동안 비자발적으로 대기한 시간 대기한 시간
      Device
      tps
      kB_read/s
      kB_wrtn/s
      kB_read
      kB_wrtn
      디바이스 구분 초당 전송(입출력) 수 초당 읽혀진 KB (Blk일 경우 512바이트 블록수) 초당 쓰여진 KB (Blk일 경우 512바이트 블록수) 지금까지 읽혀진 KB(Blk일 경우 512바이트 블록수) 지금까지 쓰여진 KB(Blk일 경우 512바이트 블록수)
  2. vmstat
    1. 별도의 설치 필요없음, 시스템의 리소스 상황(CPU, I/O, Memory)을 모니터링 할 수 있음 (http://jikime.tistory.com/286)

    2. vmstat(옵션없음) - 마지막 부팅 이후의 평균값

    3. vmstat 2 10 => 2초 간격으로 10회 정보 갱신

      procs memory swap io system cpu
      r b w swpd free buff cache si so bi bo in cs us sy id wa
      현재 실행중인 프로세스의 수(CPU 접근 대기 중인 실행 가능 프로세스 수) 인터럽트가 불가능한 sleep 상태에 있는 프로세스의 수 (I/O 처리를 하는 동안 블럭 처리된 프로세스) 강제로 스왑아웃된 프로세스 사용하고 있는 swap 메모리 양(사용된 가상 메모리 용량) 사용가능한 메모리 양 버퍼로 사용되고 있는 메모리 양 캐시로 사용되고 있는 메모리 양 swap in(디스크에서 메모리로 스왑된 메모리 용량) swap out(디스크로 스왑되어 나간 메모리 용량) 초당 블럭 디바이스로 보내는 블럭 수(블록 장치로 보내진 블록) 초당 블럭 디바이스로부터 받은 블럭 수(블록 장치에서 받아온 블록) 초당 인터럽트 되는 양 초당 context switch되는 양 사용자의 CPU 사용 시간 비율(CPU가 사용자 수준 코드를 실행한 시간, 백분율 단위) 시스템의 CPU 사용 시간 비율(CPU가 시스템 수준 코드를 실행한 시간, 백분율 단위) CPU idle time(백분율 단위) 입출력 대기
  3. top
    1. 별도의 설치 필요없음, CPU 점유 프로세스들을 실시간으로 조회하는 명령어 (http://weezzle.net/1360)

    • 1줄 top : 시스템의 전반적 상태(가동시간 등)

    • 2줄 Tasks : 프로세스들의 상황

    • 3줄 CPU : CPU의 상황

    • 4줄 Mem : 메모리 상황

    • 5줄 Swap : 스왑 메모리 상황

    • 6줄

      PID
      USER
      PR
      NI
      VIRT
      RES
      SHR
      S
      %CPU
      %MEM
      TIME+
      COMMAND
      프로세스 ID 프로세스를 실행시킨 사용자 ID 프로세스의 우선순위 NICE 값 가상 메모리의 사용량(SWAP+RES) 현재 페이지가 상주하고 있는 크기(Resident Size) 분할된 페이지, 프로세스에 의해 사용된 메모리를 나눈 메모리의 총합 프로세스의 상태(Sleeping, Running, sWapped out process, Zombies) 프로세스가 사용하는 CPU의 사용율 프로세스가 사용하는 메모리의 사용율 CPU TIME, hundredths 실행된 명령어
  4. free
    1. 시스템의 실제메모리와 스왑메모리에 대한 사용현황을 확인할 수 있는 명령어 (http://blog.naver.com/PostView.nhn?blogId=jwmoon74&logNo=100174011942)
    • 1줄 Mem : 시스템의 물리적인 메모리에 대한 사용량을 각 필드 단위로 표시

      total
      used
      free
      shared
      buffers
      cached
      전체 메모리의 용량으 Kbyte단위(default)로 표시 현재 시스템에서 사용중인 메모리의 량을 Kbyte 단위로 표시 현재 시스템에서 사용중이지 않은 메모리의 량을 Kbyte단위로 표시 현재 시스템에서 공유한 메모리의 용량을 표시 현재 시스템에서 buffering된 메모리의 량을 표시 현재 시스템에서 caching된 ㅣ메모리의 량을 표시
    • 2줄 -/+ buffers/cache : 현재 캐시 메모리에서 버퍼링된 사용량을 표시(used/free)
    • 3줄 Swap : 서버설치 시에 결정한 스왑메모리의 량, 스왑메모리는 디스크의 일부분을 메모리로 잡아서 설정되기 때문에 스왑메모리가 많이 사용되고 있다는 것은 시스템의 전체적인 속도가 떨어진다는 것을 의미하며 지속적으로 스왑메모리가 사용된다는 것은 결국 실제 메모리를 증설해야 한다는 것이다.

      total
      used
      free
      시스템의 전체 스왑메모리의 량을 표시 전체 스왑메모리 중에서 현재 사용중인 스왑메모리의 량을 표시 전체 스왑메모리중에서 사용되지 않고 남아 있는 메모리의 량
  5. iotop
    1. 별도의 설치 필요함, Python 2.5+, linux kernel 2.6.20+ 이 2개의 프로그램이 기본적으로 설치되어 있어야 함

      TID PRIO USER DISK READ DISK WRITE SWAPIN IO COMMAND


CPU - perf, top, htop

Memory - valgrind, smem

Disk I/O - nmon, bonnie, sysstat

Network - netperf, iftop, netstat

Posted by Sumin Family

리눅스상의  디스크 IO  확인 방법


dd if=/dev/zero of=/dev/sda1/aaa.tmp  bs=1M count=10000 oflag=direct


조래서..  수치가 어디까지 나와야,, 돠는거지???


130 이상은 나와야... 

'Server Story.... > Linux' 카테고리의 다른 글

ls -l 출력시 날짜 변경 등.  (0) 2014.09.16
Linux Monitering IO,cpu , memory 사용량 측정  (0) 2014.06.20
dd 리눅스 디스크 속도 확인 io  (0) 2014.06.19
apm 설치  (0) 2014.04.23
vmware tool 설치시 에러  (0) 2013.09.03
htaccess 작성/설정하기  (0) 2013.04.26
Posted by Sumin Family
이 글은 2013년 6월 25일에 개정/수정되었습니다.
주기적으로 수정이 되지만 큰 틀은 벗어나지 않을 것입니다.
수정일 기준 CentOS 6.4 기준으로 작성되었습니다.

** 검색해보면 이글을 퍼가신분들이 참 많아요.. 출처를 밝히신분들도 있는반면  무시하신 분들이 생각보다 많네요. 초큼 속상하군요..


CentOS는 RedHat Enterprise의 클론 리눅스다.. 무료로 RHEL의 검증되고 안정된 서버를 구축할 수 있다는 장점을 가지고 있다.


서버용으로 설치한다고는 해도 설치과정은 GUI로 할 수 있으니 파티션 잡는 것만 잘 넘어간다면 어려운 것은 없으니 언급하지 않겠다. 기회가 되면 이것도 한번 다뤄보는 것도 좋을 듯 싶기도 하고..

참고로 좀 안다 싶은 사람들을 위한 것이 아닌 본인처럼 완전 개초보를 위한 글이므로 이 글을 읽는 사람 중에 이건 아니다 싶어 뭔가 한소리 하고 싶은 사람은 미련 없이 "GET OFF!!"하기 바란다...


사실 APM설치에 대해 인터넷에서 검색해보면 굉장히 많은 자료가 나오고 그 자료 마다 컴파일인 설치하는데 있어서의 방법 등에 있어서 상당히 다른 방법을 제시하는 경우가 많다.


그들을 무시 하는 것은 아니지만 초보가 보기에는 상당히 혼란스럽고 어렵기만 하다. 도데체 뭘보고 해야 한단 말인가? 어느 것이 정확한 방법인가? 그리고 꼭 뭔가 하나씩 빼놓고 말한다. 그것 때문에 막혀서 안되는 경우도 허다하고. 또한 안정적으로 검증된, 제공된 방법으로 설치를 하고 싶을 수도 있고.

세세한 커스터마이즈는 나중에 따로 해보고 지금 당장 설치를 원하는 초보들을 위해 yum으로 설치하는 방법을 소개하고자 한다. (더 쉬운 건 첨에 설치할 때 패키지 설치 해버리면 끝이겠지만......)

접기

# yum groupinstall "MySQL Database" "Web Server"
이것으로 한방에 다 끝낼 수도 있지만 뭔가 멋도 없고 재미도없다..

접기


일단 설치는 알아서들 잘했다고 간주하고 인터넷이 되는지 확인 해보자 그래야 yum이던 뭐든 할것이다. 구글사마께 핑을 드려보자.
# ping -c3 google.com
언노운이거나 하면 아래와 같이 파일을 열어서 수정하면 된다.( 6버전에서 이럼 ^^a)
# vi /etc/sysconfig/network-scripts/ifcfg-eth0

ONBOOT=no 를
ONBOOT=yes 로 고쳐주자.
** 편집은 i키를 누르고 수정하면되고 esc키를 눌러 편집 종료, :wq 라고 입력하고 엔터 하면 저장 하고 종료된다. 

수정까지 하고  저장 했다면 아래와 같이 네트워크를 다시 시작해주자.. IP받아오는것을 알 수가 있다
# /etc/rc.d/init.d/network restart

그리고다시 핑테스트를 해보고나서  핑이 잘 뜨면 인터넷은 잘 된다고 보고 일단 업데이트부터 하자!  RHEL은 충분한 테스트와 검증을 거쳐 업데이트 되므로 아주 특별한 이유로 이전 버전을 사용할 이유가 없다면 업데이트는 습관처럼 하는것이 좋겠다.

# yum update

의존성문제도 그렇고 나중에 해도 되지만 먼저 업데이트부터 하는게 좋겠다. 그럼 이제 본격적으로 시작이다.



준비작업
(현 단계에서는 필수가 아니고 약간의 편의를 위함이므로 넘어가도 되고 아래 실제 설치 단계에서도 사용하지는 않는다.)
1. putty
   리눅스 자체 콘솔 보다는 putty가 다루는데 많은 편의를 제공 할 것이다.
   "창 - 변환 - 수신 데이터의 문자 셋 변환"에서 UTF8로 설정하고 접속 하면 한글도 잘 보이고 좋다.(리눅스 설치시 캐릭터셋에 따라 다르다.)

2. FTP서버
  ftp서버 환경을 미리구성하고 놓고 작업을 하면 조금은 더 편하다. 언젠가는 설치 해야 하니까 FTP환경을 구축해보자. 설치는 vsftpd를 해보자.
# yum -y install vsftpd

설정 편집은 다음과 같이 하자.
# vi /etc/vsftpd/vsftpd.conf

편집은 i키를 누르고 수정, esc키를 눌러 편집 종료, :wq 라고 입력하고 엔터 하면 저장 하고 종료.
특 별히 지금은 설정할 필요가 별로 없다. 나중에 인터넷의 각종 글들을 참조 해서 설정해주고 일단 chroot_list만 비활성또는 주석 되어 있는지 확인만 하자. 이유는 내 폴더의 상위에 접속 할 수 있어야 설치 단계에서는 그나마 편하기 때문인데 혼자 집에서 연습삼아 하는것이라면 내버려둬도 상관없지만 나중에 서비스할 서버를 만진다면 보안의 문제가 있으니 반드시 막아두도록 한다.

뿌띠와 FTP서버가 준비 되었으면 설치 작업을 시작 한다.

apacahe, mysql, php순으로 APM 설치

# yum -y install httpd
# yum -y install mysql
# yum -y install php

# yum -y install mysql-server
# yum -y install php-mysql
보통 알아서 빠른 미러를 찾아 의존성까지 확인해서 연계된 필수 패키지까지 알아서 설치 해준다.
이렇게 설치를 마치면 작성일/수정일 기준 
아파치는 2.2.15
php는 5.3.3
으로 설치된다.

추가 관련 라이브러리 설치
# yum -y install gd php-gd
# yum -y install libxml2
# yum -y install openssl 
mod_ssl
# yum -y install php-mbstring
이 밖에도 pear나 pear-MDB2등 원하는 패키지를 설치 할 수도 있다.
이미 설치되어 있는것도 있을 수 있고 아무튼 해보자 ^^; 
삭제된 부분은 gd와 함께 설치되는 패티지들이기 때문에 다시할 필요없다. (gd와 함께 설치되는것이 은근히 많은듯 ^^)

별도로 아래에 있는 것들은 기본 리포지터리에선 없는듯하다. 다른 저장소를 설정하면 설치가 된다.
# yum -y install mhash php-mhash
# yum -y install libmcrypt php-mcrypt
# yum -y install bcmath php-bcmath
# yum -y install soap php-soap


MYSQL 설정
기본관리 db를 설정하고, 권한지정을 해주자
# /usr/bin/mysql_install_db --user=mysql
# chown -R root /usr/bin/
# chgrp -R mysql /usr/bin/
# chown -R mysql /var/lib/mysql/

이제 콘솔에서도 mysql 명령들을 사용 할 수 있도록 등록해보자.
# vi ~/.bash_profile
PATH부분에 다음과 같이 추가 한다
PATH=$PATH:$HOME/bin:/usr/bin

지루한 mysql 설정은 이제 다 끝났다! 다만 재부팅 후 자동으로 실행 할 수 있도록 등록만 해주면 된다. 다시 켜지고 멍하니 서비스 안된다고 손가락 빨지말고. 일단 확인 해보자.
# chkconfig --list | grep mysqld
mysqld  0:off 1:off 2:on 3:on 4:on 5:on 6:off
위와 같이 나오지 않는다면? 아래와 같이 설정하자
# chkconfig --level 2345 mysqld on
다시 확인해 보면 원하는 대로 되어 있을 것이다.

이제 mysql를 시작하고 루트 비밀번호를 설정하고 동작 하는지 확인한 후 mysql은 끝내자.
# /etc/rc.d/init.d/mysqld start
# /usr/bin/mysqladmin -uroot password 비번

동작은 하나?
# netstat -lntp
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      xxxx/mysqld
위와 같은 명령에서 보이는 결과중 "mysqld"  ":::3306" 뭐 이런 글귀가 보이면 정상적으로 동작한다고 생각해도 된다.

APACHE & PHP설정
vi /etc/httpd/conf.d/php.conf

아래 두줄을 찾아 아래처럼 고친다. 

AddHandler php5-script .php .htm .html
AddType application/x-httpd-php-source .phps .php .htm .html <-요건 주석도 지워야 할것임..


** 이 포스트에서는 php.ini수정은 하지 않습니다. 차후에 php.ini 자세한 설정을 원하시는 분은 다른 문서를 참고 하세요.. 

각 항목 내용은 http://blog.daum.net/orangeville/17448464 에서 설명이 잘되어 있으니  참고하시면 좋을 것 같습니다.



수정이 끝났으면 저장 하고  같은 방법으로 httpd.conf 파일을 아래와 같은 부분들을 찾아 수정/추가한다.

vi /etc/httpd/conf/httpd.conf


User apache

  =>User nobody


Group apache

  =>Group nobody

#ServerName www.example.com:80 (자신의 서버이름이니 알아서 적당히)
   => ServerName localhost:80

Options Indexes FollowSymLinks
  => Options -Indexes

AllowOverride None
  => AllowOverride All

DirectoryIndex index.html index.html.var
 => DirectoryIndex index.html index.htm index.php

#AddType application/x-gzip .gz .tgz 을 찾아 그 다음줄에 아래 두줄  내용 추가
AddType application/x-httpd-php .htm .html .php .ph php3 .php4 .phtml .inc
AddType application/x-httpd-php-source .phps

#AddHandler cgi-script .cgi 주석 삭제 
  => AddHandler cgi-script .cgi


** 위 http.conf파일 수정은 아주 아주 기본적인 내용일 뿐이며 virtual host나 ssl적용 방법등은 다른 문서를 참고하시기 바랍니다.


** self sign으로 ssl 설치하기

http://www.xenocafe.com/tutorials/linux/centos/openssl/self_signed_certificates/index.php

비교적 초보용으로 참고하시기 좋은 링크를 남깁니다.



*  
사실 vi vim 리눅스의 에디터는 윈도우즈에 익숙한 사람에게는 없이 당황하게 만드는 소프트웨어중 하나인데(적응만 한다면 최고의 에디터라고는 하지만 본인에게도 적응은 요원하기만 하다. ㅋ) 쉽게 사용을 원한다면 "#yum -y install mc" 해서 mc 사용해 보길 권하는데 mc 자체에서 제공하는 에디터도 조금은 익숙한 모습이고 조금은 편하게 사용 있을 것이다.
 사실 제일 편한건 콘솔에서 직접 하는 것보다 뿌띠로 열어서 하는것과 FTP로 수정 하는것인데 에디트플러스 같은걸로 바로 수정하면 되니까.

여 기서 수정하고 추가 할것이 많기는 많다. 엄청.. 인터넷을 뒤져 보면 이부분에 대한 많은 문서를 접할 수 있을 거라고 생각 되는데  이 문서가 부족하다고(분명 부족하다!) 느끼는 사람이 있거나 입맛에 맞는 설정을 원하는 사람은 맛보기로 설치 해보고 제대로 공부 해보자.

분명 잘(?) 찾아보면 친절히 설명된 많은 문서를 볼 수 있을것이다. 

 

마지막 거의 끝이나머지도 후딱하도록 하자!

 

특별히 다른 것은 없고 부팅 자동 실행이 되도록 되어 있나 확인만 해보자

# chkconfig  --list | grep httpd
httpd  0:off 1:off 2:on 3:on 4:on 5:on 6:off
역시나 위처럼 나오지 않는다면 아래와 같이 설정한다.
# chkconfig --level 2345 httpd on
다시 확인해 보면 원하는 대로 되어 있을 것이다.

이제 apache를 시작해보고 동작이 되는지 확인한다
# /usr/sbin/apachectl start
# netstat -lntp
tcp        0      0 :::80                       :::*                        LISTEN      xxx/httpd
위와 같은 명령에서 보이는 결과중 "httpd"  ":::80" 뭐 이런 글귀가 보이면 정상적으로 동작한다고 생각해도 된다.

끝으로 시스템을 전체적으로 업데이트 해보고 재시작함으로서 모든 설치 과정은 끝난다.
# yum update
# reboot

 

이후 성능 업을 위해 아래 글을 따라가서 젠드 옵티마이저와 e엑셀러레이터를 설치 하면 되겠다..  
2010/08/09 - [Digital 이야기/S/W 이야기] - Zend Optimizer, eAccelerator yum으로 설치하기.

php의 버전 문제로 설치가 되지 않는다면 아래 컴파일 설치 포스트의 젠드 옵티마이저 설치 부분을 참고하면 되겠다.


익숙해졌다면 컴파일로 설치해보는 것도 도전해보자.

2013/06/25 - [Digital 이야기/S/W 이야기] - 컴파일로 APM 설치해보기


 

테스트 설치 환경

RAM :  1024MB

HDD : 20GB

OS image : CentOS-6.4-x86_64-bin-DVD1.iso, CentOS-6.4-x86_64-bin-DVD2.iso

 

참고로 가상머신에서 테스트하고 공유기를 사용중이면 Bridge로 네트워크를 설정하면 호스트OS와 같은 대역으로 IP를 사용하게되서 게스트OS의 네트워크 사용에 무리가 없었다.


 

아래는 위 설정 방법으로 설치된 스크린샷이다.

접기


접기



사실 apache httpd.conf의 설정 등 세세한 것이 아~~~주 많이 남았다. 저대로만으로는 서비스는 당연히 좀 무리가 있기는 하지만 개인 개발용도로는 충분할것으로 생각된다. 하지만 위에 설명한 것 만으로도 처음 글을 시작할 때 yum으로 간단히 설치하기의 취지에 조금 벗어나지 않았나 싶을 정도로 긴 설치였지만, 이런저런 세팅으로 생각보다 좋은 기대성능을 보여준다.


사 실 컴파일 설치시 더 좋은 성능 향상을 기대 할 수는 있다.(사실 컴파일 설치라기보단 컴파일 설치+세세한 튜닝이다.) 다만, 설치하는 사람 마다 노하우가 다르고 말그대로 노하우여서 속속들이 설명 해주는 사람도 드물고 여기저기 물어보고 시행착오를 좀 해야 정상적인 동작을 기대 할 수 있을것이다.

또한, 일관적이고 관리의 편리함을 따진다면 yum 설치만한것이 없다고 개인적으로 생각되고 이후 리눅스를 다루는데 어려움이 없어진다면 시도해보길 바라는 바이다.

 

설치는 차근히 따라만 한다면 쉽게 끝낼 수 있겠지만 아마도 정작 설치법보다 vi의 사용법이 더 어려울이라는 생각이드는데, 사실 본인도 적응하기까지 상당히 많은 시간이 필요했고 아직도 능수능란하게 사용하지는 못한다. vi로 프로그래밍하시는분들 존경하는 바이다.

 

그리고 실제 릴리즈된 버전보다 yum으로 설치하면 버전이 낮은 경우가 많은데 글의 서두에 말했다시피 CentOS RHEL의 클론이다. 즉 안정성에 우선된 검증된 릴리즈를 이용한다는 것이라고 보면 틀리지 않다고 생각된다.  보통 페도라 -> RHEL -> CentOS순으로 테스트되고 튜닝되서 릴리즈 된다고 보면된다.

엔터프라이즈 환경에서의 가장 중요한 점은 성능도 성능이지만 안정성이 최우선시 되는 게 당연하다고 본인은 느끼기 때문에 버전이 현재 릴리즈보다 낮다고 나쁠 건 없지 않겠는가?

또한 위에 살짝 관리자의 능력에 따라 배포판이 무엇이든 웹서버의 성능 또한 달라질 것이니 한가지 배포판에 얽매이지말고 자신에게 맞는 배포판을 찾아 사용해 보길 바란다.

익숙해졌다 생각하면 모든걸 컴파일 해가면 설치해보는 재미도 가져보길.


CentOS 6에서는 더 상위버전이므로 아래 내용은 무시하자. ^^;
추가. 위 방법대로 설치시 PHP 5.1.6으로 설치 된다. 이러저러한 이유로 상위 버전으로 설치하고 싶다면 아래처럼 해보자.

# cd /etc/yum.repos.d
# wget http://dev.centos.org/centos/5/CentOS-Testing.repo
$ yum --enablerepo=c5-testing update php

이렇게 하면 5.2.10으로 설치된다.

나중에 상위버전으로 설치한 경우 반드시 yum update 해줘야 함을 잊지말자! 꼭..

 

 

끝으로 여러분꼐서 알아야 할실것은 여기서는 기본적인 설치에 대한 이야기만 다루었다는  것 입니다. 혹시 페이지가 보이지 않을 수도 있습니다. 분명 APM설치는 저것만 제대로하면 100% 다 됩니다. 다만 방화벽 관련하여 설정하셔야 하는것 잊지 마셔야합니다. 방화벽 관련 문서를 검색해보시길 권장합니다.

setup이 설치 되어 있다면 setup 명령으로 간단히 끄고 켤 수도 있습니다만 자세하게 세팅하시는 것이 좋습니다.

 

그리고 앞에서 몇번 언급 했드시 왕초보를 위한 설치법인지라 설정의 많은 부분이 빠져 있고 어이 없는 세팅도 있습니다. 이 문서는 단지 테스트 화면 보기까지의 여정이랄까요? 보안 및 상세한 설정등은 꼭 다른 문서를 찾아 설정해보시길 부탁드립니다. 첫 발은 쉽게 하셨으니 조금만 노력하시면 금방 하실 수 있을 겁니다.

'Server Story.... > Linux' 카테고리의 다른 글

Linux Monitering IO,cpu , memory 사용량 측정  (0) 2014.06.20
dd 리눅스 디스크 속도 확인 io  (0) 2014.06.19
apm 설치  (0) 2014.04.23
vmware tool 설치시 에러  (0) 2013.09.03
htaccess 작성/설정하기  (0) 2013.04.26
세션 끈김 방지 screen  (0) 2013.04.17
Posted by Sumin Family


일단 CentOS6.2 는 64bit 버전.


VMware Workstation 8 버전.



CentOS 설치 후 VMware 설치하려 했더니 나오는 메세지는


-bash: .vmware-install.pl: /usr/bin/perl: bad interpreter: No such file or directory


위와 같이 엿같은 메세지가 나옴.

아..물론 나 같은 경우 textmode 로 설치했기 때문에 VMwareTools 설치하고 마운트하고 압축 풀고 하는 과정은 여기 블로그에는 생략하겠음.

GUI 환경이면 쉽게 할 수 있자나여. ㅇㅇ..

아무튼 저 메세지가 나오면 아래와 같이 yum 을 이용해 관련된 개발자 툴들을 설치해주자.
쉽게 풀어서 윈도우로 예를 들면 닷넷프레임워크를 필요로 하는 어플리케이션을 실행해야 되는데 닷넷프레임워크가 설치가 되있지 않아서 실행이 안되는거..

저 위에 에러메세지 뒷부분처럼 그런 파일이나 디렉토리가 없다는 문장보다 bad interpreter 를 봤어야 했다..

- gcc
- kernel-devel
- xinetd
- gcc-c++
perl

yum 을 이용해 위와 같은 모듈들을 설치한 후 바로 인스톨 하면 된다.

yum install gcc

위에 처럼 말이다..



Posted by Sumin Family

1. htaccess 를 이용한 디렉토리/페이지에 인증 비밀번호 걸기

less..

우선 .htaccess 파일을 작성합니다.

AuthName "사용자 인증이 필요합니다."
AuthType Basic
AuthUserFile /인증을/해야할/디렉토리의/경로/.htpasswd
AuthGroupFile /dev/null
<Limit GET POST>
require valid-user
</Limit>

Authname 줄에는 빨간 밑줄에 들어갈 메세지를 입력합니다.
사용자 삽입 이미지

AuthUserFile 에는 .htpasswd를 넣어줄 디렉토리의 절대경로를 적습니다.
보통 보통 .htaccess 파일이 있는 위치와 같습니다. 경로명을 잘 모른다면 텔넷으로 접속하여 해당 디렉토리로 이동한 후 pwd 라는 명령어를 통해서 알 수 있습니다.
 인증을 걸을 디렉토리에 경로를 써야 합니다.
Unix 에서
echo $HOME 을 치면 경로를 알아 낼수 있습니다.

사용자 삽입 이미지

파일을 ".htaccess"로 저장하고 원하는 디렉토리에 업로드 합니다.

또는 pwd 라고 치면 풀 경로명이 나옵니다 -0-;;

그러고는 SSH 을 통해 접속합니다.
그리고 그 디렉토리로 이동합니다.
[________@________ ]$ cd public_html
[________@________ public_html]$ cd home
[________@________ home]$

그리고는 명령어
htpasswd -c .htpasswd 사용자 아이디
를 칩니다. 그리고 엔터키
사용자 삽입 이미지
비밀번호를 물을때 입력하시고 엔터 (비밀번호는 표시되지 않음)
다시한번 비밀번호 입력후 엔터.

비밀번호가 서로 맞지 않을 경우 에러가 뜨고
비밀번호가 맞으면 Adding password for user 사용자명 이 뜨게 됩니다.

그럼 끝 -0-

less..



2. htaccess 를 이용한 에러 페이지.

less..

1번과 같은 걸 설정하고 사용자 인증이 실패하면 에러 페이지가 뜹니다.
꼭 그런 경우가 아니더라고 페이지가 없거나 서버 에러등으로 인한 에러가 뜰데 각각의 에러 페이지로 가게 하는 방법입니다.
ErrorDocument ??? /경로/파일

??? 에는 에러 코드를, 경로/파일에는 띄우고 싶은 페이지를 설정하면 됩니다.

에러 리스트

Error 닫기

100 : Continue
101 : Switching protocols
200 : OK, 에러없이 전송 성공
201 : Created, POST 명령 실행 및 성공
202 : Accepted, 서버가 클라이언트 명령을 받음
203 : Non-authoritative information, 서버가 클라이언트 요구 중 일부 만 전송
204 : No content, 클라언트 요구을 처리했으나 전송할 데이터가 없음
205 : Reset content
206 : Partial content
300 : Multiple choices, 최근에 옮겨진 데이터를 요청
301 : Moved permanently, 요구한 데이터를 변경된 임시 URL에서 찾았음
302 : Moved temporarily, 요구한 데이터가 변경된 URL에 있음을 명시
303 : See other, 요구한 데이터를 변경하지 않았기 때문에 문제가 있음
304 : Not modified
305 : Use proxy
400 : Bad request, 클라이언트의 잘못된 요청으로 처리할 수 없음
401 : Unauthorized, 클라이언트의 인증 실패
402 : Payment required, 예약됨
403 : Forbidden, 접근이 거부된 문서를 요청함
404 : Not found, 문서를 찾을 수 없음
405 : Method not allowed, 리소스를 허용안함
406 : Not acceptable, 허용할 수 없음
407 : Proxy authentication required, 프록시 인증 필요
408 : Request timeout, 요청시간이 지남
409 : Conflict
410 : Gone, 영구적으로 사용할 수 없음
411 : Length required
412 : Precondition failed, 전체조건 실패
413 : Request entity too large,
414 : Request-URI too long, URL이 너무 김
415 : Unsupported media type
500 : Internal server error, 내부서버 오류(잘못된 스크립트 실행시)
501 : Not implemented, 클라이언트에서 서버가 수행할 수 없는 행동을 요구함
502 : Bad gateway, 서버의 과부하 상태
503 : Service unavailable, 외부 서비스가 죽었거나 현재 멈춤 상태
504 : Gateway timeout
505 : HTTP version not supported

Error 닫기


less..


3. 외부링크 차단하기

less..

간혹 계정에 있는 이미지나 각종 파일들의 링크를 어디에 올려 트래픽만 늘어나는 경우가 있습니다.
이를 방지하기 위한 방법.. 외부 링크 차단하기..
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?5hoon.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteRule \.(jpg|JPG|gif|GIF)$ - [NC,F,L]
3번째 줄부터 허용할 도메인을 적고, 마지막 줄 괄호 안에는 허용하지 않을 확장자 들을 적으시면 됩니다.

less..


4. 특정 ip 차단하기

less..

가끔 트래픽을 유발하거나 방해가되는 ip 를 차단해야할 경우.
Order Deny,Allow
Deny from 192.168.1.1
Deny from 127.0.0.1
Deny from 다음에 차단할 ip 를 적으시면 됩니다.

less..


5. 서브 도메인 설정하기.

less..

도메인 http://5hoon.com 에 http://blog.5hoon.com 을 쓰기 위해서 호스팅 업체가 서브 도메인을 지원해주지 않으면 htaccess 의 rewrite 모듈로 설정할수 있습니다. 다만 도메인이 지원을 해야 한다는..

RewriteEngine On
RewriteBase /
RewriteCond $1 !^(blog)/
RewriteCond %{HTTP_HOST} ^blog\.5hoon\.com [NC]
RewriteRule ^(.*)$ /blog/$1 [L]
3~5번째 줄을 복사후 계속 딴걸로 바꾸면 많은 서브 도메인들을 사용할수 있습니다.

less..


6. 디렉토리내 파일 목록보기.

less..

디렉토리로 접속하면 기본적으로 index.html,index.php 의 파일로 연결되거나 404 에러가 뜨는 경우가 일반적 입니다. 그러나 이때 디렉토리내에 있는 파일들을 보고 싶을때..
<Files ~ "^.(htaccess|htpasswd)$">
deny from all
</Files>
Options Indexes
order deny,allow
첫 세줄은 .htaccess 와.htpasswd 의 접근을 막는 것입니다... 이게 보이면 -_-;
반대로 디렉토리내 파일 목록을 공개 하지 않을려면 4번째줄의
Options Indexes


Options -Indexes

로 바꾸면 됩니다.

Posted by Sumin Family
TAG htaccess

원격 콘솔 에서  오래 진행 되는 작업중  세션이 끊길때가 있다. 


이때 아래처럼 작업한다. 



linux 시스템 screen 이 설치된곳에서


처음 시작할때 screen -S 작업명

여러개의 screen 이 있을경우  어떤것이 있는지 알아볼때   screen -list

이미 screen 이 진행 되고 있는곳에 다시 들어갈때 screen -r 작업명 or number



screen 상태에서  평소 사용하던 방법으로 작업 진행.


그 작업을 그대로 놔둔상태에서 screen 나오기   ctrl+a  and  d 

스크린 작업 종료시  exit







Posted by Sumin Family
TAG Screen



ERROR: A required package, libcap, was not found on your Linux x86_64 RedHat.
       Please install required package and run Adobe Flash Media Server installer again.

Try following command:

ln -s /lib64/libcap.so.2 libcap.so.1

you can find libcap.so.2 by using command: locate libcap.so.2 

Posted by Sumin Family

1. 시스템 기본정보 확인
[root@test /]# uname -a
Linux test 2.6.18-238.el5PAE #1 SMP Thu Jan 13 17:10:20 EST 2011 i686 i686 i386 GNU/Linux
[root@test /]#
[root@test /]#

2. 디스크의 파티션 확인
[root@test /]#
[root@test /]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             9.7G  1.2G  8.1G  13% /
/dev/sda3             201G  188M  190G   1% /home
tmpfs                  16G     0   16G   0% /dev/shm
[root@test /]#

3. 물리적인 디스크 확인
    ; 추가 장착된 /dev/sdb 를 ext4 파일시스템을 만들겠습니다.
[root@test /]#
[root@test /]# fdisk -l

Disk /dev/sda: 249.5 GB, 249510756352 bytes
255 heads, 63 sectors/track, 30334 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1305    10482381   83  Linux
/dev/sda2            1306        3366    16554982+  82  Linux swap / Solaris
/dev/sda3            3367       30334   216620460   83  Linux

Disk /dev/sdb: 249.5 GB, 249510756352 bytes
255 heads, 63 sectors/track, 30334 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
[root@test /]#
[root@test /]#

4. 새로운 파티션 생성
[root@test /]#
[root@test /]# fdisk /dev/sdb

The number of cylinders for this disk is set to 30334.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help):
Command (m for help):
Command (m for help):
Command (m for help): p

Disk /dev/sdb: 249.5 GB, 249510756352 bytes
255 heads, 63 sectors/track, 30334 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

Command (m for help):
Command (m for help):
Command (m for help):
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-30334, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-30334, default 30334):
Using default value 30334

Command (m for help):
Command (m for help):
Command (m for help):
Command (m for help): p

Disk /dev/sdb: 249.5 GB, 249510756352 bytes
255 heads, 63 sectors/track, 30334 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1        1       30334   243657823+  83  Linux

Command (m for help):
Command (m for help):
Command (m for help):
Command (m for help): w        <- 저장은 꼭! 합시다^^
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@test /]#

5. 생성된 파티션 확인
[root@test /]#
[root@test /]# fdisk -l

Disk /dev/sda: 249.5 GB, 249510756352 bytes
255 heads, 63 sectors/track, 30334 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1305    10482381   83  Linux
/dev/sda2            1306        3366    16554982+  82  Linux swap / Solaris
/dev/sda3            3367       30334   216620460   83  Linux

Disk /dev/sdb: 249.5 GB, 249510756352 bytes
255 heads, 63 sectors/track, 30334 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       30334   243657823+  83  Linux
[root@test /]#
[root@test /]#
[root@test /]#

6. ext4 파일시스템을 사용할 수 있게 e4fsprogs 를 설치
[root@test /]#
[root@test /]# yum install e4fsprogs
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.daum.net
 * extras: centos.mirror.cdnetworks.com
 * updates: ftp.riken.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package e4fsprogs.i386 0:1.41.12-2.el5 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================================
 Package                        Arch                      Version                            Repository                 Size
=============================================================================================================================
Installing:
 e4fsprogs                      i386                      1.41.12-2.el5                      base                      1.1 M

Transaction Summary
=============================================================================================================================
Install       1 Package(s)
Upgrade       0 Package(s)

Total download size: 1.1 M
Is this ok [y/N]: y
Downloading Packages:
http://ftp.daum.net/centos/5.6/os/i386/CentOS/e4fsprogs-1.41.12-2.el5.i386.rpm: [Errno 14] HTTP Error 404: Not Found
Trying other mirror.
e4fsprogs-1.41.12-2.el5.i386.rpm                                                                      | 1.1 MB     00:01   
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : e4fsprogs                                                                                             1/1

Installed:
  e4fsprogs.i386 0:1.41.12-2.el5                                                                                           

Complete!
[root@test /]#

<e4fsprogs 관련 파일 참고>

[root@test ~]# rpm -ql e4fsprogs
/etc/mke4fs.conf
/sbin/debuge4fs
/sbin/dumpe4fs
/sbin/e4fsck
/sbin/e4image
/sbin/e4label
/sbin/e4undo
/sbin/finde4fs
/sbin/fsck.ext4
/sbin/fsck.ext4dev
/sbin/mke4fs
/sbin/mkfs.ext4
/sbin/mkfs.ext4dev
/sbin/resize4fs
/sbin/tune4fs
/usr/share/doc/e4fsprogs-1.41.12
/usr/share/doc/e4fsprogs-1.41.12/README
/usr/share/doc/e4fsprogs-1.41.12/RELEASE-NOTES
/usr/share/locale/ca/LC_MESSAGES/e4fsprogs.mo
/usr/share/locale/cs/LC_MESSAGES/e4fsprogs.mo
/usr/share/locale/de/LC_MESSAGES/e4fsprogs.mo
/usr/share/locale/es/LC_MESSAGES/e4fsprogs.mo
/usr/share/locale/fr/LC_MESSAGES/e4fsprogs.mo
/usr/share/locale/id/LC_MESSAGES/e4fsprogs.mo
/usr/share/locale/it/LC_MESSAGES/e4fsprogs.mo
/usr/share/locale/nl/LC_MESSAGES/e4fsprogs.mo
/usr/share/locale/pl/LC_MESSAGES/e4fsprogs.mo
/usr/share/locale/sv/LC_MESSAGES/e4fsprogs.mo
/usr/share/locale/tr/LC_MESSAGES/e4fsprogs.mo
/usr/share/locale/vi/LC_MESSAGES/e4fsprogs.mo
/usr/share/locale/zh_CN/LC_MESSAGES/e4fsprogs.mo
/usr/share/man/man5/e4fsck.conf.5.gz
/usr/share/man/man5/mke4fs.conf.5.gz
/usr/share/man/man8/debuge4fs.8.gz
/usr/share/man/man8/dumpe4fs.8.gz
/usr/share/man/man8/e4fsck.8.gz
/usr/share/man/man8/e4image.8.gz
/usr/share/man/man8/e4label.8.gz
/usr/share/man/man8/e4undo.8.gz
/usr/share/man/man8/fsck.ext4.8.gz
/usr/share/man/man8/fsck.ext4dev.8.gz
/usr/share/man/man8/mke4fs.8.gz
/usr/share/man/man8/mkfs.ext4.8.gz
/usr/share/man/man8/mkfs.ext4dev.8.gz
/usr/share/man/man8/resize4fs.8.gz
/usr/share/man/man8/tune4fs.8.gz

[root@test /]#
[root@test /]#

7. 새로 만든 파티션을 ext4 파일시스템으로 생성
[root@test /]#
[root@test /]# mkfs.ext4 /dev/sdb1
mke4fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
15228928 inodes, 60914455 blocks
3045722 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
1859 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872

Writing inode tables: done                           
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first.  Use tune4fs -c or -i to override.
[root@test /]#

8. 새로운 디렉토리(/data)에 마운트
[root@test /]#
[root@test /]# mkdir /data
[root@test /]#
[root@test /]# mount /dev/sdb1 /data
[root@test /]#
[root@test /]#
[root@test /]# df -Th
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/sda1     ext3    9.7G  1.2G  8.1G  13% /
/dev/sda3     ext3    201G  188M  190G   1% /home
tmpfs        tmpfs     16G     0   16G   0% /dev/shm
/dev/sdb1     ext4    229G  188M  217G   1% /data
[root@test /]#

9. ext4는 e2label이 적용되지 않는다.
[root@test /]#
[root@test /]# e4label
Usage: e4label device [newlabel]
[root@test /]#
[root@test /]# e4label /dev/sdb1 /data
[root@test /]#
[root@test /]#
[root@test /]# e4label /dev/sdb1
/data
[root@test /]#
[root@test /]#


10. 자동으로 /data 파티션을 마운트하도록 설정
[root@test /]# vi /etc/fstab

LABEL=/1                /                       ext3    defaults        1 1
LABEL=/home             /home                   ext3    defaults        1 2
LABEL=/data             /data                   ext4    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
LABEL=SWAP-sda2         swap                    swap    defaults        0 0
~
~
:wq!
[root@test /]# reboot


Posted by Sumin Family
TAG ext4


티스토리 툴바