Linux - Network Driver Setting (lsmod, lspci)

Posted 08 27, 2009 11:53, Filed under: System/UNIX

출처 : http://yaaong.tistory.com/29

리눅스 Network Driver Setting


개요

이 문서에서는 Ethernet PCI 네트워크 카드를 리눅스 상에서 인식시키는 과정을 상세히 설명한다. 따라서 ifconfig 라든지 route add등의 application 레벨의 설명은 이 문서에서 하지 않는다. 기본적인 네트워크 application에 관해서는 다른 문서에서 상세히 다룰 것이다. 그리고 기본적인 IP, Gateway, DNS, Subnet Mask 등은 정상적으로 설정되어 있다고 가정한다.


설정

설정에 관련된 주요 명령어 및 관련 파일은 다음과 같다

주 명령어
/sbin/ifconfig
/sbin/lspci
/sbin/lsmod

관련 파일
/etc/modprobe.conf
/etc/modules.conf
/etc/conf.modules
/etc/sysconfig/network-script/ifcfg-eth*
/lib/modules/`uname –r`/kernel/drivers/net/*.{ko,o}

현재 정상적으로 동작하는 시스템(sniffer)에서 네트웍 드라이버가 어떻게 잡혀 있는지에 대해서 보면서 리눅스 네트웍 드라이버 설정에 대해 알아봅니다.

물론 위에 리스팅한 설정파일과 명령어로 시스템 상황을 확인합니다.

 


시스템 확인

일단은 내 컴퓨터에 어떤 pci 카드가 있는 지를 확인해야 합니다. 물론 이 문서에서는 pci와 pci-x 네트웍 카드에 대해서만 언급합니다. ISA 방식의 옛날 카드에 대해서는 문서를 찾아 보시길 바랍니다. 어떤 pci 카드가 시스템에 장착되어 있는 지는 lspci 명령어로 볼 수 있습니다. 보다 자세한 사항을 알고 싶다면 –v 옵션을 이용해 확인 할 수 있습니다.
현재 장비의 pci 카드 현황입니다.

$ lspci
00:00.0 Host bridge: Intel Corp.: Unknown device 254c (rev 01)
00:00.1 Class ff00: Intel Corp. e7500 [Plumas] DRAM Controller Error Reporting (rev 01)
00:03.0 PCI bridge: Intel Corp. e7500 [Plumas] HI_C Virtual PCI Bridge (F0) (rev 01)
00:03.1 Class ff00: Intel Corp. e7500 [Plumas] HI_C Virtual PCI Bridge (F1) (rev 01)
00:1d.0 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #1) (rev 02)
00:1d.1 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #2) (rev 02)
00:1d.2 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #3) (rev 02)
00:1e.0 PCI bridge: Intel Corp. 82801BA/CA/DB PCI Bridge (rev 42)
00:1f.0 ISA bridge: Intel Corp. 82801CA ISA Bridge (LPC) (rev 02)
00:1f.1 IDE interface: Intel Corp. 82801CA IDE U100 (rev 02)
00:1f.3 SMBus: Intel Corp. 82801CA/CAM SMBus (rev 02)
01:03.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 0d)
01:04.0 Ethernet controller: Intel Corp. 82540EM Gigabit Ethernet Controller (rev 02)
01:0c.0 VGA compatible controller: ATI Technologies Inc Rage XL (rev 27)
02:1c.0 PIC: Intel Corp. 82870P2 P64H2 I/OxAPIC (rev 04)
02:1d.0 PCI bridge: Intel Corp. 82870P2 P64H2 Hub PCI Bridge (rev 04)
02:1e.0 PIC: Intel Corp. 82870P2 P64H2 I/OxAPIC (rev 04)
02:1f.0 PCI bridge: Intel Corp. 82870P2 P64H2 Hub PCI Bridge (rev 04)
03:03.0 SCSI storage controller: Adaptec AIC-7901A U320 (rev 03)


위의 결과와 같이 현재 장비에는 Intel제품인 eepro 100 카드(82557 chip)와 82540EM Gigabit Ethernet Card가 장착 되어 있습니다. 두개의 네트웍 카드가 있다는 거지요. 리눅스는 커널이 올라 오면서 각각의 pci 카드를 등록시킵니다. 네트웍 카드의 경우 등록 될 때 마다 아이디가 순차적으로 부여가 되는게 그 이름이 ethx(eth0, eth1, eth2, …)의 형태를 가지게 됩니다. 부여되는 번호는 커널에서 pci장치를 등록시키는 순서가 됩니다. 스니퍼 시스템의 경우 eepro100 카드가 먼저 인식되어 eth0이 되고 82540EM 카드가 eth1이 되겠지요. 모든 이더넷 카드의 번호는 0부터 시작됩니다.


  eepro100의 드라이버는 intel 사이트를 찾아보면 e100 이라는 모듈을 사용하고, 82540EM 카드는 e1000이라는 모듈을 사용합니다. 드라이버에 대해서 이야기 하기 전에 모듈에 대해 먼저 간략하게 이야기 하겠습니다. 현재 대부분의 리눅스는 동적으로 장치들의 드라이버를 올릴 수 있습니다. 말그대로 필요할 때 드라이버를 올리고 내릴 수 있다는 겁니다. 이때 동적으로 올리고 내릴 수 있는 드라이버를 모듈이라고 명명합니다.


이더넷 카드의 드라이버 모듈은 대부분 리눅스 패키지에 포함되어 있지만, 최신 broadcom 57xx Optical Card 같은 경우(bcm5700 모듈)는 패키지에 포함되지 않아서 개인적으로 파일을 받아서 모듈을 만들어야 합니다. 모듈을 만드는 과정은 다음 섹션에서 확인 할 수 있습니다.
일단 어떤 카드가 어떤 드라이버를 가져야하는지를 알고 있다는 가정하에 올바른 네트웍 설정이 되었는지를 다음을 통해서 확인합니다. 어떤 카드가 지금 어떤 드라이버를 사용하고 있는 지를 확인하는 것입니다. 그 내용은 /etc/modules.conf에서 확인 할 수 있습니다.


물론 리눅스 버전에 따라서 그 이름이 달라 질 수 있습니다. 최신 레드햇 ES4등의 경우 /etc/modprobe.conf에 그 설정이 있고, 레드햇 9.0의 경우 /etc/modules.conf에 설정이 있습니다. 그 이전 버전일 경우 /etc/conf.modules에서 확인 할 수도 있습니다.
스니퍼는 레드햇 9.0이기에 /etc/modules.conf에서 확인 가능합니다.

$ cat /etc/modules.conf
alias eth0 e100
alias eth1 e1000
#options e1000 AutoNeg=0x05 Speed=1000 Duplex=2
alias scsi_hostadapter aic79xx
alias usb-controller usb-uhci


보시는 바와 같이 형태는 다음과 같습니다.

alias ethx driver-name
options driver-name optionlist…

스니퍼의 eth0의 설정을 보면 다음과 같습니다.

alias eth0 e100

네트웍 카드 eth0, 즉 82557 칩을 가지는 eepro100 이더넷 카드는 e100 이라는 이름을 가지는 드라이버 모듈을 사용한다는 의미입니다. options는 세세한 설정시 필요하므로 일반적으로 설정을 안하셔도 무방합니다. 그렇다면 e100이라는 이름을 가지는 드라이버가 실제 커널 모듈로 존재하는지 또한 모듈로 커널에 동적으로 올라가 있는지를 확인해야겠지요?

모든 커널 모듈들은 /lib/modules/`uname –r`/kernel/drivers/net 디렉토리 밑에 xxx.o 혹은 최신 버전의 리눅스일 경우 xxx.ko란 이름으로 존재 합니다. 스니퍼에서 eth0의 경우 e100이라는 드라이버를 쓴다고 설정했기에 모듈디렉토리 내에 e100.o라는 파일이 존재해야합니다.
 

$ cd /lib/modules/`uname -r`/kernel/drivers/net
$ ls e100*
e100:
합계 80
80 e100.o

e1000:
합계 68
68 e1000.o

위 장비에선 net/e100/e100.o란 파일이 존재 합니다. 따라서 /etc/modules.conf에서 설정한 내용내로 e100.o란 파일이 커널 모듈로 올라갑니다. 이제 마지막으로 모듈로서 커널에 e100드라이버가 올라가 있는지만 확인하면 됩니다.

$ lsmod
Module Size Used by Not tainted
parport_pc 19204 1 (autoclean)
lp 9188 0 (autoclean)
parport 39072 1 (autoclean) [parport_pc lp]
nfs 84600 1 (autoclean)
lockd 59536 1 (autoclean) [nfs]
sunrpc 87516 1 (autoclean) [nfs lockd]
e1000 50924 1
e100 62340 1
keybdev 2976 0 (unused)
mousedev 5656 1
hid 22308 0 (unused)
input 6208 0 [keybdev mousedev hid]
usb-uhci 27404 0 (unused)
usbcore 82592 1 [hid usb-uhci]
ext3 73376 4
jbd 56336 4 [ext3]
aic79xx 142084 1
sd_mod 13452 2
scsi_mod 110488 2 [aic79xx sd_mod]

현재 네트웍 드라이버 모듈로 e100과 e1000이 둘다 올라 가 있는 것을 확인 할 수 있습니다. 이젠 정상적으로 네트웍 모듈이 올라가 있고 IP, GW, Netmask, DNS등이 정상적으로 설정되어 있을 경우 네트웍은 별 이상 없이 될겁니다.

지금부턴 네트웍 설정을 확인해보겠습니다. 네트웍 설정은 /etc/sysconfig 디렉토리 내부에 설정 파일들이 존재합니다.

$ ls /etc/sysconfig/network-scripts/
합계 184
4 darketh1 4 ifdown-ipv6* 4 ifup-cipcb* 4 ifup-ppp*
4 ifcfg-eth0 0 ifdown-isdn@ 12 ifup-ippp* 4 ifup-routes*
4 ifcfg-eth1 4 ifdown-post* 12 ifup-ipv6* 4 ifup-sit*
0 ifcfg-lo@ 4 ifdown-ppp* 4 ifup-ipx* 4 ifup-sl*
0 ifdown@ 4 ifdown-sit* 0 ifup-isdn@ 4 ifup-wireless*
4 ifdown-aliases* 4 ifdown-sl* 4 ifup-plip* 8 init.ipv6-global*
4 ifdown-cipcb* 0 ifup@ 4 ifup-plusb* 8 network-functions
4 ifdown-ippp* 16 ifup-aliases* 4 ifup-post* 44 network-functions-ipv6

설정 내용을 보고 간단히 짚어 보겠습니다. 먼저 default gateway 및 dns 설정을 보겠습니다. Gateway는 /etc/sysconfig/network라는 파일에 설정되어있습니다.

$ cd /etc/sysconfig/
$ cat network
NETWORKING=yes
HOSTNAME=sniffer
GATEWAY=xxx.xxx.xxx.xxx

 위 설정 내용을 보면 hostname을 sniffer, default gateway를 xxx.xxx.xxx.xxx번으로 설정했습니다. 물론 ifconfig 명령을 통해 ip, gw, netmask등을 쉽게 설정할 수 있지만 여기에선 제가 주로 하는 설정파일 변경을 통해 설정하는 것을 위주로 설명하겠습니다.

다음은 dns 설정입니다. dns 설정은 /etc/resolve.conf 파일에 있습니다.

$ cat /etc/resolv.conf
nameserver yyy.yyy.yyy.yyy
nameserver xxx.xxx.xxx.xxx

현재 두개의 dns 설정을 했습니다. yyy.yyy.yyy.yyy, xxx.xxx.xxx.xxx 이 둘을 dns로 시스템에 등록한 상태입니다.

다음으로 가장 중요하게 봐야할 IP, NETMASK설정을 보겠습니다. 이 설정 파일들은 /etc/sysconfig/network-scripts 디렉토리 내에 있습니다. eth0의 설정은 ifconfig-eth0이고, eth1의 설정은 ifconfig-eth1에 있습니다. 다음은 eth0의 설정을 보도록 하겠습니다.

$ cat ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=xxx.xxx.xxx.255
IPADDR=xxx.xxx.xxx.xxx
NETMASK=255.255.255.128
NETWORK=xxx.xxx.xxx.128
ONBOOT=yes

각 필드를 설명하면 다음과 같습니다.

DEVICE=eth0 : 이설정은 eth0에 대한 설정이란 말입니다
BOOTPROTO=static : 이 말은 부팅시 정적으로 할당받은 아이피를 사용한다는 말입니다. DHCP를 사용할 경우 DHCP로 설정할 수 있습니다.
BROADCAST=xxx.xxx.xxx.255 : 그 네트웍에서 broadcasting시 쓰는 아이피입니다.
IPADDR=xxx.xxx.xxx.xxx : eth0 카드의 ip address입니다.
NETMASK=255.255.255.128 : eth0 카드의 network mask입니다.
NETWORK=xxx.xxx.xxx.128 : 그 네트웍에서 네트웍 설정입니다. 이는 대게 앞 세자리는 아이피와 동일하고 마지막 필드는 netmask의 마지막 필드와 동일합니다.
ONBOOT=yes : 부팅시 네트웍 모듈을 올린다는 설정입니다.


eth1의 설정 내용입니다.
 

$ cat ifcfg-eth1
DEVICE=eth1
BOOTPROTO=static
BROADCAST=10.1.1.255
IPADDR=10.1.1.1
NETMASK=255.255.255.0
NETWORK=10.1.1.0
ONBOOT=yes

이렇게 설정이 다 되었을 경우 설정을 반영하기 위해서는 네트웍을 내렸다가 올려야 합니다. 가장간단한 방법으로 /etc/sysconfig/network-scripts/디렉토리 내에 있는 ifup과 ifdown 스크립트를 이용하는 것입니다.
eth0 네트웍을 내릴 경우 : ./ifdown eth0
eth0 네트웍을 올릴 경우 : ./ifup eth0

모든 설정이 끝난 후 네트웍 카드의 설정을 ifconfig –a로 확인합니다.
eth0에 위에서 설정한 대로 아이피와 netmaks, broadcast 등의 설정을 확인 할 수 있습니다.
 

$ ifconfig -a
eth0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
inet addr:xxx.xxx.xxx.xxx Bcast:xxx.xxx.xxx.255 Mask:255.255.255.128
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1354744815 errors:0 dropped:0 overruns:1353 frame:0
TX packets:996350230 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:4027093106 (3840.5 Mb) TX bytes:1960627340 (1869.7 Mb)
Interrupt:20 Base address:0x1400 Memory:fe7e0000-fe7e0038

eth1 Link encap:Ethernet HWaddr
XX:XX:XX:XX:XX:YY
inet addr:10.1.1.1 Bcast:10.1.1.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:21 Base address:0x1440 Memory:fe760000-fe780000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:10193680 errors:0 dropped:0 overruns:0 frame:0
TX packets:10193680 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1728195772 (1648.1 Mb) TX bytes:1728195772 (1648.1 Mb)

 eth1 의 경우 네트웍 설정이 10.1.1.1로 되어있는데 이는 예전에 다른 머신과 1:1 크로스로 연결되있던 거라 아무 아이피나 설정한 것입니다. 외부 네트웍을 쓰기위해서는 특정 ISP에서 할당된 공인 아이피를 써야 합니다. 물론 방화벽 내부에서는 내부 아이피를 따로 설정해서 쓸 수 있습니다.

이로써 기본적인 네트웍 드라이버 설정 및 네트웍 설정을 알아 봤습니다. ifconfig 에 대한 자세한 내용은 man page를 통해 알 수 있습니다.
 


네트워크 드라이버 컴파일

이번 섹션에서는 설치 디스크에 존재하지 않는 드라이버를 웹사이트로부터 다운 받아서 설치하는 과정을 알아 보겠습니다

카드확인

대상 네트웍 카드는 다음과 같습니다. 이를 확인하는 명령어는 앞 섹션에서 처럼 lspci를 통해서 확인할 수 있습니다.
Broadcom Corporation NetXtreme BCM5704 Gigabit Ethernet
 

드라이버 다운로드

이 네트웍 카드는 BroadCom 웹사이트(http://www.broadcom.com)에서 드라이버를 찾을 수 있습니다.
드라이버는 bcm5700이란 이름을 가지고 다음 url에서 다운 받을 수 있습니다.
드라이버 URL : http://www.broadcom.com/support/ethernet_nic/downloaddrivers.php
 

드라이버를 다운 받으면 linux-8.2.18.zip이 파일이 생성됩니다. 압축을 풀면 다음의 파일들이 생성됩니다.

./linux-8.2.18/Server/Linux/Driver/bcm5700-8.2.18.tar.gz
./linux-8.2.18/Server/Linux/Driver/bcm_sup-8.2.18.tar.gz
./linux-8.2.18/Server/Linux/Driver/bcm5700-8.2.18-1.src.rpm
./linux-8.2.18/Server/Linux/Driver/DISTRIB.TXT
./linux-8.2.18/Server/Linux/Driver/README.TXT

실제로 드라이버를 설치하는 과정은 README.TXT에 자세하게 나와있습니다.
 

설치

먼저 rpm 소스 파일을 설치 합니다. Root 계정으로 설치가 가능합니다.

$ rpm -Uvh bcm5700-8.2.18-1.src.rpm
1:bcm5700 ########################################### [100%]

루트 권한으로 그림처러 설치를 합니다. Rpm 소스파일들의 기본 설치 디렉토리는 /usr/src/redhat 입니다. 그 디렉토리로 이동합니다.
그리고 드라이버를 빌드 합니다. 이때 기본적으로 gcc등 개발 관련 유틸리티들이 설치 되어 있어야 합니다. (설치확인 : rpm –qa | grep gcc)

$ rpmbuild -bb SPECS/bcm5700.spec
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.42561
+ umask 022
+ cd /usr/src/redhat/BUILD
+ LANG=C
+ export LANG
+ cd /usr/src/redhat/BUILD
+ rm -rf bcm5700-8.2.18
+ /bin/mkdir -p bcm5700-8.2.18
+ cd bcm5700-8.2.18
/usr/src/redhat/BUILD/bcm5700-8.2.18
+ /usr/bin/gzip -dc /usr/src/redhat/SOURCES/bcm5700-8.2.18.tgz
+ tar -xvvf -
-rw-r--r-- root/root 1935 2005-08-02 02:33:05 5701rls.c
-rw-r--r-- root/root 7954 2005-08-02 02:33:05 5701rls.h
-rw-r--r-- root/root 14209 2005-08-02 02:33:05 autoneg.c
-rw-r--r-- root/root 14308 2005-08-02 02:33:05 autoneg.h
-rw-r--r-- root/root 26702 2005-08-02 02:33:05 b57diag.c
-rw-r--r-- root/root 16625 2005-08-02 08:27:20 b57proc.c
-rw-r--r-- root/root 150197 2005-08-02 09:22:09 b57um.c
-rw-r--r-- root/root 151409 2005-08-02 02:33:05 b57um.org.c
-rw-r--r-- root/root 2486 2005-08-02 02:33:05 bits.h
-rw-r--r-- root/root 13411 2005-08-02 02:33:05 fw_lso05.h
-rw-r--r-- root/root 24994 2005-08-02 02:33:05 fw_stkoffld.h
-rw-r--r-- root/root 19860 2005-08-02 02:33:05 lm.h
-rw-r--r-- root/root 15567 2005-08-02 02:33:05 mm.h

 빌드는 rpmbuild 명령을 통해서 할 수 있습니다. 이 명령이 성공적으로 끝나면 RPMS/i386/bcm5700-<version>.i386.rpm 파일이 생성 됩니다. 이 파일을 설치합니다.
 

$ rpm –Uvh RPMS/i386/bcm5700-<version>.i386.rpm

이 과정을 통해 설치가 끝나게 되면 드라이버가 생성됩니다.

2.4.X 커널 /lib/modules/<kernel_version>/kernel/drivers/net/bcm5700.o
2.6.X 커널 /lib/modules/<kernel_version>/kernel/drivers/net/bcm/bcm5700.ko

생성을 확인 한 후 드라이버를 시스템에 등록합니다.

$ modprobe bcm5700
소스 파일을 통해서 빌드하는 방법도 있으나 위 설치 과정보다는 복잡하므로 README.TXT를 통해 확인하시기 바랍니다. 위 설치 과정에서 에러가 나는 경우 소스 파일을 통한 설치도 한번 시도해 보시기 바랍니다.

위 모든 과정을 성공적으로 마칠 경우 2.1섹션에서의 설정과정을 통해 네트웍 드라이버를 커널에 올릴 수 있습니다.
08 27, 2009 11:53 08 27, 2009 11:53

Trackback URL : http://develop.sunshiny.co.kr/trackback/288

Leave a comment

Linux - Samba 한글 깨짐 현상

Posted 08 7, 2009 17:48, Filed under: System/UNIX

출처 : http://niteo.me/42

Linux와 Windows간에 파일 공유를 위하여
Samba를 이용하는 방법에는 두가지가 있다

1. Windows에서 폴더 공유를 시킨 후
Linux에서 Samba-Client를 사용해서 접근
[Click]

2. Linux에서 Samba-Server를 설치해서 공유시킨 후
Windows에서 접근하는 방법


이번에는 조금 깐깐 할 수도 있는 2번의 방법을 알아보자. (Fedora 8 기준)


< 프로그램 설치 >

# yum install system-config-samba
# yum install samba-swat       (Option)



< SWAT(Samba Web Administration Tool) 설정 (Option) >
# SWAT 웹 접속 : http://localhost:901

# vi /etc/xinetd.d/swat
service swat
{
        port            = 901
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/sbin/swat
        log_on_failure  += USERID
        disable         = no
}
# /etc/init.d/xinetd restart



< Linux 사용자 추가 및 Samba 사용자 등록 >

# groupadd -g 102 user
# useradd -u 1001 -g 102 -d /home/han2g -s /bin/bash han2g
# passwd han2g
# smbpasswd -a han2g



< Samba 환경설정 >

# vi /etc/samba/smb.conf
[global]
dos charset = CP949         /// 윈도우와 한글깨짐을 방지
unix charset = EUC-KR
workgroup = MYTV
netbios name = BIT
server string = VM_Fedora
security = SHARE
passdb backend = tdbsam
unix password sync = Yes
log file = /var/log/samba/log.%m
max log size = 50
ldap ssl = no
cups options = raw

[Han2g$]        /// 공유폴더명 뒤에 $를 붙이면, 사용은 가능하지만 검색되지 않음
path = /home/han2g
username = han2g
read only = No


< 서비스 시작 >

# /etc/rc.d/init.d/smb start
# /etc/rc.d/init.d/nmb start



"smbpasswd"로 추가한 사용자명과 Password를 입력

Linux의 디렉토리를 Windows에서
일반 디스크처럼 마음대로 사용 가능하다
08 7, 2009 17:48 08 7, 2009 17:48

Trackback URL : http://develop.sunshiny.co.kr/trackback/270

Leave a comment


1) tar

tar 도구는 파일과 디렉토리를 하나의 파일로 묶어주는 아카이브(archive)를 생성해 주는 도구다. tar는 여러 개의 파일들을 단지 한 개의 파일 안에 묶어 주는 도구로 압축 도구라고 잘못 생각할 수 있지만, tar는 파일들을 하나의 파일로 압축하는 것이 아니라, 디렉토리를 포함한 모든 파일들을 단지 하나의 파일 안에, 이들이 가지고 있는 소유권과 허가권을 유지한 채로 모두 그대로 묶어 주는 기능을 하는 것이다. 물론 압축 기능이 없는 것은 아니지만, 단순히 파일들을 꾸러미 형태로 묶는 것이 주된 기능이다.


▶ 사용법

* 형식

tar   Function+Options   아카이브명.tar   디렉토리/파일


* Function

c : 새로운 아카이브 생성

x : 아카이브 해제

u : 아카이브 비교하여 새로운 파일 추가

t : 아카이브에 있느 파일 확인


* Options

f : tar 아카이브 파일 지정

v : 아카이브 생성 및 해제시 정보 출력

z : tar.gz 형태로 압축 또는 해제

j : tar.bz2 형태로 압축 또는 해제



2) gzip과 gunzip


▶ gzip 압축

gzip  압축할파일지정

* 압축률보단 속도우선

gzip -1v 파일명

*속도보단 압축률

gzip -9v 파일명


▶ gunzip 압축풀기

압축을 해제하려면 -d 옵션을 사용하거나 gunzip 유틸리티를 사용한다.

gzip -d 파일명(*.gz)

또는 gunzip 파일명(*.gz)

* 또한 tar.gz 파일을 풀 때는 gunzip 도구를 이용하는 것보다는 tar에 z옵션을 사용하여 한꺼번에 압축과 아카이브를 푸는 것이 편리하다.

tar xfz 파일명.tar.gz



3) bzip2와 bunzip2

▶ bzip2 압축

bzip2  압축할파일지정


▶ bunzip2 압축 풀기

bzip2 -d 파일명(*.bz2)

또는 bunzip2 파일명(*.bz2)



4) zip과 unzip

▶zip 압축

zip   압축파일명   압축할파일


▶unzip 압축풀기

unzip 압축파일명(*.zip)


5) Uncompress

▶ tar.Z 압축풀기

uncompress 파일명.tar.Z

08 6, 2009 19:20 08 6, 2009 19:20

Trackback URL : http://develop.sunshiny.co.kr/trackback/267

Leave a comment


Recent Posts

  1. Linux - Telnet 서비스 비활성및 실행
  2. NT - 서버 원격데스크탑 연결
  3. NT - http와 https간에 세션 공유가...
  4. Unix - 대량 파일 이동, 삭제시 Argu...
  5. Oracle - SYS_CONTEXT 함수를 이용하...

Recent Comments

  1. 네. 고맙습니다^^ 행복한 한해 보... sunshiny 01 16,
  2. sunshiny님. 안녕하세요... 올려 주... yihans 01 16,
  3. 답글 주셔서 고맙습니다^^ 소스 복... sunshiny 01 11,
  4. 관리자만 볼 수 있는 댓글입니다. 비밀방문자 01 11,
  5. 넵 답변감사합니다^^ 좋은 하루 되... 노로링

Recent Trackbacks

  1. 윈도우 cmd 명령어 팁 월풍도원(月風道院) - Delight on th... %M
  2. 파일 압축 Like RadioHead %M
  3. Mysql - mysql 설치후 Character set... 멀고 가까움이 다르기 때문 %M

Calendar

«   02 2012   »
      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      

Bookmarks

  1. 위키피디아
  2. MysqlKorea
  3. Oracle All Documentation
  4. 엑셈
  5. 오라클 클럽
  6. 네이버개발자센터
  7. API - Java
  8. API - Spring
  9. Java Community
  10. Reference - Spring
  11. 스프링사용자
  12. 자바지기
  13. Ready System
  14. Solaris Freeware
  15. Linux-Site
  16. RedHat Korea
  17. 윈디하나의 솔라나라

Site Stats

TOTAL 217714 HIT
TODAY 16 HIT
YESTERDAY 115 HIT