출처 http://www.lug.or.kr/docs/LINUX/others/01-05-4.htm

1) VG, PV, LV
VG(Volume Group)은 LVM의 가장 기본적인 요소이다. 쉽게 말하자면 가상 디스크라고 할 수 있는데, 하나 이상의 실제 물리적으로 존재하는 블록 디바이스가 모여서 VG를 이루게 된다.
그 물리적인 블록 디바이스를 PV(Physical Volume)라고 하는데, 거의 대부분의 장치를 PV로 쓸 수 있다. 하드디스크 및 그 파티션, 소프트웨어/하드웨어 RAID 장치, 심지어 Loopback 블록 디바이스(파일 시스템상의 파일을 블록 디바이스처럼 쓸 수 있게 해준다)까지도 말이다.
PV와 대비되는 것이 LV(Logical Volume)이다. 이것은 가상 파티션이라고도 할 수 있는데, VG를 적당히 나누어 할당한 것이 LV이다. 사용자는 LV를 일반 디스크나 파티션처럼 쓰면 된다.



2) PE와 LE
PE(Physical Extent)와 LE(Logical Extent)는 각각 물리적 할당단위와 논리적 할당단위를 뜻한다. 이 둘은 물리적인 위치나 크기는 같다.
그러므로 PE가 LV에 할당되면 LE가 된다라고 볼 수 있다.
VG를 나누어 LV로 할당할 때 LVM은 하드디스크의 섹터처럼 작은 단위로 하지 않고 적당한 크기의 PE로 하게 된다. 그 이유는 할당단위가 극히 작으면, 할당정보가 엄청나게 커지고, 그에따라 시스템의 성능도 느려질 것이다. 또한 할당할 수 있는 크기에도 한계가 생길 것이다. PE의 크기는 VG를 만들 때에 정해지는데, 그에 따라서 VG의 최대 크기가 정해진다. 하나의 VG에는 65536개까지 PE를 할당할 수 있고, PE의 크기는 최소 8KB에서 2배씩 늘어나 최대 512MB까지이다. 그러므로 VG의 최대 크기의 범위는 최소 512MB(8KB x 65536)에서 최대 32TB(512MB x 65536)일 것이다.

3) VG 만들기, 이름 바꾸기, 지우기
만들어진 PV들을 합쳐서 하나의 VG로 만드는 명령은 vgcreate이다.
아래는 그 예이다.

# vgcreate -s 16m new_vg /dev/sda /dev/sdb /dev/sdc
위의 명령은 세개의 SCSI 디스크를 합쳐서 new_vg라는 VG를 만든다는 것이다.
옵션 ‘-s 16m’은 PE의 크기를 16MB로 정하는 것인데, 만약 옵션 ‘-s’가 생략되면 기본적으로 PE의 크기는 4MB가 된다.  
VG가 만들어지면 /dev/VolumeGroupName라는 형식으로 디렉토리가 생기게 된다. 위의 예에서는 /dev/new_vg 가 될 것이다.

VG의 이름을 바꾸려면 vgrename 이라는 명령을 아래와 같이 쓰면 된다.
# vgrename new_vg vg00

VG에 LV가 남아있지 않고 비활성화되어 있으면 vgremove로 지울 수 있다. 비활성화시키는 방법은,
# vgchange -a n vg00

이고, 다음의 명령으로 지워진다.
# vgremove vg00

4)  VG 확장시키기, 축소시키기
VG의 확장과 촉소는 PV의 추가, 제거로 이루어진다.

VG에 PV를 추가하는 명령은 vgextend인데, vg00이라는 VG에 PV인 /dev/hda2를 추가하려면 다음과 같이 실행해야 한다.
# vgextend vg00 /dev/hda2

PV를 VG에서 제거하는 명령은 vgreduce이다. 그러나 PV에 PE가 할당되어 있으면 제거되지 않는다. 그 할당된 PE를 다른 PV로 옮겨야 제거될 것이다. 빈 PV인 /dev/hda2를 vg00에서 제거하려면,
# vgreduce vg00 /dev/hda2


4)  LV 만들기, 이름 바꾸기, 지우기

VG에 LV를 만들면 /dev/VolumeGroupName/LogicalVolumeName의 형식으로 블록 디바이스가 만들어진다. 이것은 일반 블록 디바이스와 다를 바 없는 용도로 쓸 수 있다.

LV 를 만드는 명령은 lvcreate인데 일반적인 예는 다음과 같다.
# lvcreate -L 4g -n data vg00

위의 명령은 4GB 크기로 vg00이라는 VG에 data라는 새로운 LV를 만드는 것이다. 옵션 ‘-L’은 LV의 크기를 지정하는 것인데, 숫자 뒤의 접미사에 따라 숫자의 단위가 달라진다. k는 KB, m은 MB, g는 GB, t는 TB를 뜻한다. 만약, 접미사가 안 붙어있으면 숫자의 단위는 MB가 된다. ‘-L’ 대신 ‘-l’를 쓸 수도 있는데, ‘-l’ 뒤에는 LE의 갯수를 쓰면 된다.

LV의 이름을 바꾸는 것은 아래의 명령처럼 간단하고,
# lvrename /dev/vg00/data /dev/vg00/db

지우는 것 또한 간단하다.
# lcremove /dev/vg00/db

5)  LV 확장시키기
LV를 확장시키는 명령은 lvextend 인데, 다음은 그 예이다.

# lvextend -L +2g /dev/vg00/db
위의 명령은 /dev/vg00/db의 크기를 2GB 만큼 늘린다. 기존의 크기가 4GB 였다면, 옵션 ‘-L 6g’를 줬어도 같은 결과를 보일 것이다. 역시 여기에서도 옵션 ‘-l’를 쓰면 LE 단위로 늘릴 수 있다.

LV의 크기가 커졌어도 파일 시스템에는 영향을 주지 않으므로 파일 시스템 고유의 툴을 이용하여 확장 해주어야 한다.
한 가지 주의해야 할 것은 이렇게 크기를 늘릴 때 순서를 뒤바꾸면 절대 안 된다는 것이다. LV 확장 다음에 파일 시스템의 확장이다.

다음은 파일 시스템 별 확장 방법이다.

* ext2 : ext2 파일 시스템의 크기를 바꿀 수 있는 명령으로는 resize2fs이 있는데, e2fsprogs 1.19버전 이상에는 기본적으로 포함되어 있다. 그 이하의 버전을 쓴다면 ext2resize라는 프로그램을 다음의 사이트에서 구할 수 있다.

http;//ext2resize.sourceforge.org

다음은 일반적인 ext2 의 확장 절차이다.

# umount /var/lib/mysql
# lvextend -L +10g /dev/databases/mysql
# resize2fs /dev/databases/mysql
# mount /dev/databases/mysql /var/lib/mysql

LVM tool에 포함되어있는 e2fsadm을 쓰면 LV 확장과 파일 시스템의 확장을 동시에 할 수 있다. 다음의 명령은,

# e2fsadm?L +10g /dev/databases/mysql

다음의 두 명령과 같다.

# lvextend -L +10g /dev/databases/mysql
# resize2fs /dev/databases/mysql

* reiserfs : reiserfs는 resize_reiserfs 라는 명령으로 크기를 바꿀 수 있다.

마운트된 상태에서도 크기를 늘릴 수 있는데, 그 예는 다음과 같다.

# lvextend -L +5g /dev/devel/cvs
# resize_reiserfs -f /dev/devel/cvs

언마운트해서 늘리려면 다음 같이 한다.

# umount /var/cvs
# lvextend -L +5g /dev/devel/cvs
# resize_reiserfs -f /dev/devel/cvs
# mount /dev/devel/cvs /var/cvs

6)  LV 축소시키기
lvreduce는 LV의 크기를 줄이는데, 늘릴 때와 마찬가지로 파일 시스템과 별개로 이루어지므로 데이터를 잃어버릴 수 있으니 상당히 조심해야 한다.

작업의 순서는 확장할 때와는 반대로, 파일 시스템의 축소 다음에 LV의 축소이다.

각 파일 시스템 별 축소 방법이다.

* ext2 : e2fsadm 을 쓰는 것이 간단하다.

# umount /home
# e2fsadm -L -2g /dev/vg00/home
# mount /dev/vg00/home /home

* reiserfs : 크기를 늘릴 때와는 달리 마운트 된 상태에서는 줄일 수 없다.

# umount /usr
# resize_reiserfs -s -1g /dev/vg00/usr
# lvreduce -L -1g /dev/vg00/usr
# mount /dev/vg00/usr /usr

7)  설정의 백업과 복구  

LVM Tool들은 기본적으로 몇몇을 제외하고 동작 전의 설정상태를 자동으로 백업해둔다.(절대 데이터의 백업이 아니다!) 그 백업파일들은 /etc/lvmconf 라는 디렉토리에 VolumeGroupName.conf{,.[0-9].old}라는 이름으로 만들어진다. 뒤에 번호가 붙어있지 않은 것은 현재의 설정 내용이고, 그 번호가 클수록 오래된 내용이다. 그러므로 바로 전의 설정 내용을 담고 있는 파일에는 이름 뒤에는 .1.old가 붙어있다.

먼저 설정 백업 파일의 내용을 보려면 다음과 같이 한다.

# vgcfgrestore -f /etc/lvmconf/vg00.conf.1.old -ll -n vg00

이 파일을 이용해 설정을 복구하려면 다음과 같이 한다.

# vgchange -a n vg00
# vgcfgrestore -f /etc/lvmconf/vg00.conf.1.old -n vg00
# vgchange -a y vg00

'리눅스' 카테고리의 다른 글

APM from source  (0) 2012.03.30
특정 폴더 또는 파일 제외하고 압축하기  (0) 2012.03.29
특정 폴더 또는 파일만 압축풀기  (0) 2012.03.29
리눅스 bonding 구성  (0) 2012.03.29
CentOS5 에 Oracle 10g 올리기  (0) 2012.03.29
Posted by no1ss
,

APM from source

리눅스 2012. 3. 30. 10:36

mysql-5.5.20
httpd-2.4.1
php-5.3.10

1. 설치전 준비사항
# rpm -qa httpd php mysql
httpd-2.2.3-43.el5.centos
# rpm -e --nodeps httpd-2.2.3-43.el5.centos

  1-1 컴파일 패키지 설치
# rpm -qa gcc* gcc-c++* cpp* compat-gcc* flex*
# yum -y install gcc gcc-c++ cpp compat-gcc-34-g77 flex

  1-2 라이브러리 설치
# rpm -qa libjpeg* libpng* freetype* gd-*
# yum -y install libjpeg libpng freetype gd
# yum -y install libjpeg-devel libpng-devel freetype-devel gd-devel
# yum -y install openssl openssl-devel
# yum -y install libtermcap-devel ncurses-devel libc-client-devel bzip2-devel libxml2-devel
# yum -y install bison

2.mysql
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DEFAULT_CHARSET=utf8 -DWITH_EXTRA_CHARSETS=all -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_TCP_PORT=3306

필요한 라이브러리를 찾을수 없다며 중간에 실패하는 경우도 있다
그러면 해당 라이브러리를 설치해주자

"Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:83 (MESSAGE):
Curses library not found.  Please install appropriate package,"
# yum install ncurses-devel
# rm -f  CMakeCache.txt   ( Equivalent to ” make clean “  )
# Again run the cmake command after fixing the curses error.

# make
# make install


# groupadd mysql
# useradd -g mysql -M -s /sbin/nologin mysql
# chown -R root /usr/local/mysql
# chown -R mysql.mysql /usr/local/mysql/data
# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
# /usr/local/mysql/scripts/mysql_install_db --user=mysql

FATAL ERROR: Could not find ./bin/my_print_defaults

If you compiled from source, you need to run 'make install' to
copy the software into the correct location ready for operation.

If you are using a binary release, you must either be at the top
level of the extracted archive, or pass the --basedir option
pointing to that location.

# cd ..
# ./scripts/mysql_install_db --user=mysql

[root@centos_vm data]# /usr/local/mysql/bin/mysqladmin -u root password [password]
[root@centos_vm mysql]# /usr/local/mysql/bin/mysqld_safe --user=mysql &
[root@centos_vm bin]# /usr/local/mysql/bin/mysql -u root -p
Enter password:

환경변수 등록
# vi .bash_profile
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
# source .bash_profile

# /usr/local/mysql/support-files/mysql.server start
# /usr/local/mysql/support-files/mysql.server stop





*httpd
1. 선행작업
Apache Portable Runtime Project (http://apr.apache.org) 에 방문하여
apr, apr-util 을 다운로드 받는다
apr, apr-util을 apache httpd 2.4.1 의 srclib 디렉터리내에 apr, apr-util로 압축을 해제하고
'--with-included-apr' 옵션을 준다
그외 따로 컴파일 하려면 apr 과 apr-util을 따로 설치하고 Apache httpd 2.4.1 컴파일 설정시에 --with-apr=[apr:prefix] --with-apr-util=[apr-util:prefix] 를 옵션으로 넣어 컴파일한다.

2. 설치
# ./configure --prefix=/usr/local/apache --enable-mods-shared=all --enable-so --enable-rewrite --enable-ssl --with-included-apr --enable-mpms-shared=all
# make
# make install

3. 환경설정
 3-1 자동실행 설정
# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
# chkconfig --add httpd
httpd 서비스는 chkconfig 를 지원하지 않습니다

chkconfig를 사용하기 위해서 실행스크립트 파일에 아래 내용을 2번째 줄부터 추가해 준다
# vi /etc/init.d/httpd
# chkconfig: 2345 90 90
# description: init file for Apache server daemon
# processname: /usr/local/apache/bin/apachectl
# config: /usr/local/apache/conf/httpd.conf
# pidfile: /usr/local/apache/logs/httpd.pid
# chkconfig --add httpd

  3-2 환경설정
# vi /usr/local/apache/conf/httpd.conf
User , Group daemon 을 nobody 로 변경
User nobody
Group nobody

#ServerName www.example.com:80
   => ServerName 서버ip 혹은 도메인:80

CustomLog "logs/acces_log" common 을 찾아 아래줄처럼 수정(웹로그파일에 이미지에 관한 로그내역을 기록하지 않기 위한 설정이다)
SetEnvIfNoCase Request_URI (gif|png|jpg|css|js|bmp|jpeg|swf)$ IMAGE=1
CustomLog "logs/acces_log" common env=!IMAGE
 
  3-3 방화벽 열어주기
# vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT



*php
1. 설치
# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --with-imap-ssl --disable-debug --with-iconv --with-gd --with-jpeg-dir --with-png-dir --with-libxml-dir --with-freetype-dir --with-zlib-dir --with-config-file-path=/usr/local/apache/conf --enable-safe-mode --enable-ftp --enable-sockets
# make; make install

--with-apxs2=/usr/local/apache/bin/apxs
공유된 apache 모듈을 함께 연동하기 위한 컴파일 옵션이다 php와 apache를 연동하기 위해 php 모듈을
DSO 방식으로 설정하기 위한 옵션이다
--with-config-file-path=/usr/local/apache/conf
php설정파일 php.ini 파일이 존재할 위치 지정

# cp php.ini-dist /usr/local/apache/conf/php.ini

# grep php /usr/local/apache/conf/httpd.conf
LoadModule php5_module        modules/libphp5.so
# ls -l /usr/local/apache/modules/libphp5.so
-rwxr-xr-x 1 root root 17178287  8월  4 18:19 /usr/local/apache/modules/libphp5.so

2. 환경설정
# vi /usr/local/apache/conf/httpd.conf
DirectoryIndex index.html index.html.var
 => DirectoryIndex index.html index.htm index.php

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

# vi /usr/local/apache/htdocs/phpinfo.php
<? phpinfo(); ?>
 
웹브라우저에서 확인한다
http://서버ip/phpinfo.php


"AddType application/x-httpd-php-source .phps
php 파일을 <? 로 시작하는것을 제대로 인식하도록 하는 설정
vi /usr/local/apache2/conf/php.ini
short_open_tag = On "

*ZendGuardLoader
# tar xvzf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz
# cd php-5.3.x/
php-5.3.x]# ls
ZendGuardLoader.so

해당 파일을 php 확장모듈 디렉토리로 복사(어차피 절대경로 잡아줄것이기 때문에 자유롭게 복사하자)

php-5.3.x]# cp ZendGuardLoader.so /usr/local/apache/modules/

php-5.3.x]# vi /usr/local/apache/conf/php.ini
[Zend]
zend_extension=/usr/local/apache/modules/ZendGuardLoader.so

아파치 재시작

*실패
Failed loading /usr/local/php/modules/ZendGuardLoader.so:  /usr/local/php/modules/ZendGuardLoader.so: undefined symbol: compiler_globals
기존은 성공했는데 왜 loading fail 나는지 모르겠다
기존과 다른점은
centos 5.5 32bit 에서 64bit 로
httpd-2.2.22 에서 httpd-2.4.1 로 바뀌었다

구글링을 하다보니 원인을 알꺼 같다
1)에러시 Failed Loading /usr/local/php/modulues/ZendGuardLoader.so:  /usr/local/php/modulues/ZendGuardLoader.so: cannot open shared directory
 
2)에러시  /usr/local/php/modulues/ZendGuardLoader.so:undefined symbol: compiler_globals
 
1,2번 에러시에는 아파치가 worker 로 설치 되지 않았는지 살펴 본다..
아파치가 prefork로 설치 되어야만 zend 설치가 가능합니다.

그래서 확인해봤다

# ./apachectl -l
Compiled in modules:
  core.c
  mod_so.c
  http_core.c
worker 아니지 않은가.. ????
Posted by no1ss
,
출처  http://seroot.com/


명령어 사용방법은 --exclude 구문을 사용하고 그 뒤에 제외할 파일 확장자, 디렉토리 등을 열거하면 됩니다.
( --exclude /제외디렉토리 /압축디렉토리)


예1) 특정 확장자 (jpg) 를 가진 파일은 제외하고 tar 압축할때
       tar cvf backup.tar --exclude *.jpg /home/nplecom/public_html/

예2) 특정 다중 확장자 (jpg, gif, zip) 를 가진 파일은 제외하고 tar 압축할때
       tar cvf backup.tar --exclude *.jpg --exclude *.gif --exclude=*.zip /home/nplecom/public_html/

예3) 특정 디렉토리 (session) 은 제외하고 tar 압축할때
       tar cvf backup.tar --exclude session /home/nplecom/public_html/

'리눅스' 카테고리의 다른 글

LVM(Logical Volume Manager) on Linux  (0) 2012.04.12
APM from source  (0) 2012.03.30
특정 폴더 또는 파일만 압축풀기  (0) 2012.03.29
리눅스 bonding 구성  (0) 2012.03.29
CentOS5 에 Oracle 10g 올리기  (0) 2012.03.29
Posted by no1ss
,
출처 http://www.kunwi.co.kr/

 

이번에는 압축파일에서 특정 폴더만 압축 풀고 싶을 때 사용하는 기능입니다.
(특정 파일만도 가능합니다요)

우선 다음과 같은 명령어를 보시겠습니다.
tar tvf test.tar.gz

이렇게 치면 압축된 파일의 경로와 이름, 용량이 출력됩니다.

옵션 설명을 보자면 아래와 같습니다.

t : 묶여진 tar 파일의 내용물(List)을 출력합니다
v : 파일들을 묶거나 해체할 때 파일들의 이름과 크기를 표시합니다.
f : 사용할 tar 파일을 지정합니다.

자 저렇게 위와 같은 명령어를 치면 대략 예제로 아래와 같이 출력이 될 것입니다.

drwxr-xr-x root/root      0 2010-03-28 01:01:01 test/
-rw-r--r-- root/root    777 2010-03-28 02:02:02 test/test.php
-rw-r--r-- root/root    777 2010-03-28 02:02:02 test/test2.php
drwxr-xr-x root/root      0 2010-03-28 01:01:01 test2/
-rw-r--r-- root/root    777 2010-03-28 02:02:02 test2/test2.php

자 이제 경로가 나왔으니 특정 파일 푸는 법은 아래와 같이 해주시면 됩니다.

tar xvfzp test.tar.gz test2/test2.php

이렇게 하면 test2.php 파일만 압축이 풀리게 됩니다.

그리고 응용해서 아래와 같이 사용하는 방법도 있습니다.

tar xvfzp test.tar.gz ` tar tf test.tar.gz | grep "/test2/" `

이렇게 하면 경로에 '/test2/' 가 들어있는 경로 및 파일은 다 압축이 해제되어요~


음 그리고 만약 다른 디렉토리에 풀고 싶으시면 -C 옵션을 주시면 되구요

tar xvfzp test.tar.gz -C ./newfolder/

특정파일/디렉토리는 이상하게 -C 옵션 줘도 새로운 디렉토리로 압축이 풀리지는 않네요...ㅋ

'리눅스' 카테고리의 다른 글

APM from source  (0) 2012.03.30
특정 폴더 또는 파일 제외하고 압축하기  (0) 2012.03.29
리눅스 bonding 구성  (0) 2012.03.29
CentOS5 에 Oracle 10g 올리기  (0) 2012.03.29
vsftpd.conf 설정  (0) 2012.03.28
Posted by no1ss
,

리눅스 bonding 구성

리눅스 2012. 3. 29. 16:05

출처  http://celltwo.tistory.com/115


1. 본딩(bonding)이란?


여러개의 NIC을 논리적으로 묶어서 한개의 NIC으로 묶어서 NIC의 갯수 만큼 대역폭을 확장하는 기술이다. 100M의 NIC을 2개를 묶어서 200M의 NIC으로 구성 할 수도 있으며, 2개의 NIC을 한개의 NIC으로 묶어서 active와 stand by로 구성을 할 수도 있다.(Fault Tolerance의 역할을 한다)

아래에서는 뒤에 언급한 active와 stand by를 구성 할 것이다.
VMware에서 테스트를 하였으며, OS는 CentOS 5.5 i386 버전을 사용하였다.


2. 본딩을 하기 위해서 네트워크 환경을 변경한다.

[root@CentOS ~]#
[root@CentOS ~]# cd /etc/sysconfig/network-scripts/
[root@CentOS network-scripts]# vi ifcfg-bond0    
# ifcfg-bond0 파일은 생성해야 하며, 아래 값을 넣으면 된다.
DEVICE=bond0                                         
BOOTPROTO=none
IPADDR=192.168.133.130
NETMASK=255.255.255.0
ONBOOT=yes

USERCTL=no


[root@CentOS network-scripts]# vi ifcfg-eth0
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
DHCP_HOSTNAME=CentOS

아래와 같이 변경한다.

# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
USERCTL=no
MASTER=bond0                             
SLAVE=yes
BOOTPROTO=none

ONBOOT=yes
DHCP_HOSTNAME=CentOS



[root@CentOS network-scripts]# vi ifcfg-eth1
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth1
BOOTPROTO=dhcp
ONBOOT=yes
DHCP_HOSTNAME=CentOS

아래와 같이 변경한다.

# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth1
USERCTL=no
MASTER=bond0                           
SLAVE=yes
BOOTPROTO=none

ONBOOT=yes
DHCP_HOSTNAME=CentOS



[root@CentOS network-scripts]# cd /etc/sysconfig/
[root@CentOS sysconfig]# vi network  # 기존 내용에 GATEDEV 항목을 추가하여 호스트네임 및 게이트웨이 주소를 설정한다.
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=CentOS


아래와 같이 변경한다.

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=CentOS
GATEWAY=192.168.133.2
GATEDEV=bond0




3. 모듈을 구성한다.
 

  [Bonding 모드 종류]

     0 : balance-round robine ( 2개의 NIC 통한 분배 +  Fault Tolerance )

        1 : active-standby ( Active상태의 NIC에 문제 발생시 Fault Tolerance )

     2 : balance-xor ( 0 비슷하지만 xor연산을 이용한 목적지 Mac 근원지 Mac 이용한

                 분배 +    Fault tolerance)

    3 : broadcast ( 2개의 NIC 어떤 규칙 없이 데이터 통신 +  Fault Tolerace)

       4 : 802.3ad (link aggregation) – switch  aggregation 그룹생성이 필요

 

[root@CentOS sysconfig]# cd /etc/
[root@CentOS etc]# vi modprobe.conf
alias eth0 vmnics
alias scsi_hostadapter mptbase
alias scsi_hostadapter1 mptspi
alias scsi_hostadapter2 ata_piix
alias snd-card-0 snd-ens1371
options snd-card-0 index=0
options snd-ens1371 index=0
remove snd-ens1371 { /usr/sbin/alsactl store 0 >/dev/null 2>&1 || : ; }; /sbin/modprobe -r --ignore-remove snd-ens1371
# Added by VMware Tools
install pciehp /sbin/modprobe -q --ignore-install acpiphp; /bin/true
install pcnet32 (/sbin/modprobe -q --ignore-install vmxnet || /sbin/modprobe -q --ignore-install pcnet32 $CMDLINE_OPTS);/bin/true


아래와 같이 변경한다.

alias bond0 bonding
options bonding mode=1 miimon=100

alias eth0 vmnics
alias scsi_hostadapter mptbase
alias scsi_hostadapter1 mptspi
alias scsi_hostadapter2 ata_piix
alias snd-card-0 snd-ens1371
options snd-card-0 index=0
options snd-ens1371 index=0
remove snd-ens1371 { /usr/sbin/alsactl store 0 >/dev/null 2>&1 || : ; }; /sbin/modprobe -r --ignore-remove snd-ens1371
# Added by VMware Tools
install pciehp /sbin/modprobe -q --ignore-install acpiphp; /bin/true
install pcnet32 (/sbin/modprobe -q --ignore-install vmxnet || /sbin/modprobe -q --ignore-install pcnet32 $CMDLINE_OPTS);/bin/true




[root@CentOS etc]# modprobe bonding
[root@CentOS etc]# lsmod | grep bonding
bonding                96873  0
ipv6                  270305  20 bonding,ip6t_REJECT
[root@CentOS etc]# service network restart
Shutting down interface bond0:                             [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface bond0:                               [  OK  ]
[root@CentOS etc]# ifconfig
bond0     Link encap:Ethernet  HWaddr 00:0C:29:19:6A:0B  
          inet addr:192.168.133.130  Bcast:192.168.133.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe19:6a0b/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:375748 errors:0 dropped:0 overruns:0 frame:0
          TX packets:66381 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:521476866 (497.3 MiB)  TX bytes:3808569 (3.6 MiB)
eth0      Link encap:Ethernet  HWaddr 00:0C:29:19:6A:0B  
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:374350 errors:0 dropped:0 overruns:0 frame:0
          TX packets:66273 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:521326235 (497.1 MiB)  TX bytes:3792400 (3.6 MiB)
          Interrupt:67 Base address:0x2024
eth1      Link encap:Ethernet  HWaddr 00:0C:29:19:6A:0B  
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:1403 errors:0 dropped:0 overruns:0 frame:0
          TX packets:117 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:150931 (147.3 KiB)  TX bytes:17551 (17.1 KiB)
          Interrupt:67 Base address:0x2424
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:2860 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2860 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:5845622 (5.5 MiB)  TX bytes:5845622 (5.5 MiB)
[root@CentOS etc]#



4. 구성 상태 확인 및 구성 상태 검증

[root@CentOS etc]# cd /proc/net/bonding/
[root@CentOS bonding]# cat bond0
Ethernet Channel Bonding Driver: v3.4.0 (October 7, 2008)   # bonding의 버전 정보
Bonding Mode: fault-tolerance (active-backup)                 # 구성된 bonding의 모드 관련 정보
Primary Slave: None
Currently Active Slave: eth0                                             # 현재 Active 상태의 인터페이스 정보
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:0c:29:19:6a:0b
Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:0c:29:19:6a:15
[root@CentOS bonding]#
Posted by no1ss
,
출처 : http://cheongeom.tistory.com/34


1. Cent OS 5.0 설치 X-window 설치 (Gnome 추천 : 공식 메뉴얼에서도 이놈은 추천하더군요)

2.1. 추가 패키지 - (이부분은 추후 수정)

# rpm -qa setarch make glibc libaio compat-libstdc++-33 compat-gcc-34 gcc libXp openmotif compat-db
설치되지 않은 패키지를 설치한다.
# yum install compat-libstdc++-33 compat-gcc-34 gcc libXp openmotif compat-db
위 패키지는 각자에 맞게 설치한다.

2.2. 시스템 설정

# vi /etc/redhat-releaseCentOS를
redhat-4로 수정한다.
* 원복 백업 추천
ex) #cp /etc/redhat-release /etc/redhat-release-original

# vi /etc/security/limits.conf
soft nproc 2047
hard nproc 16384
soft nofile 1024
hard nofile 65536

# vi /etc/sysctl.conf
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144

기존의 kernel.shmmax는 주석처리한다.
# /sbin/sysctl -p
설정만 나오면 정상이다.

# vi /etc/pam.d/login
session required /lib/security/pam_limits.so

3.Oracle 10g 설치

3.1. Oracle 유저 생성

# groupadd oinstall
# groupadd dba
# groupadd oper
# useradd -g oinstall -G dba oracle
# passwd oracle
# chown -R oracle.oinstall /오라클 인스톨할 디렉토리
# su - oracle

3.2. 환경변수 설정(오라클 홈폴더)

$ vi .bash_profile
# for Oracle 10g
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/오라클 인스톨할 디렉토; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=orcl(SID 원하는걸로 바꾸셔두됨); export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=$ORACLE_HOME/bin:$PATH; export PATH
export DISPLAY=:0.0
$ exit

3.3. 설치 스크립트

# vi /etc/hosts
192.168.110.3 cheongeom cheongeom
네트워크 체킹을 위해 설정한다.(자신의 환경에 맞게 설정)


# xhost +
# su - oracle
$ unzip 10201_database_linux32.zip
$ cd database/
$ unset LANG
설치 시 한글이 깨지거나 보이지 않으면 영문으로 설치한다.
$ ./runInstaller

3.4. 설치

1) Select Installation Method
Advanced Installation 선택한다.
2) Specify Inventory directory and credentials
3) Select Installation Type
Product Languages -> Language Selection에서 Korean을 추가한다.
4) Specify Home Details
5) Product-Specific Prerequisite Checks
Network Configuration requirements에서 Not executed가 뜬다. 일단 무시한다. 무시하고 설치해도 일단 서비스는 잘 뜬다.
6) Select Configuration Option
7) Select Database Configuration
8) Specify Database Configuration Options
Global Database Name과 SID를 orcl로 지정한다.(위에 환경변수 값으로 자동으로 잡힙니다)
Database Character Set을 Unicode standard UTF-8 AL32UTF8로 선택한다.(자신의 환경에 맞는걸로 하세요)
그리고 Create database with sample schemas를 체크하도록 한다.(샘플 스키마나 DB가 필요없는분은 노 체크)
9) Select Database Management Option
10) Specify Database Storage Option
File System을 /data/oradata로 지정한다.(각자에 맞게 세팅)
11) Specify Database Schema Passwords
Use the same password for all the accounts로 모든 계정에 동일한 패스워드를 적용한다.(각자에 맞게 세팅)
12) Install
13) Database Configuration Assistant
14) Execute Configuration scripts

밑에 녀석들 실행하면 오라클 db의 실제 저장 파일을 만들 공간을 설정하는데 그냥 디폴트 값으로

아니면 원하는 패스설정 하셔두 됩니다.
# cd /u01/app/oracle/oraInventory/
# ./orainstRoot.sh
# cd /u01/app/oracle/product/10.2.0/db_1/
# ./root.sh
15) End of Installation

4. Oracle 10g 설정

4.1. 환경변수 추가설정

$ cd ~
$ vi .bash_profile
export LD_LIBRARY_PATH=$ORACLE_HOME/lib

5. 기타

5.1. 각 서비스 시동/중지

5.1.1. 데이터베이스

$ sqlplus /nolog
SQL> connect / as sysdba
SQL> startup
SQL> shutdown

5.1.2. 리스너

$ lsnrctl start
$ lsnrctl stop

5.1.3. iSQL*Plus

$ isqlplusctl start
$ isqlplusctl stop

5.1.4. Enterprise Manager

$ emctl start dbconsole
$ emctl stop dbconsole

5.2. 서비스 자동 시작

# vi /etc/rc.d/rc.local
# for Oracle 10g
su - oracle -c '/u01/app/oracle/product/10.2.0/db_1/bin/lsnrctl start'
su - oracle -c '/u01/app/oracle/product/10.2.0/db_1/bin/dbstart'
su - oracle -c '/u01/app/oracle/product/10.2.0/db_1/bin/isqlplusctl start'
# vi /etc/oratab
orcl:/u01/app/oracle/product/10.2.0/db_1:N에서 끝에 N을 Y로 수정한다.

'리눅스' 카테고리의 다른 글

특정 폴더 또는 파일만 압축풀기  (0) 2012.03.29
리눅스 bonding 구성  (0) 2012.03.29
vsftpd.conf 설정  (0) 2012.03.28
리눅스 시스템 로그(Log) 분석  (0) 2012.03.28
리눅스 시스템 자동화 ( crontab )  (0) 2012.03.28
Posted by no1ss
,

vsftpd.conf 설정

리눅스 2012. 3. 28. 16:19

출처 http://kch1183.blog.me/50099406606

vsftpd.conf파일은 FTP서버의 핵심적인 설정 파일입니다.

# vi /etc/vsftpd/vsftpd.conf


anonymous_enable=YES
익명의 사용자들의 접속을 허용 할지를 설정하는 값.
기본값은 익명사용자의 접속을 허용합니다. 계정으로만 접속을 허용할 경우 no 설정

 

local_enable=YES
로컬 사용자의 계정을 허용 할 것인지를 설정하는 값. 기본값은 허용입니다.

 

write_enable=YES
쓰기를 허용 할것인지를 설정하는 값. NO를 하거나, 주석처리시 파일이나 디렉토리 생성이
불가능하게 됩니다.

 

local_umask=022
디렉토리나 파일 생성시 퍼미션을 지정하는 설정값.

#anon_upload_enable=YES
익명 사용자의 업로드를 허용 할지를 설정하는 설정값.
기본값은 설정이 주서처리 되어있기 때문에, 익명사용자의 업로드를 허용하지 않습니다.

 

#anon_mkdir_write_enable=YES
익명 사용자의 디렉토리 생성을 허용 할지를 설정하는 설정값.
기본값은 주석처리가 되어있기 떄문에, 익명사용자의 디렉토리 생성을 허용하지 않습니다.

 

dirmessage_enable=YES
FTP 접속시 메시지를 표현 할 것인지를 설정하는 설정값.
대부분, 사용자의 홈디렉토리에 .message 파일을 만들어서 메시지를 적어 놓으면
사용이 됩니다. 기본값은 허용입니다.
 
xferlog_enable=YES
파일 업로드/다운로드 관련 로그를 기록 할지를 설정하는 설정값.

vsftpd는 로그를 /var/log/vsftpd.log 파일에 기록합니다.
기본값은 허용입니다.

 

connect_from_port_20=YES
ftp의 데이터 포트인 20번 포트의 사용을 허용할지를 설정하는 설정값.
기본값은 허용입니다.

 

chown_upload=YES
anonymous 계정으로 업로드한 파일의 소유권을 변경을 허용 하것인지를 설정하는 설정값.
이 설정을 사용시 아래의 chown_username=whoever 항목과 같이 사용해야 합니다.

 

#xferlog_file=/var/log/vsftpd.log
업로드/다운로드시 기록할 로그파일의 경로를 설정하는 설정값.
기본값은 주석처리 되어있으며, 기본 경로는 /var/log/vsftpd.log로 설정됩니다.

 

xferlog_std_format=YES
로그 기록시 표준 포멧 사용여부를 시정하는 설정값.

 

ilde_session_timeout=600
타임아웃 시간을 지정하는 설정값.

 

date_connection_timeout=120
데이터전송의 타임아웃 시간을 지정하는 설정값입니다.

 

chroot_local_user=YES
접속한 사용자의 홈디렉토리를 최상위 디렉토리로 지정하는 설정값.
이 지시자를 사용하면 모든 로컬사용자의 접속시 사용자의 홈디렉토리를 퇴상위 디렉토리로 지정하게 됩니다.

 

chroot_list_enable=YES
모든 로컬 계정 사용자에 대해 사용자의 홈디렉토리를 최상위 디렉토리로 지정하지만,
이 지시자는 지정한 사용자의 홈디렉토를 최상위 디렉토리로 지정합니다.
이 설정은 아래의 chroot_list_file과 같이 쓰입니다.

 

chroot_list_file=/etc/vsftpd.chroot.list
홈디렉토리의 최상위 디렉토리를 설정하는 설정값.

 

pam_service_name=vsftpd
PAM서비스의 이름을 지정하는 설정값.

 

listen=YES
FTP의 모드를 설정하는 설정값.
standalone 모드로 동작시 YES, xinetd 모드로 동작시 NO 입니다.

 

tcp_wrapper=YES
TCP_wrapper을 이용한 보안 설정을 사용 허용을 설정하는 설정값.

 

pasv_enable=YES
패시브 모드 사용시 설정하는 설정값
액티브 모드로 사용할 떄에는 구문을 삭제하거나, 주석처리를 해주면 됩니다.

'리눅스' 카테고리의 다른 글

리눅스 bonding 구성  (0) 2012.03.29
CentOS5 에 Oracle 10g 올리기  (0) 2012.03.29
리눅스 시스템 로그(Log) 분석  (0) 2012.03.28
리눅스 시스템 자동화 ( crontab )  (0) 2012.03.28
리눅스 패키지 관리 (rpm, yum)  (0) 2012.03.28
Posted by no1ss
,

출처 http://blog.naver.com/yosi3world/50083381120

 

리눅스 시스템 로그(Log) 분석

리눅스 시스템은 다양한 로그를 남긴다.

특히 서버와 관련된 로그 파일은 관리에 있어서 대단히 중요한 역할을 한다.

시스템에 이상이 생겼을 때 혹은 보안이 뚫려서 해킹을 당했을 때 이에 대한 1차적인 확인을 로그파일들에서 확인을 한다.

또한 어떤 문제점을 해결하는데 있어서 로그 파일은 중요한 역할을 담당한다.

리눅스에서는 /var/log 디렉토리에 시스템의 모든 로그를 기록 및 관리하고 일반적으로 텍스트 형식으로 저장되어 있어있다.

시스템의 /etc/syslog.conf 파일에는 거의 모든 시스템 로그파일들의 위치를 지정하고 있다.

간단한 문서 편집기나 cat 또는 less 명령어를 통해 그 내용을 볼 수 있다.

그러나 일부 로그 파일의 경우엔 텍스트 형식이 아닌데, btmp와 wtmp가 바로 그것인데,

이들은 각각 lastb와 last라는 명령어를 통해 그 내용을 확인할 수 있다.

로그 파일은 일정 주기로 정리할 필요가 있다.

그렇지 않다면 어느 순간엔 로그 파일이 파일 시스템을 모두 차지하는 상황이 발생할 수 있다.

여기서 리눅스의 모든 로그파일을 살펴보지는 못하지만 몇 가지만 살펴보도록 하자.

다음은 /var/log의 디렉토리에 있는 로그파일과 로그 디렉토리이다.

중요한 것 몇 가지만 살펴보겠다.

+ boot.log : 리눅스가 부팅이 될때 뿌려주는 모든 메시지를 기록하고 있다.

부팅시의 에러나 조치사항을 살펴보려면 이 파일을 참조해야 한다.

+ cron : 시스템의 정기적인 작업에 대한 로그를 기록하고 있다.

/etc/밑에 있는 파일들중 cron.hourly, cron.daily, , cron.weekly cron.monthly 파일들은 각각 시간별, 일별, 주별, 월별로 정기적으로 운영체제에서 자동으로 작업해야할 것에 대한 작업을 저장하고 있으며 지정한 일시에 실행이 되며 이들 작업을 한 후에는 /var/log/cron파일에 기록을 남기게 된다.

+ message : 운영체제에서 보내주는 실시간 로그를 관리하고 있으며 주로 콘솔로 이 메시지는 실시간으로 보여준다.

+ secure : 시스템의 접속에 관한 로그파일로서 언제, 누가, 어디에서 어떻게 접속을 했는가에 대한 로그를 기록하고 있다.

시스템의 불법침입등이 있었다고 의심이 될 때는 반드시 이 로그파일을 확인해야 한다.

+ xferlog : ftp로 로그인하는 사용자에 대한 로그를 기록하는 파일로서 /etc/ftpaccess에 그 설정파일을 가지면 ftp의 홈디렉토리는 /home/ftp이다.

이외에도 중요한 로그파일이 있는데 /var/spool에는 작업중에 일시적으로 저장되는 로그 및 작업들에 대한 기록이 남겨지는 곳으로 이중 메일에 관한 것만 살펴보면 다음과 같다.

+ /var/spool/mail

사용자들에 대한 메일을 보관하고 있는 디렉토리로서 메일을 한번이상 사용한 사용자는 사용자 계정 ID와 동일한 파일이 하나씩 존재한다.

메일을 읽은 후에 사용자의 메일 디렉토리로 저장하거나 메일을 삭제했을 경우에는 이 파일에서 메일내용이 삭제된다.

이 디렉토리에 있는 파일을 보기위해 "elm -f ID"로 하면 사용자의 메일을 확인할 수 있다.

물론 이 작업은 root 권한만이 가능하며 시스템관리자라고 해서 사용자의 메일내용을 함부로 확인할 수 있는 권리는 없다.

일반적으로 로그 파일을 점검할 때, 문제를 해결하기 위하여 리눅스에는 logrotate라는 프로그램을 사용한다. 이를 이용하면 주기적으로 로그 파일을 백업을 하고 일정 기간이 지나면 로그 파일을 삭제 정리한다.

레드햇 리눅스의 경우엔 /etc/logrotate.conf 라는 설정 파일이 있으며 이를 통해 logrotate를 설정할 수 있다.

로그파일 삭제하는 방법

/var/log/messages 파일 크기가 클 때 --> ‘0’ 으로 만드는 법

cat /dev/null > /var/log/messages 처럼 하면 된다.

리눅스 Log파일 종류

/dev/console [콘솔에 뿌려지는 메시지들(콘솔로그)]

/var/log/messages [모든 데몬의 시스템 로그]

/var/log/cron [crond 데몬 로그파일]

/var/log/maillog [sendmail,pop등의 메일관련 데몬의 로그]

/var/log/secure [보안인증 관련 메시지]

/var/log/xferlog [ftp(proftpd, vsftpd) 로그]

/dev/console [콘솔 로그]

/var/log/dmesg [부팅될 당시에 각종 메시지들을 저장]

/var/log/wtmp [시스템 전체 로그인 기록을 저장]

/var/log/utmp [현재 로그인 사용자에 대한 기록, 사용자 IP저장]

/var/log/lastlog [현재 로그인 사용자에 대한 기록]

/var/log/spooler [uucp, new 장치에서 위급상태(crit)이상인 메시지 기록]

/var/log/httpd/access_log [아파치 웹서버의 로그들을 기록]

/var/log/httpd/error_log [아파치 웹서버의 에러들을 저장]

시스템 각 계정의 최근 접속정보를 확인하는 lastlog

- lastlog 는 /etc/passwd 파일에 정의되어 있는 모든 계정의 최근 접속정보를 확인하는 명령어임.

- 주로 서버의 보안점검을 위하여 필수적으로 확인해 보아야하는 명령어. 간단히 lastlog 라고만 하면 모든 계정의 마지막 접속정보를 출력해 줌.

- 사용형식 : lastlog [ -u 계정명 ] [ -t 일자 ]

- lastlog 는 /var/log/lastlog 파일의 정보에 저장된 정보를 참조하여 결과를 출력함. /var/log/lastlog 파일은 바이너리파일로 되어있기 때문에 cat 이나 vi 등의 일반적인 방법으로는 확인할 수 없음.

- /var/log/lastlog 파일에는 각 계정의 최근 접속정보가 기록되는 파일임. 또한 /usr/include/lastlog.h 파일에 정의 된 포멧( format ) 으로 /var/log/lastlog 에 저장이 됨.

시스템 각 계정의 최근 접속정보 확인하기

- 간단히 lastlog 라고만 하면 서버의 모든 계정에 대한 최근 접속정보를 확인 할 수 있음.

- lastlog

특정 계정사용자의 시스템 최근 접속정보 확인하기

- 만약 특정 계정만의 최근 접속정보를 확인하고자 한다면 -u 옵션과 함께 사용하면 됨.

- lastlog -u stkim

지정한 최근까지의 시스템 접속정보 확인하기

- lastlog 는 최근 몇 일까지의 마지막 접속정보를 확인 할 수도 있음. " last -t 일자 " 와 같이 사용하면 지정된 일자까지에 접속한 최근 접속정보를 확인 할 수 있음.

- lastlog -t 30

Posted by no1ss
,

출처 http://blog.naver.com/yosi3world/50081088442

 

리눅스 시스템 자동화

관리자가 원하는 작업을 예약해 두고 정해진 시간에 주기적으로 반봅하여 실행할 수 있다. 이런 작업을 하려면 crond라는 데몬이 실행되어 있어야 한다. 대부분의 리눅스는 기본적으로 설치되어 있다.

crond가 정상적으로 실행되고 있는지 알아보기

# ps -ef | grep crond

crontab

반봅적인 작업을 설정하는 명령어이다.

사용법

crontab [-u 유저명] [옵션]

옵션

-u 유저명 : 작업을 실행시킬 유저명을 설정한다.

-l : 현재 사용자가 crontab에 등록해 놓은 작업 리스트를 출력한다.

-r : 현재 사용자가 crontab에 등록해 놓은 작업을 삭제한다.

-e : crontab에 작업을 등록한다.

-e 옵션을 사용하여 작업을 등록해 보자. 등록하는 방법은 vi에디터 사용법과 동일하다.

분, 시간, 일, 월, 요일, 명령 순으로 설정한다.

형식

분 : (0~59)

시간 : (0~23)

일 : (1~31)

월 : (1~12)

요일 : (0~6)

명령

명령 : 실행할 명령어 또는 실행할 파일

Posted by no1ss
,

출처 http://blog.naver.com/yosi3world/50081088296

 

리눅스 패키지 관리

RPM이란?

RPM(Redhat Package Manager)이란 Redhat사에서 패키지를 좀더 쉽게 설치하고 관리하기 위해 만든 패키지 관리 프로그램이다. 복잡한 컴파일 과정없이 간단하게 패키지를 설치할 수 있는 장점이 있지만 반대로 사용자에게 맞는 다양한 옵션들은 설정할 수 없다는 것이 단점이다. 그래서 간단한 프로그램의 경우에는 RPM으로 설치하고 서버와 같은 중요한 프로그램은 소스를 컴파일 하여 설치하는 것이 좋다.

RPM파일의 기본 구성

패키지이름 - 버전 - 릴리즈.아키택처.rpm

패키지이름 : 어떤 패키지인가를 설명해주는 패키지의 이름을 나타낸다.

버전 : 패키지의 버전을 의미한다.

릴리즈 : 한 버전의 패키지를 몇 번 빌드했는지알 수 있다.

아키텍처 : 패키지가 사용가능 한 시스템을 말한다.

rpm

rpm명령어는 rpm패키지를 설치하고 삭제 또는 관리하는 명령어 이다.

사용법

rpm [옵션] 파일

옵션

-i : 설치옵션이며, 이전 버전이 설치되어 있을 경우 설치하지 않는다.‘

-U : 이전 버전이 설치되어 있다면 업그레이드를 하고 설치되어 있지 않다면 새롭게 설치를 진행한다.

-F : 이전 버전이 설치되어 있을 경우에만 설치하고 설치되어 있지 않다면 설치하지 않는다.

-v : 설치 중 메시지를 출력한다.

-e : 패키지를 제거한다.

-q : 패키지가 설치되어 있는지 검색한다. 설치되어 있다면 패키지 이름과 버전을 출력한다.

-qa : 현재 설치된 모든 패키지 목록을 찾는다.

-qi : 현재 설치된 패키지의 간략한 정보를 출력한다.

-ql : 현재 설치된 패키지의 간략한 정보와 설치된 파일을 출력한다.

-Vf : 현재 설치된 파일을 검증한다.

-Va : 전체 패키지를 검증한다.

-Vp : 한 패키지만 검증한다.

--force : 패키지가 설치되어 있거나 충돌이 일어나는 것을 무시하고 설치한다.

--nodeps : 의존성 문제를 무시하고 설치하거나 삭제한다.

yum

yum은 인터넷을 통하여 RPM 패키지가 저장된 서버에 접속하고 설치하고자 하는 RPM을 다운로드하여 설치한다. 또한 의존성을 가지는 다른 RPM 패키지까지 알아서 다운로드하여 설치한다.

사용법

yum [옵션] [모드] 패키지

옵션

-y : 설치여부를 묻지 않고 바로 설치한다.

모드

install : 패키지를 설치한다.

check-update : 설치된 패키지 중에서 업데이트가 가능한 패키지의 목록을 출력한다.

update : 패키지를 업데이트한다.

remove : 패키지를 삭제한다.

info : 패키지의 정보를 출력한다.

localinstall : 다운로드한 RPM 패키지를 설치한다.

Posted by no1ss
,