Linux2017.03.31 15:57

오늘 회사에서 드디어 기다리고 기다리던 노트북을 받았습니다.


노트북에는 당연히 RED HAT 7 데스크탑이 설치되어 있구요~!! 그런데, Root 패스워드를 몰라서 한참 삽질을 하다가, 다른 분의 도움으로 Root 패스워드를 설정했습니다. 잊어버리지 말자!! 적어놔야죠!! 그래서, 한번 적어보았습니다.


그래서 오늘 포스팅 내용은 "RED HAT 7에서 ROOT 패스워드를 잊어버렸을경우 패스워드 재설정하는 방법"입니다.


1. 시스템을 재부팅합니다.


2. 재부팅되면서 아래와 같은 GRUB 메뉴가 나오면 키보드에서 알파벳 'e'를 클릭합니다. 

RHEL 7  - Reset root password
RHEL 7 – Reset root password


3. 그러면 아래와 같이 설정창이 나옵니다. 이때 "linux16"이 시작되는 라인 끝에 "rd.break console=tty1" 를 입력합니다. 그리고, Ctrl + x 버튼을 클릭하여 시스템을 재부팅합니다.

Edit the grub menu
Edit the grub menu

4. 재부팅이 되면서 아래와 같이 “switch-root” 라는 프롬프트를 확인할 수 있습니다.

Emergency mode RHEL 7
Emergency mode RHEL 7

5. "rd.break"를 사용하여 시스템을 부팅했으면 /sysroot의 read-only 모드를 read/write 모드로 아래와 같이 전환합니다.

switch_root:/# mount -o remonut,rw /sysroot 


6. 전환이 완료되면 이번에는 chroot 명령어를 이용하여 /sysroot로 변경합니다.

switch_root:/# chroot /sysroot 


7. 이제 root 패스워드를 아래와 같이 설정합니다. 

sh-4.2# passwd root

New password: ************

Retype new password: ************

passwd:all authentication tokens updated successfully. 


8. RHEL7 같은 경우에는 기본적으로 SELinux가 활성되어 있습니다. 그러므로 ".autorelabel" 이라는 이름을 생성해야 합니다.

sh-4.2# touch /.autorelabel 


9. 생성이 완료되면 커맨드 창이 "exit" 명령어를 이용하여 빠져나옵니다.

sh-4.2# exit 


10 . 시스템이 재부팅되면서 SELinux가 relabel 된후 다시 재부팅이 됩니다.

11. 시스템이 다시 재부팅되면, 이제 새로운 root 패스워드로 로그인을 할 수 있습니다. 


참조 URL : http://www.unixarena.com/2015/04/how-to-reset-the-root-password-on-rhel-7.html

Posted by 나리 짱!!! naleejang
Linux2015.08.15 00:49

안녕하세요~!!


오랜만에 매뉴얼 작업을 한번 해 봤습니다. 예전에 오픈스택 설치를 하고 신이 나서 열심히 매뉴얼로 정리해서 블로그에 올리고 했던 생각이 문득 떠 올랐습니다. 지금은 오픈스택 설치 매뉴얼이 너무 잘 되어 있어서 제가 굳이 하지 않아도 되지만 말입니다. 


오늘은 시스템을 설치하고 나면 반드시 함께 설치하는 모니터링 툴인 OpsView 설치 매뉴얼을 한번 정리해 보았습니다. 사실 한번도 해 본적이 없어서 다른 분들의 블로그와 매뉴얼을 참조했는데 다 오래되어서 그 매뉴얼들을 사용할 수가 없었습니다. 그래서, 결국은 또 영문 매뉴얼을 보고 설치를 했습니다. 그런데 영문 매뉴얼도 완벽한 건 아니더라구요~!! ㅎㅎㅎ 그래서, 제가 이번에 정리를 한번 해 봤습니다. 


클라우다이크의 메인 OS는 CentOS입니다. 설치된 클라우다이크 시스템을 모니터링 하기 위해서 OpsView를 주로 사용하는데 왠지 조만간 OpsView가 모두 Commercial로 바뀔것 같다는 생각이 문득 들었습니다. 그렇게 되면 다른 모니터링 툴을 써야 되겠지요~!!


언제 시간되면 클라우다이크의 시스템 구성도나 사용된 기술들도 정리해서 하나씩 여러분들한테 설명드리면 좋겠다라는 생각이 문득 드네요~!! 어떻게 오픈스택과 연동되는지도 함께 말입니다. 


오늘 공유하는 설치 매뉴얼은 OpsView 를 사용하기 위해 설치해야 할 서버, 그리고 모니터링 할 노드에 설치되는 에이전트, 그리고, 어떻게 데쉬보드에서 모니터링을 하는지까지를 정리해보았습니다. 사실은 이렇게 다 정리해 놓은 매뉴얼은 인터넷에서 찾을 수 없어서 그냥 제가 정리한 매뉴얼을 공유하는 것도 괜찮겠다 라는 생각이 들었습니다.



Monitoring Tool OpsView Installation Maunal.pdf



오랜만에 밤 늦게까지 작업한번 해 봤네요~!! 전 이제 자러 가야겠습니다. 모두들 행복한 꿈 꾸시고, 즐거운 주말 되세요~!!

Posted by 나리 짱!!! naleejang
Linux2014.02.28 22:03

안녕하세요~!! 

오늘은 노트북에 Ubuntu 서버를 설치하고 Wifi를 설정하여 인터넷이 가능하도록 하는 작업을 해 보았습니다.

처음하는거라 엄청 삽질에 삽질을 했더랬죠~~~ 다음에는 이런 삽질 하지 말자고 블로그에 올려봅니다. 


1. 일단 노트북에 무선랜카드 정보가 보이는지 확인합니다.

$ sudo lshw -C Network

  *-network               

       description: Ethernet interface

       product: 82567LF Gigabit Network Connection

       vendor: Intel Corporation

       physical id: 19

       bus info: pci@0000:00:19.0

       logical name: eth0

       version: 03

       serial: 00:e0:91:38:e2:df

       size: 10Mbit/s

       capacity: 1Gbit/s

       width: 32 bits

       clock: 33MHz

       capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation

       configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=2.0.0-k duplex=full firmware=1.8-3 ip=192.168.1.12 latency=0 link=yes multicast=yes port=twisted pair speed=10Mbit/s

       resources: irq:44 memory:fc200000-fc21ffff memory:fc224000-fc224fff ioport:1800(size=32)

  *-network DISABLED

       description: Wireless interface

       product: WiFi Link 5100

       vendor: Intel Corporation

       physical id: 0

       bus info: pci@0000:06:00.0

       logical name: wlan0

       version: 00

       serial: 00:16:ea:49:0b:66

       width: 64 bits

       clock: 33MHz

       capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless

       configuration: broadcast=yes driver=iwlwifi driverversion=3.5.0-46-generic firmware=8.83.5.1 build 33692 latency=0 link=yes multicast=yes wireless=IEEE 802.11abgn

       resources: irq:46 memory:fa000000-fa001fff


2. 무선랜카드 정보가 보이시나요? 그러면 DISABLED로 되어 있는 무선랜카드를 활성화시켜야 합니다. 그전에 무선랜카드의 이름을 먼저 확인합니다. 아래와 같은 명령어로 말입니다.

$ iwconfig

eth0      no wireless extensions.


lo        no wireless extensions.


wlan0     IEEE 802.11bg  ESSID:off/any  

          Mode:Managed  Access Point: Not-Associated   Tx-Power=0 dBm   

          Retry  long limit:7   RTS thr:off   Fragment thr:off

          Power Management:off


3. 무선랜카드 이름을 확인하셨으면 이번에는 DISABLED로 되어 있는 무선랜카드를 활성화시켜보겠습니다.

$ sudo ifconfig wlan0 up 


4. 무선랜카드가 활성화 되었는지 확인해 봅니다.

$ sudo lshw -C Network

    *-network               

       description: Ethernet interface

       product: 82567LF Gigabit Network Connection

       vendor: Intel Corporation

       physical id: 19

       bus info: pci@0000:00:19.0

       logical name: eth0

       version: 03

       serial: 00:e0:91:38:e2:df

       size: 10Mbit/s

       capacity: 1Gbit/s

       width: 32 bits

       clock: 33MHz

       capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation

       configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=2.0.0-k duplex=full firmware=1.8-3 ip=192.168.1.12 latency=0 link=yes multicast=yes port=twisted pair speed=10Mbit/s

       resources: irq:44 memory:fc200000-fc21ffff memory:fc224000-fc224fff ioport:1800(size=32)

  *-network

       description: Wireless interface

       product: WiFi Link 5100

       vendor: Intel Corporation

       physical id: 0

       bus info: pci@0000:06:00.0

       logical name: wlan0

       version: 00

       serial: 00:16:ea:49:0b:66

       width: 64 bits

       clock: 33MHz

       capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless

       configuration: broadcast=yes driver=iwlwifi driverversion=3.5.0-46-generic firmware=8.83.5.1 build 33692 latency=0 link=yes multicast=yes wireless=IEEE 802.11abgn

       resources: irq:46 memory:fa000000-fa001fff


5. 이번에는 주변의 Wifi 정보를 검색해 봅니다.

$ iwlist wlan0 scan | more

wlan0     Scan completed :

          Cell 01 - Address: 00:26:66:1A:68:98

                    Channel:11

                    Frequency:2.462 GHz (Channel 11)

                    Quality=48/70  Signal level=-62 dBm  

                    Encryption key:on

                    ESSID:"NEOPLUS-TRI"

                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 9 Mb/s

                              18 Mb/s; 36 Mb/s; 54 Mb/s

                    Bit Rates:6 Mb/s; 12 Mb/s; 24 Mb/s; 48 Mb/s

                    Mode:Master

                    Extra:tsf=0000080828b261fe

                    Extra: Last beacon: 319688ms ago

                    IE: Unknown: 000B4E454F504C55532D545249

                    IE: Unknown: 010882848B961224486C

                    IE: Unknown: 03010B

                    IE: Unknown: 2A0104

                    IE: Unknown: 32040C183060

                    IE: Unknown: 2D1AEE1117FFFF0000010000000000000000000000000C0000000000

                    IE: Unknown: 3D160B070700000000000000000000000000000000000000

                    IE: Unknown: 3E0100

                    IE: WPA Version 1

                        Group Cipher : CCMP

                        Pairwise Ciphers (1) : CCMP

Authentication Suites (1) : PSK

                    IE: IEEE 802.11i/WPA2 Version 1

                        Group Cipher : CCMP

                        Pairwise Ciphers (1) : CCMP

                        Authentication Suites (1) : PSK

                    IE: Unknown: DD180050F2020101800003A4000027A4000042435E0062322F00

                    IE: Unknown: 7F0101

                    IE: Unknown: DD07000C4307000000

                    IE: Unknown: 07064B5220010D10

                    IE: Unknown: DD1E00904C33EE1117FFFF000001000000000000000000000000

0C0000000000

                    IE: Unknown: DD1A00904C340B07070000000000000000000000000000000000

0000

                    IE: Unknown: DD9D0050F204104A0001101044000102103B0001031047001028

80288028801880A8800026661A68981021001852616C696E6B20546563686E6F6C6F67792C20436F72702

E1023001C52616C696E6B20576972656C6573732041636365737320506F696E7410240006525432383630

1042000831323334353637381054000800060050F20400011011000952616C696E6B41505310080002008

4103C000101


6. wifi 정보를 확인한 후 /etc/network/interfaces 파일을 수정합니다.

$ sudo vi /etc/network/interfaces

auto wlan0

iface wlan0 inet dhcp

        wpa-ssid NEOPLUS-TRI

        wpa-key_mgmt WPA-PSK [wifi essid]

        wpa-proto WPA

        wpa-pairwise CCMP

        wpa-group CCMP

        wpa-psk ********* [wifi password]

        wpa-driver nl80211

** wpa-driver 는 nl80211 이나 wext를 입력합니다. 저같은 경우는 wext를 입력했을때 "ioctl[SIOCSIWENCODEEXT]: Invalid argument" 라는 메시지가 나와 nl80211 로 사용하니 이런 메시지가 없었습니다.


7. 네트워크 설정이 완료되면 네트워크를 시작합니다.

$ sudo /etc/init.d/networking restart

 * Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces

 * Reconfiguring network interfaces...                                               ssh stop/waiting

ssh start/running, process 4041

ssh stop/waiting

ssh start/running, process 4129                                                                                              [ OK ]


8. netstat -rn 으로 라우터 목록에 gateway가 등록되어 있는지 확인합니다.

$ netstat -rn

Kernel IP routing table

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface

192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 wlan0


9. 위와 같은 정보가 나오면 gateway가 설정되지 않을 것이므로 gateway를 추가합니다.

 $ sudo route add default gw 192.168.0.1 wlan0


10. 추가가 되면 다시 netstat -rn 으로 라우터 목록에 gateway가 등록되었는지 확인합니다.

$ netstat -rn

Kernel IP routing table

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface

0.0.0.0         192.168.0.1     0.0.0.0         UG        0 0          0 wlan0

192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 wlan0


11. 이번에는 인터넷이 잘 되는지 google.com 사이트에 ping을 날려 봅니다.

$ ping google.com

PING google.com (173.194.117.164) 56(84) bytes of data.

64 bytes from nrt04s10-in-f4.1e100.net (173.194.117.164): icmp_req=1 ttl=50 time=45.3 ms

64 bytes from nrt04s10-in-f4.1e100.net (173.194.117.164): icmp_req=2 ttl=50 time=42.4 ms

64 bytes from nrt04s10-in-f4.1e100.net (173.194.117.164): icmp_req=3 ttl=50 time=51.5 ms

64 bytes from nrt04s10-in-f4.1e100.net (173.194.117.164): icmp_req=4 ttl=50 time=56.5 ms


이렇게 해서 노트북에 설치한 Ubuntu 서버에서 Wifi를 연결해 보았습니다. 삽질하는 내내 도움주신 한국 우분투 커뮤니티 회원님들 및 어형부형님께 감사드립니다. 


그러나 저는 아직도 "AR242x / AR542x Wireless Network Adapter" 무선랜카드는 설정을 하지 못했습니다. 아무리 해도 DISABLED로 설정되어 있는 네트워크 카드가 활성화 되지 않았습니다. 노트북이 이상해서려니 하고 그냥 마음을 비우는 것이 정신 건강에 더 좋겠죠~!! 혹시라도 설정에 자신 있는 분이 계시다면 과감하게 댓글 부탁드립니다. ^^

Posted by 나리 짱!!! naleejang
Linux2013.11.21 10:53

정말 오랜만에 글을 써보는것 같습니다. 그동안 프로젝트로 인해 너무 바뻐서 글을 쓸 시간이 없었거든요~~~

오늘은 레드햇이나 우분투와 같은 리눅스 시스템의 리소스 모니터링 툴에 대해 글을 써볼까? 합니다. 사실 이전에는 cpu 사용율을 모니터링 하는 top, 메모리 자원을 확인하는 free 정도의 명령어 밖에는 몰랐는데, 이번 프로젝트를 하면서 cpu, memory 뿐 아니라, network, file i/o, disk에 대한 리소스 상태까지도 모니터링 할 수 있는 명령어를 알았습니다

 

인터넷을 검색해 보니 관련 자료도 많이 보이더군요~!! 어떤 시스템을 구성하던지 자원관리는 아주 중요합니다. 다음 명령어를 통해 내가 사용하는 서버의 리소스를, 내가 사용하는 VM의 리소스를 확인해 보는건 어떨까요?

 

위에서 소개한 명령어는 dstat 라는 명령어이다.

 

dstat 라는 명령어를 그냥 실행하면 설치를 하라는 메시지가 나온다. 설치를 해야 쓸 수 있는 명령어이다.

nalee@ubuntu:~$ dstat

The program 'dstat' is currently not installed. You can install it by typing:

sudo apt-get install dstat

 

1. 그럼 dstat를 설치해 보자.

nalee@ubuntu:~$ sudo apt-get install dstat

[sudo] password for nalee: 

Reading package lists... Done

Building dependency tree       

Reading state information... Done

The following NEW packages will be installed:

  dstat

0 upgraded, 1 newly installed, 0 to remove and 48 not upgraded.

Need to get 65.5 kB of archives.

After this operation, 351 kB of additional disk space will be used.

Get:1 http://us.archive.ubuntu.com/ubuntu/ quantal/universe dstat all 0.7.2-3 [65.5 kB]

Fetched 65.5 kB in 10s (6,264 B/s)

Selecting previously unselected package dstat.

(Reading database ... 50687 files and directories currently installed.)

Unpacking dstat (from .../archives/dstat_0.7.2-3_all.deb) ...

Processing triggers for man-db ...

Setting up dstat (0.7.2-3) ...

 

2. dstat 설치가 끝났으면 이젠 dstat를 실행해보자

nalee@ubuntu:~$ dstat

You did not select any stats, using -cdngy by default.

----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--

usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 

  0   1  99   0   0   0| 214k  181k|   0     0 |   0     0 |  48    98 

  0   0 100   0   0   0|   0     0 | 180B 1234B|   0     0 |  18    30 

  0   1 100   0   0   0|   0     0 |  60B  452B|   0     0 |  25    32 

  1   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  14    13 

  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  19    24 

  0   0  99   0   0   0|   0     0 |  60B  346B|   0     0 |  13    13 

  0   1  99   1   0   0|   0    40k|  60B  346B|   0     0 |  29    36 

  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  17    23 

  1   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  22    26 

  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  13    13

 

3. dstat에는 다양한 옵션들이 있다. 어떤 옵션들이 있는지 -h 옵션을 통해 확인이 가능하다.

nalee@ubuntu:~$ dstat -h

Usage: dstat [-afv] [options..] [delay [count]]

Versatile tool for generating system resource statistics

 

Dstat options:

  -c, --cpu              enable cpu stats

     -C 0,3,total           include cpu0, cpu3 and total

  -d, --disk             enable disk stats

     -D total,hda           include hda and total

  -g, --page             enable page stats

  -i, --int              enable interrupt stats

     -I 5,eth2              include int5 and interrupt used by eth2

  -l, --load             enable load stats

  -m, --mem              enable memory stats

  -n, --net              enable network stats

     -N eth1,total          include eth1 and total

  -p, --proc             enable process stats

  -r, --io               enable io stats (I/O requests completed)

  -s, --swap             enable swap stats

     -S swap1,total         include swap1 and total

  -t, --time             enable time/date output

  -T, --epoch            enable time counter (seconds since epoch)

  -y, --sys              enable system stats

 

  --aio                  enable aio stats

  --fs, --filesystem     enable fs stats

  --ipc                  enable ipc stats

  --lock                 enable lock stats

  --raw                  enable raw stats

  --socket               enable socket stats

  --tcp                  enable tcp stats

  --udp                  enable udp stats

  --unix                 enable unix stats

  --vm                   enable vm stats

 

  --plugin-name          enable plugins by plugin name (see manual)

  --list                 list all available plugins

 

  -a, --all              equals -cdngy (default)

  -f, --full             automatically expand -C, -D, -I, -N and -S lists

  -v, --vmstat           equals -pmgdsc -D total

 

  --float                force float values on screen

  --integer              force integer values on screen

 

  --bw, --blackonwhite   change colors for white background terminal

  --nocolor              disable colors (implies --noupdate)

  --noheaders            disable repetitive headers

  --noupdate             disable intermediate updates

  --output file          write CSV output to file

 

delay is the delay in seconds between each update (default: 1)

count is the number of updates to display before exiting (default: unlimited)

 

dstat를 그냥 치면 시스템에서 보여줄 수 있는 모든 정보를 모니터링할 수 있다. 그러나 특정 리소스만 모니터링 하고 싶다면 옵션을 통해 확인하고 싶은 정보들만 모니터링 할 수도 있다. 어떤 블로그에 옵션에 나온 영어를 친절하게 한글로 올려 놓은 블로그가 있어 관련 링크를 남겨본다.


https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1772

Posted by 나리 짱!!! naleejang
Linux2013.05.30 17:37

오늘은 리눅스를 사용하면서 가장 많이 사용했던 grep 이라는 명령어에 대해 정리를 해 볼까 합니다.

grep은 이번 프로젝트를 하면서 많이 사용했던 리눅스 명령어 인것 같습니다.


grep의 유래를 찾아보니 유닉스를 위해 만들어진 텍스트 검색 기능을 가진 명령어로써 그 이름은 유닉스 ed의 명령어로 비슷한 기능을 수행하는 g/re/p에서 유래되었다고 합니다. (참조 : http://ko.wikipedia.org/wiki/Grep)


그럼 지금부터 grep의 사용법과 옵션, 사용예제들을 살펴보도록 하겠습니다.


사용법

파일이나 표준 입력에서 패턴을 찾기 위한 명령어 ex) grep -i 'hello world' menu.h main.c

 grep [option] ... pattern [file] ...



옵션

grep에서 사용하는 옵션들은 성격에 따라 다양한 기능을 가지고 있다.


정규 표현식 (Regexp selection and interpretation) : 패턴 지정시 사용되는 정규 표현식은 작은 따옴표('')로 묵어서 표현.

  -E, --extended-regexp

  -F, --fixed-strings

  -G, --basic-regexp      

  -P, --perl-regexp

  -e, --regexp=PATTERN

  -f, --file=FILE

  -i, --ignore-case

  -w, --word-regexp

  -x, --line-regexp

  -z, --null-data  

 PATTERN을 정규 표현식으로 확장한다.

 PATTERN을 분리된 문자열로 설정한다.

 이 PATTERN은 기본 정규식이다.

 이 PATTERN은 perl 정규식이다.

 다음 PATTERN을 정규식으로 사용한다.

 파일로부터 패턴을 포함시킨다.

 다음에 오는 문자열은 제외한다.

 독립적으로 해당 문자열과 일치하는 줄을 찾는다.

 해당 라인과 일치하는 문자열만 찾는다.

 데이터가 Null일 경우 newline을 하지 않는다.


기타 기능을 위한 옵션(Miscellaneous) :

  -s, --no-messages

  -v, --invert-match

  -V, --version

  --help

  --mmap

 에러 메시지를 보여주지 않는다.

 불일치하는 라인을 보여준다.

 version 정보를 보여준다.

 help를 보여준다.

 가능한 메모리 앱을 사용한다.


출력을 위한 제어 옵션(Output control) :

  -m, --max-count=NUM

  -b, --byte-offset

  -n, --line-number

      --line-buffered

  -H, --with-filename

  -h, --no-filename

      --label=LABEL

  -o, --only-matching

  -q, --quiet, --silent

      --binary-files=TYPE

  -a, --text

  -I

  -d, --directories=ACTION  

  -D, --devices=ACTION

  -R, -r, --recursive

      --include=PATTERN

      --exclude=PATTERN

      --exclude-from=FILE

  -L, --files-without-match

  -l, --files-with-matches

  -c, --count

  -Z, --null     

 NUM과 일치되면 종료한다.

 해당라인의 offset byte를 함께 출력한다.

 해당 라인 번호를 함께 출력한다.

 모든 라인은 버퍼에 저장한다.

 매치되는 파일명을 출력한다.

 해당 파일명을 출력하지 않는다.

 표준 입력 파일명을 LABEL로 출력한다.

 패턴과 매핑되는 라인만 보여준다.

 모든 출력을 하지 않는다.

 해당 TYPE을 binary-file로 간주한다.

 -a를 사용하는 --binary files=text 와 같은 역할을 한다.

 -I를 쓰면 --binary-files=without-match 와 같은 역할을 한다.

 디렉토리를 어떻게 제어할 것인지 설정한다. ACTION에는 'read', 'recurse', 'skip'

 디바이스를 어떻게 제어할 것인지 설정한다. ACTION에는 'read', 'skip'

 --directories=recurse 옵션과 같다.

 해당 패턴을 포함한다.

 해당 패턴을 스킵한다.

 파일로터 해당 패턴을 스킵한다.

 불일치하는 파일명만 출력한다.

 일치하는 파일만 출력한다.

 파일의 일치하는 라인의 수를 카운트하여 출력한다.

 파일명이 null인 것만 출력한다.


텍스트 제어 옵션(Context control) :

  -B, --before-context=NUM

  -A, --after-context=NUM 

  -C, --context=NUM        

  -NUM                      

      --color[=WHEN],

      --colour[=WHEN] 

  -U, --binary

  -u, --unix-byte-offsets

 context를 읽어 해당 line 전만 출력한다.

 해당 라인 후만 출력한다.

 해당 라인만 출력한다.

 --context=NUM 과 같다.

 When 해당하는 단어에 표시를 한다. 예를 들만 `always', `never' 또는 `auto'.


 캐리지 리턴을 삭제하지 않는다. (MSDOS)

 캐리지 리턴이 없다면 offsets으로 출력한다. (MSDOS)


기타

`egrep' 의 뜻은 `grep -E' 이며.  `fgrep' 의 뜻은 `grep -F' 이다.



기타 예제 샘플


grep은 파일내부의 문자열을 찾을 때 많이 사용되는 명령어로 단독으로 사용할 수도 있으며, 다른 명령어와 함께 사용할 수도 있다.


- 현재 실행중인 프로세스 중 "java" 라는 단어가 포함된 프로세스를 찾을때

 ps -ef | grep java


- 현재 실행중이 프로세스 중 "java" 라는 단어가 포함된 프로세스를 찾되, grep으로 시작하는 프로세스는 제외할 때

 ps -ef | grep java | grep -v grep


- tail로  aaa 로그를 모니터링 할때 'starting' 이라는 단어가 포함된 열만 모니터링 할때

 tail -f aaa.log | grep 'starting'


- 80포트를 열고 ESTABLISH 상태인 네트워크 형태만 찾아서 출력할 때

 netstat -nat | grep 80 | grep ESTABLISH



grep에 대한 예제 샘플


grep에 대한 예제 샘플들은 사실 기존 블로그에 정말 잘 정리되어 있는 곳들이 많이 있다. 여기서는 굳이 설명하지 않고

하이퍼 링크로 대신한다. 예제까지 보고 싶은 분들은 아래 URL을 참조하시길....


http://ra2kstar.tistory.com/100

http://mwultong.blogspot.com/2006/09/grep-cygwin-find.html

Posted by 나리 짱!!! naleejang
Linux2013.04.08 18:56

오랜만에 블로그에 글을 남겨보고자 합니다.

얼마전에 회사를 옮기고 나서, 요즘 한참 개발환경을 설치하느라 정신이 없습니다.ㅠㅠ 

그런데 중요한 건 이곳에서의 개발환경이 실서버가 아닌 클라우드에서 할당받은 VM 인스턴스라는 것입니다. 

이제 클라우드가 우리의 생활속에 많이 활용되고 있다는 사실을 개발현장에도 느낄 수 있었습니다.


오늘은 Java를 여러버전을 설치하고서 Linux에서 기본으로 쓰는 Java Version을 선택해 주는 alternatives에 대해 글을 올려볼까 합니다. 매일 Ubuntu만 쓰다가 이곳에 와서 Red Hat을 쓰려니 어색하고 생소하네요~!! 그래도 같은 리눅스니 설치 명령어를 제외하고 나머지 일반적인 명령어들은 모두 같답니다. ^^  


alternatives 라는 명령어를 그냥 실행해 보면 아래와 같이 Help를 확인할 수 있다. 

# alternatives

대체 버전 1.3.13.5.EL4 - Copyright (C) 2001 Red Hat, Inc.

이 프로그램은 GNU Public License를 따른다는 조건 하에서 이 문서를

자유롭게 재배포하실 수 있습니다.

사용법: alternatives --install <link> <name> <path> <priority>

                    [--initscript <service>]

                    [--slave <link> <name> <path>]*

       alternatives --remove <name> <path>

       alternatives --auto <name>

       alternatives --config <name>

       alternatives --display <name>

       alternatives --set <name> <path>

 

일반 옵션들: --verbose --test --help --usage --version

                --altdir <directory> --admindir <directory>


# 사용가능한 자바목록에 Java Version 추가

# alternatives --install /usr/bin/java java /user/wh/jdk1.6.0_35/bin/java 100


# Default Java로 설정 변경

# alternatives --config java

 

4 개의 프로그램이 'java'를 제공합니다.

 

  선택    명령

-----------------------------------------------

*+ 1           /usr/lib/jvm/jre-1.4.2-gcj/bin/java

   2           /user/wh/jdk1.6.0_35/bin/java

   3           /user/wh/jdk1.6.0_35/bin/jar

   4           /user/wh/jdk1.6.0_35/bin/javac

 

현재 선택[+]을 유지하시려면 엔터키를 누르십시오. 그렇지 않으면선택 번호를 입력해 주십시오:2


# java -version

java version "1.6.0_35"

Java(TM) SE Runtime Environment (build 1.6.0_35-b10)

Java HotSpot(TM) Server VM (build 20.10-b01, mixed mode)


# 자바목록에서 Java Version 삭제

# alternatives --remove java /user/wh/jdk1.6.0_35/bin/jar



위에 나열한 3가지는 정말 자주 사용하는 alternatives의 옵션들이다. 예전에는 이 명령어를 몰라서 자바를 찾아서 일일이 삭제하고 다시 설치했는데, 이 명령어를 알고는 내 자신이 얼마나 바보같은 짓을 했는지 알수 있었다. 검색엔진에서 한번만 찾아보았어도 이런 삽질은 하지 않았을 것이다. 

Posted by 나리 짱!!! naleejang
Linux2013.03.19 00:57

나는 Ubuntu 리눅스를 사용한다. 그런데 Ubuntu에서 MySql를 설치하려고 하면 자꾸 중간에 Password를 설정하라고 하는 창이 뜬다. 패스워드를 중간에 설정하지 않고 그냥 바로 설치할 수 있는 방법은 없을까?


DevStack Shell Script 로 오픈스택를 설치할때 MySql를 설치하는 과정이 나오는데 그때는 Password를 묻지 않는다. 그래서 이번에는 DevStack Shell Script를 활용하여 Mysql만 설치하는 Shell Script만 만들어 보았다. 


아래 보이는 가장 첫번째 빨간색 주석 밑에 있는 내용이 가장 중요하다. 그 부분으로 인해 Mysql 설치시 Password를 묻지 않는다.

echo "Install MySQL"

 

# MySql 설치시 Password 없이 설치하기 위하여 미리 Mysql에 사용할 Password로 미리 설정한다.

cat <<MYSQL_PRESEED | sudo debconf-set-selections

mysql-server-5.1 mysql-server/root_password password $MYSQL_PASSWORD

mysql-server-5.1 mysql-server/root_password_again password $MYSQL_PASSWORD

mysql-server-5.1 mysql-server/start_on_boot boolean true

MYSQL_PRESEED

 

# Mysql 설치시 그리고 환경설정시 Mysql에 로그인을 위해 미리 Mysql 정보를 저장한다.

if [[ ! -e $HOME/.my.cnf ]]; then

    cat <<EOF >$HOME/.my.cnf

[client]

user=$MYSQL_USER

password=$MYSQL_PASSWORD

host=$MYSQL_HOST

EOF

    chmod 0600 $HOME/.my.cnf

fi

 

# Install mysql-server

sudo apt-get update

sudo apt-get install mysql-server



그럼 이번에는 로그인할 사용자와 패스워드 그리고, 외부에서 접근이 가능하도록 설정해 보자.

echo "Configuring and starting MySQL"

 

MY_CONF=/etc/mysql/my.cnf

MYSQL=mysql

 

# 미리 설정해 둔 사용자 ID와 Password로 사용자를 생성하고 권한을 준다.

sudo mysql -uroot -p$MYSQL_PASSWORD -h127.0.0.1 -e "GRANT ALL PRIVILEGES ON *.* TO '$MYSQL_USER'@'%' identified by '$MYSQL_PASSWORD';"

 

# 로컬호스트에서만 접속한 Mysql 환경설정을 모든 호스트에 접속가능하도록 Conf 파일을 설정한다.

sudo sed -i '/^bind-address/s/127.0.0.1/0.0.0.0/g' $MY_CONF

 

# 디폴트 DB 타입을 InnoDB로 설정한다. 

if sudo grep -q "default-storage-engine" $MY_CONF; then

    # Change it

    sudo bash -c "source $TOP_DIR/functions; iniset $MY_CONF mysqld default-storage-engine InnoDB"

else

    # Add it

    sudo sed -i -e "/^\[mysqld\]/ a \

default-storage-engine = InnoDB" $MY_CONF

fi

 

# 환경설정이 끝나면 Mysql를 재시작한다.

echo "Restring MySQL"

sudo /usr/sbin/service mysql restart


한번 테스트로 MySql를 설치해 보고 싶은 사람들은 아래 파일을 다운로드 받아 실행모드로 변경한 후 Shell Script를 실행하면 Mysql 서버를 바로 설치할 수 있을 것이다.



install_mysql.sh



Posted by 나리 짱!!! naleejang
Linux2013.02.22 16:47

오늘은 mysql 설치시 사용자를 추가하는 방법에 대해 남겨볼까 한다. 할때마다 잘 기억이 안나서 검색엔진에 항상 의존을 하게 되는데 다음에는 검색엔진에 의존하지 않고 바로 블로그에서 검색해서 보면 좋을 듯 하다. 


사용자를 생성하는 방법은 여러가지가 있는데 아래 방법이 가장 쉽고 심플하다. 다른 방법들은 쿼리문을 직접 던져야 하기 때문에 솔직히 말해서 좀 불편하다. 혹시나 오랜만에 해 보거나 처음해 보는 사람들을 위해서 서버에 mysql을 설치한 후 mysql에 로그인한 후 아래 명령를 실행시켜준다.


-  mysql 서버 로그인하기

 $ mysql -uroot -prootpassword mysql


- 다른 PC에서 mysql 서버로 접속을 하기 위한 사용자 추가

 mysql> create user 'userId'@'%' identified by 'userpassword';


- 위 사용자에게 모든 것을 할 수 있는 권한 주기

mysql> grant all privileges on *.* to 'userid'@'%';


- 위 사용자에게 특정 DB를 관리할수 있는 권한 주기

 mysql> grant all privileges on dbname.* to 'userid'@'%';


- 로컬PC에서 mysql로 접속하기 위한 사용자 추가

 mysql> create user 'userId'@'localhost' identified by 'userpassword';


- 위 사용자에게 모든 것을 할 수 있는 권한 주기

 mysql> grant all privileges on *.* to 'userid'@'localhost';


- 위 사용자에게 특정 DB를 관리할 수 있는 권한 주기

 mysql> grant all privileges on dbname.* to 'userid'@'localhost';



대부분 사용자를 생성하고 권한을 줄때는 특정 DB를 관리하는 계정을 따로 만들기 위해서이다. 그러므로 사용자를 생성하고 권한을 줄때는 특정 DB를 관리할 수 있는 권한만 주면 된다.


Posted by 나리 짱!!! naleejang
Linux2013.02.22 10:03

요즘들어 Openssh-server때문에 말썽이 많다. 

접속이 잘 되지 않아 삭제하고 다시 설치했더니 다음과 같은 에러를 내 뿜으면서 설치가 되지 않는다.


Ubuntu - unable to make backup link of `./usr/sbin/sshd' before installing new version: Operation not permitted


이럴때 이렇게 하자.


1. 우선 root 로 계정변경을 한다.

 $ sudo su


2. /usr/bin/ssh 의 속성을 체크해본다.

 # lsattr /usr/bin/ssh


3. 아래와 같이 나왔다면 여기서 i와 a 속성을 삭제해야 한다.

 # lsattr /usr/bin/ssh

 su--ia------------ /usr/bin/ssh

 # chattr -i /usr/bin/ssh

 # chattr -a /usr/bin/ssh

 # lsattr /usr/bin/ssh

 su---------------- /usr/bin/ssh


4. 이번에는 /usr/sbin/sshd 의 속성을 확인해 보자. 

 # lsattr /usr/sbin/sshd


5. 역시 아래와 같은 속성이 보인다면 i와 a 속성을 삭제해 줘야 한다.

 # lsattr /usr/sbin/sshd

 su--ia------------ /usr/sbin/sshd

 # chattr -i /usr/sbin/sshd

 # chattr -a /usr/sbin/sshd

 # lsattr /usr/sbin/sshd

 su---------------- /usr/sbin/sshd


6. 이제 다시 설치해 보라. 아마도 아무 문제없이 설치가 잘 될 것이다.

 # apt-get install openssh-server


Posted by 나리 짱!!! naleejang
Linux2013.02.15 16:55

NAME

       chmod - 파일 접근 권한을 바꿉니다.


SYNOPSIS

       chmod    [-Rcfv]   [--recursive]   [--changes]   [--silent]   [--quiet]

       [--verbose] [--help] [--version] mode file...


DESCRIPTION

       Ubuntu Manual의 chmod 명령어 설명을 요약한 것입니다.


       chmod 명령의 GNU 버전에 대한 것이며, 지정한  mode로 지정한 파일의 

       권한을 바꿉니다. mode로 사용될 수 있는 것은 심볼릭 기호들이나(symbolic mode),   

       그 기호들과 상응하는 8진수 숫자들입니다.


       심볼릭 모드의 표현 방식은  `[ugoa...][[+-=][rwxXstugo...]...][,...]'

       이렇고, 또한 쉼표(,)로 구분하여, 여러개의 기호군들을 사용할 수 있습니다.


       처음에  나오는  `ugoa'는  

       소유자(u),  

       그룹(g), 

       다른 사용자(o),   

       모든 사용자(a)를  뜻하며,  

       이것을  생략하면, 모든 사용자로 간주합니다.


       `+'는 권한 부여, `-'는 권한 박탈, `=' 원래 권한.


       `rwxXstugo'는 새롭게 부여할 권한으로 그 의미는 아래와 같습니다.

       읽기(r),  

       쓰기(w),  

       실행(디렉토리일 경우는 접근허용)(x), 

       파일이 디렉토리이거나, 이미 다른 사용자에게는 실행 권한이 있는 파일의  실행(X),  

       소유주와  그룹만  실행(s),  

       스왑  장치에 풀그림 텍스트 저장(?)(t),  

       소유주  권한(u), 

       그룹 권한(g), 

       다른 사용자 권한(o)


              예) chmod a+w foo : foo 파일을 모든 사용자가 쓸 수 있게 한다.


       8진수를 사용하는 방법은 4,2,1  숫자를  더한  값을 

       100단위에는  소유주,

       10단위에는  그룹,  

       1단위에는 다른 사용자로 지정해 사용합니다.

       4는 읽기,

       2는 쓰기, 

       1은 실행.


              예) chmod 666 foo : foo 파일을 모든 사용자가 쓸 수 있게 한다.


       chmod 는 심볼릭 링크 파일에 대해서는 아무런  작업도  하지  않습니다.

       즉, 심볼릭 링크의 권한은 그 심볼릭 대상이 되는 파일의 권한을 따릅니다.


   OPTIONS

       -c, --changes

              권한 변경시 올바로 읽은 파일들만 자세하게 보여준다.


       -f, --silent, --quiet

              권한  변경이  일어나지  않을  경우 보여주는 오류 메시지를 보이지

              않게 한다.


       -v, --verbose

              각 파일들의 모드 변경 상태를 모두 보여준다.


       -R, --recursive

              파일과 그 디렉토리의 아래까지 모두 바꾼다.


       --help 이 명령어에서 사용할 수 있는 옵션들과 그 사용법을 보여준다.


       --version

              이 명령어의 현재 버전 정보를 보여준다.


어떤 경우에 이 명령어를 사용할까요? 다음과 같은 경우에 이 명령어를 사용합니다.

http://naleejang.tistory.com/40

Posted by 나리 짱!!! naleejang
TAG chmod, ubuntu
Linux2013.01.30 18:49

1. 기능 

Linux에서 새로운 User를 등록할 때 사용하는 명령어이다.


2. 사용법

# adduser [옵션] 계정명


3. 옵션 

-c comment  

/etc/passwd 파일의 comment 필드에 넣을 정보를 입력할 수 있다. 이 정보는 계정에 대한 개인 정보이다.

-d home_dir  

유저의 로그인 디렉토리인 홈디렉토리를 변경한다. default로는 /home 디렉토리 아래에 일반계정의 홈디렉토리가 생성되는데 이 디렉토리를 다른 곳으로 지정하고자 할 때 사용되는 옵션이다. 

-e expire_date  

계정이 만료될 시기를 지정하면서 계정을 생성한다. 계정 만료 시기는 YYYY-MM-DD 형식으로 지정한다. 

-g initial_group  

기본적으로 계정을 생성하면 그와 똑 같은 그룹 명으로 그룹이 생성되고, 그 그룹에 속하게 된다. 예를 들어 linuxone이라는 계정을 생성하면 linuxone이라는 그룹도 같이 생성되고, linuxone 유저는 linuxone 그룹에 속하게 되는 것이다. 그런데, 이 정보를 변경하여, 로그인 그룹을 바꾸고자 하는 경우 이 옵션을 사용한다. xg 옵션에는 그룹명이 아닌 GID 값을 인자 값으로 사용한다. 

--conf FILE 
/etc/adduser.conf 대신 FILE을 설정파일로 사용한다.
--disabled-login 
패스워드 없이 계정이 생성된다. 패스워드가 설정되기 전까지는 계정이 활성화 되지 않는다.
--disabled-password 
--disable-login과 비슷하지만, SSH(:12) RSA(:12) 키등을 이용한 로그인은 가능하다.
--force-badname 
기본적으로 이름을 만들때 유저와 그룹이름은 설정파일의 NAME_REGEX의 정규표현(:12)규칙을 체크한다. 이 옵션을 사용하면, 설정파일의 이름규칙 체크를 하지 않게 된다. 단지 최소한의 이름체크만 한다.
--gid ID
그룹을 생성할때, GID를 ID로 지정한다.
--home DIR
유저의 홈 디렉토리를 DIR로 설정한다. 이 옵션을 사용하지 않을 경우 설정파일에 정의된 경로를 홈디렉토리로 한다.
--shell SHELL
유저가 사용할 shell(:12)을 SHELL로 설정한다. 이 옵션을 사용하지 않을 경우 설정파일에 정의된 shell(:12)를 유저 쉘로 사용한다.
--ingroup GROUP
새로운 유저를 추가하면, 유저는 동일한 이름의 그룹에 포함된다. 이 옵션을 사용하면 GROUP그룹에 포함되도록 강제할 수 있다.
--no-create-home
홈디렉토리를 생성하지 않는다.
--system
시스템 유저 혹은 시스템 그룹을 생성한다.
--uid ID
사용자 UID를 설정에 지정된 범위가 아닌 ID로 강제 지정한다.
--firstuid ID
사용자 UID의 시작 범위를 지정
--lastuid ID
사용자 UID의 마지막 범위를 지정. 유저를 추가하게 되면 firstuid 와 lastuid 범위 사이에서 UID가 결정된다.
--version
버전정보를 출력한다. 


4. Help 사용법

root@gitvm:~# adduser --help
adduser [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID]
[--firstuid ID] [--lastuid ID] [--gecos GECOS] [--ingroup GROUP | --gid ID]
[--disabled-password] [--disabled-login] [--encrypt-home] USER
   Add a normal user

adduser --system [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID]
[--gecos GECOS] [--group | --ingroup GROUP | --gid ID] [--disabled-password]
[--disabled-login] USER
   Add a system user

adduser --group [--gid ID] GROUP
addgroup [--gid ID] GROUP
   Add a user group

addgroup --system [--gid ID] GROUP
   Add a system group

adduser USER GROUP
   Add an existing user to an existing group

general options:
  --quiet | -q      don't give process information to stdout
  --force-badname   allow usernames which do not match the
                    NAME_REGEX[_SYSTEM] configuration variable
  --help | -h       usage message
  --version | -v    version number and copyright
  --conf | -c FILE  use FILE as configuration file


5. 참조할 만한 다른 사이트
http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/1/adduser
http://blog.naver.com/PostView.nhn?blogId=rangie02&logNo=150022756758&redirect=Dlog&widgetTypeCall=true

Posted by 나리 짱!!! naleejang
Linux2012.12.08 18:10

오늘은 Windows에서 Ubuntu Install USB를 만드는 방법을 올려볼까 합니다. 다음과 같은 사유에 의해서 말이죠~!!

그림과 함께 친절하게 작성해 놓을테니 다음에 도움이 되겠지요~!!!




기존에 있던 Ubuntu 설치 USB가 망가져버렸다. 그래서, 다시 USB를 포맷하고 Ubuntu 홈페이지에서 받은 Ubuntu iso 파일을 압축을 풀어서 USB로 복사해서 붙여넣었다. 그리고는 설치를 위해서 USB를 꽃고 설치시작~!!! 헉 그런데 USB를 인식하지 못한다. 이럴수가.. 회사 직원에서 물어보고 구글에 검색~!! Ubuntu 설치 USB 만드는 방법~!! 찾았다. 몇개 있다. 

찾은 방법으로 Ubuntu 설치 USB를 만들었다. 그리고는 다시 설치 시작~!! 


 Insance primary (MRR) partition.

 Can't find myself on the drive I booted from.

 boot : 


헉~ 위와 같은 메시지와 함께 설치화면은 찾아볼 수 없었다. 이를 어떻게 해야 하나.. 직원에서 다시 전화~~!! USB low 포맷을 하란다. low 포맷 프로그램 찾아서 low 포맷을 하니 이번에는 계속해서 포맷 에러 메시지만 분출한다. 어쩔수 없다.

가지고 있는 USB 중 하나를 데이터 백업 받고 다시 시도를 해보자~!! 


우선, 두가지 준비물이 필요하다. 


1. 아래 URL에서 Universal USB Installer 를 다운로드 받는다. 

http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/


2. 우분투 홈페이지에서 설치하고자 하는 Ubuntu Image iso 파일을 다운로드 받는다.

http://www.ubuntu.com/download/server 


3. 그럼,이제 다운로드 받은 Universal-USB-Installer-1.9.1.8.exe를 실행해 보자~!!


4. 나는 Ubuntu 12.04 설치 USB를 만들것이므로, Step1 에서 Ubuntu Server 12.04 Installer를 선택해야 한다. 안그러면 Step2에서 iso 파일을 선택할 수 없다. Step1에서 Ubuntu Server 12.04 Installer 를 선택하고 Setp2에서 좀 전에 다운로드 받은 Ubuntu iso 파일을 선택한다. Step3에서는 USB 드라이브를 선택한다.

이때 만일 포맷을 하고자 원한다면, 그 옆에서 있는 Format 체크박스를 선택하면 아래 그림처럼 Fat32로 포맷을 할 것이라는 영문 메시지가 뜬다. 그러면 이제 Create 버튼을 클릭한다.



5. 아래와 같은 창이 뜨면서 Ubuntu Installing USB를 생성을 시작한다.



6. 설치 중에는 아래와 같은 창도 보일 것이다. 아래 프로그래스바가 100%로 완료될 때까지 기다린다.


7. 완료가 되면 아래와 같은 Installation Done, Process is Complete! 라는 메시지가 뜨고 Close 버튼이 활성화가 된다.



8. Close 버튼을 클릭한 후 USB를 이용해 Ubuntu를 이제 설치하기만 하면 된다. 지금부터 Ubuntu를 설치해보자~!!



나는 이 사실은 알아내기까지 무려 3시간이나 걸렸다. 역시 무엇이든지 해보지 않고서는 잘 할 수 없는것이다. 자꾸 해 보고, 실수와 오류를 만나야지 발전하는 것이다. 물론 계속 다시 도전했을 경우에만 가능한 일이다.

 

'Linux' 카테고리의 다른 글

[ubuntu] chmod 기능 및 옵션  (0) 2013.02.15
[ubuntu] adduser 기능 및 옵션  (0) 2013.01.30
Windows7에서 Ubuntu Install USB 만들기  (0) 2012.12.08
Ubuntu Memory 정보 알아보기  (0) 2012.03.22
ubuntu netstat 명령어 정리  (0) 2012.02.01
Ubuntu CPU 정보 알아보기  (2) 2012.01.27
Posted by 나리 짱!!! naleejang
Linux2012.03.22 13:42

이번에는 Ubuntu Linux에서 Memory 정보를 알아보는 명령어를 알아보도록 하자.

$ cat /porc/meminfo

위와 같은 명령어를 입력하면 Ubuntu의 아래 그림처럼 전체 Memory 정보를 알아볼 수 있다.

그럼 메모리가 얼마나 사용되는 있는지를 알아보려면 어떤 명령어를 써야 할까?
다음과 같은 명령어를 사용하면 된다.

$ free  
$ free -m

-m 옵션을 넣으면 단위를 Mega byte로 변경해서 확인해 볼 수 있다.

'Linux' 카테고리의 다른 글

[ubuntu] adduser 기능 및 옵션  (0) 2013.01.30
Windows7에서 Ubuntu Install USB 만들기  (0) 2012.12.08
Ubuntu Memory 정보 알아보기  (0) 2012.03.22
ubuntu netstat 명령어 정리  (0) 2012.02.01
Ubuntu CPU 정보 알아보기  (2) 2012.01.27
Ubuntu CPU 프로세스 알아보기  (0) 2012.01.27
Posted by 나리 짱!!! naleejang
Linux2012.02.01 17:07
netstat는 ubuntu linux의 network 정보를 확인할 수 있는 명령어로써 다음과 같이 사용할 수 있다.

#netstat -nap (열려 있는 모든 포트)
#netstat -l 또는 netstat -nap | grep LISTEN (LISTEN 되는 모든 포트)
#netstat -nap | grep ESTABLISHED | wc -l ( 모든 서비스 동시 접속자 수)
#netstat -nap | grep :80 | grep ESTABLISHED | wc -l ( 웹 동시 접속자 수)
#netstat -natc (열려있는 모든 TCP 포트를 일정시간마다 반복 출력한다) 



netstat를 명령어를 실행해 보면 위와 같은 결과를 화면으로 만나볼 수 있다. 이때 사용되는 용어들에 대해서 간단히 정리해 보도록 하겠다.

Recv-Q 

프로그램이 소켓을 맺고 카피되지 않은 바이트의 수이다.


Send-Q

리모트 호스트에 의해 응답(ACK) 되지 않은 바이트의 수이다.


LISTEN

서버 애플리케이션이 적재되어 수동적인 모드로 포트를 개설하였음을 의미로 TCP는 연 결요청이 수신 되기를 기다리고 있다.


ESTABLISHED

가상회선이 작동되는데, 3단계 핸드셰이킹 과정이 완료되면 두 시스템은 이 상태에 들어간다.


SYN-SENT

로컬 시스템의 클라이언트 애플리케이션이 원격 호스트에 능동적인 개설을 요청한다. TCP는 Synchronize flag 를 설정한 시작 세그먼트를 전송 하였으며, 원격 시스템도 역시 Synchronize flag 를 설정한 시작 세그먼트로 응답할 것을 기다린다.


SYN-RECEIVED

서버의 TCP가 원격 클라이언트로부터 Synchronize flag가 설정된 시작 세그먼트를 수신하였고 자신의 시작 세그먼트로 응답 하였으며, 그 세그먼트에 대한 확인메세지를기다린다.


FIN-WAIT-1

로컬 애플리케이션은 가상 회선에 능동적인 종결을 요청하였으며, TCP는 Finish flag가 설정된 종결 세그먼트를 전송한다. 그러나 TCP는 아직도 원격 시스템이 세그먼트에 대한 확인 메세지와 자신만의 종결 세그먼트로 응답하기를 기다린다. 회선이 완전히 종결될 때까지 원격 시스템으로부터 데이터는 수신하지만, 추가적인 데이터를 전송하지는않는다.


FIN-WAIT-2

(FIN-WAIT-1 의 설명과 처럼) 로컬 TCP는 Finish flag 가 설정된 종결 세그먼트를 전송하였으며, (WAIT-CLOSE 의 설명대로) 원격 시스템으로 부터 그 세그먼트에 대한 확인 메세지를 수신한다. 그러나 원격 애플리케이션이 아직 작업을 종료 하지 않아 원격TCP가 자신의 종결 세그먼트를 생성하지 못하고 있는 상태이다.


COLSE-WAIT

(FIN-WAIT-1 의 설명과 같이) Finish flag 가 설정된 종결 세그먼트가 수신되었고 로컬 TCP는 그 세그먼트에 대한 확인 메세지를 송신 시스템에 전송한다. 그러나 로컬 TCP는 로컬 애플리케이션에서 작업을 종료하지않아 자신의 종결 세그먼트를 생성하지 못한다.


LAST-ACK

(FIN-WAIT-1의 설명과 같이) Finish flag 가 설정된 종결 세그먼트가 수신되었고, 로컬 애플리케이션은 회선의 종결에 합의하여 자신도 종결을 요청한다. 그 결과 로컬 TCP는 Finish flag 가 설정된 자신의 종결 세그먼트를 전송 하였으며, 이 세그먼트에 대한 확인 메세지가 수신되면 종결된다.


CLOSING

이 상태는 흔하지 않으며, 일반적으로 세그먼트가 네트워크에서 분실되었다는것을 나타낸다. 이런 경우 로컬 TCP는 (FIN-WAIT-1 의 설명과 같이) Finish flag 가 설정된 종결 세그먼트를 전송 하고 (LAST-ACK 의 설명과 같이) 원격 시스템의 종결 세그먼트도 수신하였지만, FIN-WAIT-1 단계에서 전송한 세그먼트에 대한 확인 메세지가 수신되지않은 상태이다. 이 상태는 보통 확인 메세지가 전송 도중 분실되었다는 의미이다.


TIME-WAIT

회선의 종결 절차가 완결되었으나 TCP 는 분실되었을지 모르는 느린 세그먼트를 위해당분간 소켓을 열어 놓은 상태로 유지한다. 이 상태는 새로운 연결이 기존의 연결에서 사용된 일련번호를 다시 사용하는 것을 막는다. 원격 시스템이 종결하는 호스트로부터 더이상 데이터를 수신할 가능성이 없으므로, 이 상태는 능동적인 종결을 요청한 호스트에서만 나타난다.


CLOSED

아무일도 발생하지 않는다. 회선은 종결되었고, TCP는 그 가상 회선에 사용하였던 모든자원을 놓아준다. 이 상태를 보여줄 수 있는 가상 회선이 없으므로 아무 일도 발생하지 않는다.

'Linux' 카테고리의 다른 글

[ubuntu] adduser 기능 및 옵션  (0) 2013.01.30
Windows7에서 Ubuntu Install USB 만들기  (0) 2012.12.08
Ubuntu Memory 정보 알아보기  (0) 2012.03.22
ubuntu netstat 명령어 정리  (0) 2012.02.01
Ubuntu CPU 정보 알아보기  (2) 2012.01.27
Ubuntu CPU 프로세스 알아보기  (0) 2012.01.27
Posted by 나리 짱!!! naleejang
Linux2012.01.27 14:54

Ubuntu Linux에서 Server의 CPU 정보를 확인 할 수 있다.

$cat /proc/cpuinfo

위와 같으 명령을 입력하면 현재 server에 있는 모든 cpu 수만큼의 cpu 상세정보를 확인 할 수 있다.


그러면 위에 있는 그림처럼 Processer, vender, cpu수, model명 등등 상세한 cpu 정보를 확인 할 수 있다. 
거기에 grep 명령을 활용하면 특정 정보만을 확인할 수 있다.

$cat /proc/cpuinfo | grep "model name"

위의 명령어는 grep을 이용하여 cpu의 모델명을 검색하는 명령어로 아래처럼 확인 할 수 있다.

 


'Linux' 카테고리의 다른 글

[ubuntu] adduser 기능 및 옵션  (0) 2013.01.30
Windows7에서 Ubuntu Install USB 만들기  (0) 2012.12.08
Ubuntu Memory 정보 알아보기  (0) 2012.03.22
ubuntu netstat 명령어 정리  (0) 2012.02.01
Ubuntu CPU 정보 알아보기  (2) 2012.01.27
Ubuntu CPU 프로세스 알아보기  (0) 2012.01.27
Posted by 나리 짱!!! naleejang
Linux2012.01.27 14:02
Ubuntu에서 프로세스가 얼마나 돌아가고 있는지 알아보기 위한 아주 쉬운 명령어가 있다.

$ top 

단지 이렇게만 입력하면 top 이라고만 입력하고 엔터를 치면 아래와 같은 화면을 확인할 수 있다.



'Linux' 카테고리의 다른 글

[ubuntu] adduser 기능 및 옵션  (0) 2013.01.30
Windows7에서 Ubuntu Install USB 만들기  (0) 2012.12.08
Ubuntu Memory 정보 알아보기  (0) 2012.03.22
ubuntu netstat 명령어 정리  (0) 2012.02.01
Ubuntu CPU 정보 알아보기  (2) 2012.01.27
Ubuntu CPU 프로세스 알아보기  (0) 2012.01.27
Posted by 나리 짱!!! naleejang