728x90
반응형
groupadd


◆ groupadd 명령은 새로운 그룹을 만들 때 사용



groupadd 명령어의 도움말 




◆ 형식

# groupadd 옵션 그룹명


◆ 옵션

-g gid : 그룹에 gid를 지정 합니다.
-r : 시스템에 사용되는 gid를 부여 합니다. 500번 이하의 가장 빠른 gid를 생성합니다.


◆ 예제



roottest 라는 그룹을 생성 / gid 는 지정을 안하고 -r 옵션도 없기 때문에 가장 빠른 500번대 이후 숫자를 부여


◆ 그룹 정보 확인

# cat /etc/group | grep 그룹명

그룹정보는 /etc/group 에 저장 / cat 명령어와  grep 으로 특정 그룹만 확인 / 그룹이 없을 경우는 결과가 출력이 되지 않음




groupmod


groupmod 는 그룹의 설정을 변경할때 사용



groupmod 의 도움말 화면 


형식

# groupmod 옵션 그룹명


옵션

-g gid : gid 를 변경합니다. -o 옵션과 같이 사용해서 중복 설정을 해줄수도 있습니다.
-n 새그룹명 : 그룹명을 변경할때 사용합니다.



roottest 라는 그룹의 gid 와 그룹명을 변경 / 기본 gid 는 503 이였는데 510으로 그룹명은 roottest 에서 roottest510 으로 변경된걸 확인



groups


groups 명령어는 그룹에 속한 사용자 계정을 확인할때 사용하는 명령어



roottest510 과 rootblog 라는 그룹에 속해있는 계정을 확인


형식

# groups 그룹명





groupdel


groupdel 은 그룹을 삭제할때 사용하는 명령어




그룹안에 계정이 속해 있을경우 삭제가 되지 않습니다.


형식

# groupdel 그룹명





id


◆ id 명령어의 도움말 화면



id 명령어는 그룹 관련 명령어는 아니지만 사용자 계정에 uid,gid,group 를 확인

형식

$ id 옵션 사용자ID
옵션

-g : 기본 그룹 정보면 표시 합니다.
-G : 모든 그룹 정보를 표시 합니다.



rootblog 계정을 id 명령어로 확인 / uid, gid, groups 정보가 표시 


반응형

'Linux' 카테고리의 다른 글

Linux kpartx  (0) 2018.08.17
Linux Chome 새로고침 명령어  (0) 2018.08.14
Linux chgrp  (0) 2018.08.08
Linux User 관리  (0) 2018.08.08
Linux grep and egrep  (0) 2018.08.08
728x90
반응형
chgrp란?

- CHange GRouP의 약어로서 파일이나 디렉토리의 소유그룹을 변경할때 사용하는 명령어이다.

- chown명령어는 소유자와 소유그룹을 한꺼번에 변경할 수 있지만 chgrp로는 소유그룹만을 변경할 수가 있다.


사용형식

chgrp [-Rcfv] [--recursive] [--changes] [--silent] [--quiet] [--verbose] [--help] [--version]
  group file...

chgrp [옵션] [그룹] [파일]


옵션

-c: 변경된 파일만 자세하게 보여준다.
-f: 변경되지 않은 파일에 대해서 오류 메시지를 보여주지 않는다.
-v: 작업상태를 자세히 보여준다.
-R: 경로와 그 하위 파일들을 모두 변경한다.
--help: 도움말을 출력한다.
--version: 버전 정보를 보여준다.





사용예


사용예 #1

특정 파일의 소유그룹을 변경하고자 한다면 다음과 같이한다.

[root@host1 commmand]# ls -l
합계 12
drwxr-xr-x 7 bible1 bible2 4096 9월 15 20:41 dir1
-rw-r--r-- 1 bible bible1 41 9월 15 20:22 file1
-rw-r--r-- 1 nobody bible1 56 9월 15 20:22 file2
[root@host1 commmand]#
[root@host1 commmand]# chgrp nobody file1
[root@host1 commmand]#
[root@host1 commmand]# ls -l
합계 12
drwxr-xr-x 7 bible1 bible2 4096 9월 15 20:41 dir1
-rw-r--r-- 1 bible nobody 41 9월 15 20:22 file1
-rw-r--r-- 1 nobody bible1 56 9월 15 20:22 file2
[root@host1 commmand]#

위의 예는 file1이라는 파일의 소유그룹을 nobody로 변경한 것이다.



사용예 #2

이번에는 두개이상의 파일과 디렉토리들을 한꺼번에 변경한 예를 보인 것이다.


[root@host1 commmand]# ls -l
합계 12
drwxr-xr-x 7 bible1 bible2 4096 9월 15 20:41 dir1
-rw-r--r-- 1 bible nobody 41 9월 15 20:22 file1
-rw-r--r-- 1 nobody bible1 56 9월 15 20:22 file2
[root@host1 commmand]#
[root@host1 commmand]# chgrp root *
[root@host1 commmand]#
[root@host1 commmand]# ls -l
합계 12
drwxr-xr-x 7 bible1 root 4096 9월 15 20:41 dir1
-rw-r--r-- 1 bible root 41 9월 15 20:22 file1
-rw-r--r-- 1 nobody root 56 9월 15 20:22 file2
[root@host1 commmand]#

위의 예는 현재 디렉토리에 존재하는 모든 파일과 디렉토리의 소유그룹을 root로 변경한 예이다.


사용예 #3

이번에는 변경하고자하는 소유그룹을 GID로 지정한 예이다.
ID로 지정할 수도 있지만 다음예와 같이 GID로 지정할 수도 있다.

[root@host1 commmand]# ls -l
합계 12
drwxr-xr-x 7 bible1 root 4096 9월 15 20:41 dir1
-rw-r--r-- 1 bible root 41 9월 15 20:22 file1
-rw-r--r-- 1 nobody root 56 9월 15 20:22 file2
[root@host1 commmand]#
[root@host1 commmand]# chgrp 500 dir1
[root@host1 commmand]#
[root@host1 commmand]# ls -l
합계 12
drwxr-xr-x 7 bible1 bible 4096 9월 15 20:41 dir1
-rw-r--r-- 1 bible root 41 9월 15 20:22 file1
-rw-r--r-- 1 nobody root 56 9월 15 20:22 file2
[root@host1 commmand]#

위의 예는 dir1이라는 디렉토리의 소유그룹을 GID 500이라는 소유그룹으로 변경한 예이다.


사용예 #4

이번에는 디렉토리의 소유그룹과 그 디렉토리내에 존재하는 모든 파일과 디렉토리의 소유그룹을 특정 그룹으로 변경한 예를 보자.

[root@host1 commmand]# ls -l
합계 12
drwxr-xr-x 7 bible1 bible 4096 9월 15 20:41 dir1
-rw-r--r-- 1 bible root 41 9월 15 20:22 file1
-rw-r--r-- 1 nobody root 56 9월 15 20:22 file2
[root@host1 commmand]#
[root@host1 commmand]# chgrp -R nobody dir1
[root@host1 commmand]#
[root@host1 commmand]# cd dir1
[root@host1 dir1]#
[root@host1 dir1]# ls -l
합계 28
drwxr-xr-x 4 bible1 nobody 8192 9월 15 20:40 admin
drwxr-xr-x 4 bible1 nobody 4096 9월 15 20:40 board
drwxr-xr-x 2 bible1 nobody 4096 9월 15 20:40 phplib
drwxr-xr-x 3 bible1 nobody 4096 9월 15 20:41 shop
drwxr-xr-x 2 bible1 nobody 4096 9월 15 20:39 system_check
-rw-r--r-- 1 bible1 nobody 17 7월 16 2002 test.php
[root@host1 dir1]#

위의 예에서 dir1과 그 안에 존재하는 모든 파일과 디렉토리들의 소유그룹을 nobody로 변경한 예를 보인 것이다.
반응형

'Linux' 카테고리의 다른 글

Linux Chome 새로고침 명령어  (0) 2018.08.14
Linux User Group 관리  (0) 2018.08.14
Linux User 관리  (0) 2018.08.08
Linux grep and egrep  (0) 2018.08.08
Linux Module  (0) 2018.08.08
728x90
반응형
User 추가하기

# useradd 옵션 계정명

◆ 옵션 
-d 홈디렉토리 : 홈디렉토리의 경로를 지정해줍니다. 홈디렉토리를 생성할려면 -m 옵션을 같이 사용합니다.
-u uid : uid 를 지정합니다.
-g gid : gid 그룹을 지정합니다.
-G groups : 보조그룹을 지정합니다.
-e 20150525 : 계정을 지정된 날짜에 삭제
Ex) useradd -e 20150525 test
-f 20150525 : 패스워드의 만료 후 계정 영구 삭제 기간
-s shell : 쉘을 지정합니다.
-c 주석 : 계정에 설명을 붙여 줍니다.
-D : useradd 의 기본 설정값을 확인합니다. 기본설정은 /etc/default/useradd 에 있습니다.

계정생성시 홈디렉토리에 복사될 파일 모음
/etc/skel
계정을 새로 생성하면 위에 경로에 저장되어 있는 파일이 자동으로 홈디렉토리에 복사됩니다.



rootblog 라는 계정을 생성해봤습니다.
-d 옵션으로 홈디렉토리 경로를 지정해주었지만 해당경로는 없는 경로이므로 
-m 옵션으로 디렉토리 생성을 하였습니다.

◆ Tip

계정 정보 확인방법
# cat /etc/passwd | grep 계정명

/etc/passwd 안에 사용자 계정정보가 들어 있습니다.
cat 명령으로 열어보고 | grep 계정명으로 특정 단어만 검색해서 확인을 하면 됩니다.
나오는 정보는
[ID : 패스워드 : UID : GID : 주석 : 홈디렉토리 : 쉘]
순서로 정보가 표시 됩니다.
패스 워드 정보는 x or 1! or 암호화된 상태 로 표시되게 됩니다.
x : 이 패스워드는 /etc/shadow 파일에 암호화되어 저장되어 있다는 의미
* :  해당 계정은 막아두었다는 것을 의미
:: : :: 사이에 비어있는 경우는 로그인하는데 패스워드가 필요없다는 의미

 



User 계정 설정 변경

# usermod 옵션 계정명
◆ 옵션
-u uid : 새로운 UID 를 지정합니다. -o 옵션과 같이 사용하면 강제설정이 가능합니다.(root로 가능)
-g gid : 새로운 GID 를 지정합니다.
-G groups : 새로운 보조그룹을 지정합니다.
-d 홈디렉토리 : 새로운 홈디렉토리를 지정합니다. -m 옵션과 같이 사용해서 새로 생성도 가능합니다.
-s 쉘 : 새로운 쉘 을 지정합니다.
-c 주석 : 새로운 주석을 지정합니다.
-l ID : 로그인 ID를 바꾸는 옵션 입니다. 새로운 계정명으로 변경합니다.



계정에 gid를 변경을 해봤습니다.
root 계정의 gid로 변경한게 아니기 때문에 -o 옵션은 안해줘도 상관이 없습니다.
501 -> 505 로 변경이 된걸 확인할수 있습니다.





User 계정 삭제

# userdel 옵션 계정명

◆ 옵션
-r : 홈디렉토리도 삭제를 합니다.
-f : 삭제중에 나는 에러를 무시하고 강제로 삭제 합니다.



roottest 란 계정을 만든후 삭제를 해봤습니다.
-r 과 -f 옵션으로 삭제하면 계정과 파일이 모두 지워지니 주의 해서 실행해야 합니다.





Passwd 명령어



◆ passwd 의 도움말
-passwd 명령어는 계정에 비밀번호를 지정해 줄때 사용
- useradd로 새로운 계정을 만들면 계정에 비밀번호가 없는 상태로 생성
 (가능한 useradd 후에 바로 passwd로 비밀번호를 지정해주는걸 권장합니다.)


# passwd 옵션 계정명
◆ 옵션
-S : 계정에 상태를 표시합니다. (PS : 정상 , NP : 패스워드가 없음 , LK : Lock 상태거나 NP 상태)
-d : 계정에 패스워드를 삭제 합니다.
-l : 계정을 lock 상태로 변경합니다.
-u : 계정에 lock 상태를 해제 합니다.



rootblog 계정에 패스워드를 지정하고 삭제를 해봤습니다. 
반응형

'Linux' 카테고리의 다른 글

Linux User Group 관리  (0) 2018.08.14
Linux chgrp  (0) 2018.08.08
Linux grep and egrep  (0) 2018.08.08
Linux Module  (0) 2018.08.08
Linux chkconfig  (0) 2018.08.08
728x90
반응형
grep 명령어


◆ grep의 의미

grep : 파일 전체를 뒤져 정규표현식에 대응하는 모든 행들을 출력한다.

egrep : grep의 확장판으로, 추가 정규표현식 메타문자들을 지원한다.

fgrep : fixed grep 이나 fast grep으로 불리며, 모든 문자를 문자 그래도 취급한다. 즉, 정         규표현식의 메타문자도 일반 문자로 취급한다.



◆ grep의 동작 방법

- grep에서 사용하는 정규표현식 메타문자




- grep의 옵션



# grep -n '^jack:' /etc/passwd
(/etc/passwd 파일에서 jack을 찾는다. jack이 행의 맨 앞에 있으면 행 번호를 화면으로 출력한다.)



◆ grep과 종료 상태

grep은 파일 검색의 성공 여부를 종료 상태값으로 되돌려준다.

패턴을 찾으면 0, 패턴을 찾을 수 없으면 1, 패턴이 존재하지 않을 경우 2

sed,a자 등은 검색의 성공 여부에 대한 종료 상태값을 반환하지 않는다. 다만 구문 에러가 있을 경우에만 에러를 보고한다.






정규표현식을 사용하는 grep의 예제


# grep NW datafile

# grep NW d*

(d로 시작하는 모든 파일에서 NW를 포함하는 모든 행을 찾는다.)

# grep '^n' datafile

(n으로 시작하는 모든 행을 출력한다.)

# grep '4$' datafile

(4로 끝나는 모든 행을 출력한다.)

# grep TB Savage datafile

(TB만 인자이고 Savage와 datafile은 파일 이름이다.)

# grep 'TB Savage' datafile

(TB Savage를 포함하는 모든 행을 출력한다.)

# grep '5\.' datafile

(숫자 5, 마침표, 임의의 한 문자가 순서대로 나타나는 문자열이 포함된 행을 출력한다.)

# grep '\.5' datafile

(.5가 나오는 모든 행을 출력한다.)

# grep '^[we]' datafile

(w나 e로 시작하는 모든 행을 출력한다.)

# grep '[^0-9]' datafile

(숫자가 아닌 문자를 하나라도 포함하는 모든 행을 출력한다.)

# grep '[A-Z][A-Z] [A-Z]' datafile

(대문자 2개와 공백 1개, 그리고 대문자 하나가 연이어 나오는 문자열이 포함된 행을 출력한다.)

# grep 'ss* ' datafile

(s가 한 번 나오고, 다시 s가 0번 또는 여러번 나온 후에 공백이 연이어 등장하는 문자열을 포함한 모든 행을 출력한다.)

# grep '[a-z]\{9\}' datafile

(소문자가 9번 이상 반복되는 문자열을 포함하는 모든 행을 출력한다.)

# grep '\(3\)\.[0-9].*\1 *\1' datafile

(숫자 3,마침표,임의의 한 숫자,임의 개수의 문자,숫자 3(태그),임의 개수의 탭 문자,숫자 3의 순서를 갖는 문자열이 포한된 모든 행을 출력한다.)

# grep '\

(north로 시작하는 단어가 포함된 모든 행을 출력한다.)

# grep '\' datafile

(north라는 단어가 포함된 모든 행을 출력한다.)

# grep '\<[a-z].*n\>' datafile
(소문자 하나로 시작하고, 이어서 임의 개수의 여러 문자가 나오며, n으로 끝나는 단어가 포함된 모든 행을 출력한다. 여기서 .*는 공백을 포함한 임의의 문자들을 의미한다.)





grep에 옵션 사용


# grep -n '^south' datafile

(행번호를 함께 출력한다.)

# grep -i 'pat' datafile

(대소문자를 구별하지 않게 한다.)

# grep -v 'Suan Chin' datafile

(문자열 Suan Chin이 포함되지 않은 모든 행을 출력하게 한다. 이 옵션은 입력 파일에서 특정 내용의 입력을 삭제하는데 쓰인다.

# grep -v 'Suan Chin' datafile > black

# mv black datafile

)

# grep -l 'SE' *

(패턴이 찾아진 파일의 행 번호 대신 단지 파일이름만 출력한다.)

# grep -w 'north' datafile

(패턴이 다른 단어의 일부가 아닌 하나의 단어가 되는 경우만 찾는다. northwest나 northeast 등의 단어가 아니라, north라는 단어가 포함된 행만 출력한다.)

# grep -i "$LOGNAME" datafile
(환경변수인 LOGNAME의 값을 가진 모든 행을 출력한다. 변수가 큰따옴표로 둘러싸여 있는 경우, 쉘은 변수의 값으로 치환한다. 작은따옴표로 둘러싸여 있으면 변수 치환이 일어나지 않고 그냥 $LOGNAME 이라는 문자로 출력된다.)




egrep


◆ egrep(extended grep) : grep에서 제공하지 않는 확장된 정규표현식 메타문자를 지원 / grep와 동일한 명령행 옵션을 지원


◆ egrep에서 지원하는 확장 메타문자




◆ egrep 예제

# egrep 'NW|EA' datafile

(NW나 EA가 포함된 행을 출력한다.)

# egrep '3+' datafile

(숫자 3이 한 번 이상 등장하는 행을 출력한다.)

# egrep '2\.?[0-9]' datafile

(숫자 2 다음에 마침표가 없거나 한 번 나오고, 다시 숫자가 오는 행을 출력한다.)

# egrep ' (no)+' datafile

(패턴 no가 한 번 이상 연속해서 나오는 행을 출력한다.)

# egrep 'S(h|u)' datafile

(문자 S 다음에 h나 u가 나오는 행을 출력한다.)

# egrep 'Sh|u' datafile
(패턴 Sh나 u를 포함한 행을 출력한다.)





고정 grep 과 빠른 grep
◆ fgrep : grep 명령어와 동일하게 동작한다. 다만 정규표현식 메타문자들을 특별하게 취급하지

          않는다.

# fgrep '[A-Z]****[0-9]..$5.00' file
([A-Z]****[0-9]..$5.00 이 포함된 행을 출력한다. 모든 문자들을 문자 자체로만 취급한다.)





부가 설명


◆ grep 은 가장 유용한 툴 중의 하나


◆ grep 의 주된 기능은 정규표현식에 매칭되는 문자열을 찾아서 해당 라인만을 출력하는 것


◆ 쉽게 말해, 출력결과(or 입력)에서 찾는 문자열이 있는 라인만 보여주는 기능


◆ egrep은 grep의 확장판인데 두개이상의 문자열을 검색합니다.

# netatte -ap | egrep "aaa|bbb|ccc"

하면  netstate의 결과물중 aaa 혹은 bbb 혹은 ccc가 있는 라인을 출력, 즉 or 검색이 가능


◆ grep 하위 디렉토리 까지 조회시 -r 옵션 안될경우

보통 리눅스에서는 grep -r 하위 디렉토리까지 파일을 검색 할수 있게 recursive 옵션을 지원하지만 전통? grep에는 -r 옵션이 없는지 AIX ,HP,Solaris 에서는 -r 옵션을 사용 할수 없다.

그렇다면 여기서 find 와 xargs 를 이용하여 -r 옵션과 같은 실행을 할수 있는 방법은 아래와 같다.

ex) dir : /home/search/cgi-src

        1. -r 옵션 이용 : grep -r "include"  /home/search/cgi-src

        2.  find 와 xargs  이용 : find /home/search/cgi-src | xargs grep "include"

뭐 여기서 xargs는  간단하게 말해 파이프 '|' 를 통해 입력 받아서 xargs 뒤에 있는 명령어(grep)한테 파라미터를 주는것.
반응형

'Linux' 카테고리의 다른 글

Linux chgrp  (0) 2018.08.08
Linux User 관리  (0) 2018.08.08
Linux Module  (0) 2018.08.08
Linux chkconfig  (0) 2018.08.08
Linux SAR  (0) 2018.08.08
728x90
반응형
모듈 관리의 필요성


◆  디바이스 드라이버를 모듈로 커널에 등록할 수 있다는 것은 매우 편리한 방법

◆  만일 커널에 고정으로 실행되어야 한다면 프로그램을 수정할 때 마다 시스템을 재 부팅해야 될 것





모듈관련 명령어

  • insmod : 커널에 모듈을 등록
    -s : 실행결과를 터미널 대신 syslog에 기록한다.
    -v : 메시지를 자세히 보여준다.
  • rmmod : 커널에 등록된 모듈을 제거
    -a : 사용되지 않는 모든 모듈을 제거한다.

  • lsmod : 커널에 등록된 모듈의 목록 출력
  • depmod : 모듈간의 의존성 정보를 생성
  • modinfo : 모듈 오브젝트 파일의 모듈 정보를 보여준다. 
    -d : 모듈에 대한 설명을 보여준다.
    -p : 모듈이 지원하는 매개변수를 보여준다.

  • modprobe : 모듈을 커널에 등록하거나 제거
    -l : 사용가능한 모든 모듈을 보여준다.
    -r : rmmod와 같이 모듈을 제거한다. 여러 모듈을 한꺼번에 지정할 수 있다. 또한 의존성이 걸려 있는 모듈들도 찾아
    자동으로 제거한다.
    -c : 기본값과 /etc/modules.conf에 정의된 지시자를 포함해 완전한 모듈설정을 보여준다.
    -k : autoclean을 사용하여 모듈 적재



디바이스 드라이버 파일 찾기

◆ 모듈 명령은 모두 root 계정에서 실행가능
]$ su -
Password:
[root@jwCentOS ~]# lsmod
Module Size Used by
nfsd 214529 17
exportfs 10177 1 nfsd
lockd 65769 2 nfsd
nfs_acl 7745 1 nfsd
md5 8129 1
ipv6 242657 14
parport_pc 28033 1
lp 15661 0
parport 38025 2 parport_pc,lp
autofs4 23109 0
i2c_dev 14529 0
i2c_core 26049 1 i2c_dev
sunrpc 144037 12 nfsd,lockd,nfs_acl
dm_mirror 31901 0
dm_mod 60741 1 dm_mirror
button 10705 0
battery 12997 0
ac 8901 0
tulip 47073 0
floppy 58193 0
ext3 119113 3
jbd 59609 1 ext3

◆  여기선 시리얼 포트와 관련된 디바이스 드라이버를 찾을 수 없음(임베디드 보드 포함)

Welcome to FALinux EZ-X5 ( www.falinux.com )
XScale(PXA255) Linux
ez-x5 login: root
[root@ez-x5 /root]$ lsmod
Module Size Used by Not tainted
[root@ez-x5 /root]$

◆ 디바이스 드라이버를 반드시 모듈로 작성하지 않음(즉, 이미 자주 사용되고 범용성이 있는 디바이스 드라이버나 소스를 공개해도 관계없는 디바이스 드라이버는 커널 소스와 함께 컴파일되서 아예 커널과 한 몸으로 실행), 그러므로 커널 부팅 후에 따로 insmod 로 모듈로 등록되지 않으므로 당연히 lsmod 에 출력되지 않는 것

◆ 대신에 /proc 디렉토리의 내용을 확인하시면 정확한 정보를 확인가능. 참고로 /proc 디렉토리는 하드디스크와 같은 실제 물리적인 파일 시스템이 아니라 리눅스에서 제공하는 가상의 디렉토리로 시스템을 정보를 파일 형식으로 보여주는 디렉토리

]# cat /proc/devices
Character devices:
1 mem
4 /dev/vc/0
4 tty
4 ttyS
5 /dev/tty
5 /dev/console
5 /dev/ptmx
6 lp
7 vcs
10 misc
13 input
29 fb
36 netlink
89 i2c
128 ptm
136 pts
162 raw
180 usb

Block devices:
1 ramdisk
2 fd
3 ide0
9 md
22 ide1
253 device-mapper
254 mdp
[root@jwCentOS ~]#

◆ 시리얼 포트에 대한 디바이 드라이버 정보를 /proc/devices 내용에서 찾을 수 있음

◆ 디바이스 드라이버 목록과 함께 주 장치 번호도 출력되므로 /proc/devices 를 기억해 두시면 좋을 것으로 생각


반응형

'Linux' 카테고리의 다른 글

Linux User 관리  (0) 2018.08.08
Linux grep and egrep  (0) 2018.08.08
Linux chkconfig  (0) 2018.08.08
Linux SAR  (0) 2018.08.08
Linux top  (0) 2018.08.08
728x90
반응형
chkconfig


◆ 명령어 예시

chkconfig:<space>run-level<sapce>시작 우선순위<space>종료 우선순위

run-level은 실행될 수 있는 런레벨을 지정한다. 위에서 2345는 레벨 2, 3, 4, 5라면 이 서비스는 시작된다는 의미

런레벨을 -로 입력하면 어떤 레벨에서든지 시작하지 않겠다는 뜻이다. 즉, 부팅시 자동 시작을 안하겠다는 것






chkconfig 사용법


service 등록
# chkconfig --add <service name>
service name은 init.d에 있는 스크립트의 파일명이 된다.


# chkconfig --add sendmail
sendmail 서비스를 등록한다.
add할 경우 chkconfig 엔트리에 내용대로 런레벨의 on/off가 적용된다.


service on/off/reset
해당 서비스를 on/off할 것인 지를 정한다. 만일,
# chkconfig sendmail off
라고 하면, on 되어 있는 모든 런레벨을 off해버린다.

# chkconfig sendmail on
엔트리의 내용대로 런레벨의 on이 되어 진다.

# chkconfig --level 2345 sendmail on
위의 명령어는 런레벨 2,3,4,5에서 sendmail 서비스를 시작하겠다는 뜻이다.

# chkconfig sendmail reset
reset은 on/off 설정을 원래대로 돌리는 것이다. 현재 sendmail이 2,3,4,5 레벨에서 실행하게 되어 있지만,
이후에 2,3을 off시켰다고 하자. 그런다음 reset을 하면 다시 2,3이 on으로 설정된다.


서비스 삭제
# chkconfig --del sendmail
sendmail서비스를 삭제한다.


서비스 리스트 보기
# chkconfig --list
이것은 모든 서비스 리스트를 보여주는 것이다.

# chkconfig --list sendmail

list중에 sendmail만 보여준다


반응형

'Linux' 카테고리의 다른 글

Linux grep and egrep  (0) 2018.08.08
Linux Module  (0) 2018.08.08
Linux SAR  (0) 2018.08.08
Linux top  (0) 2018.08.08
Linux ps  (0) 2018.08.08
728x90
반응형
sar 
 
◆ 지금 현재의 시스템 상황보다는 이전의 로그를 바탕으로 어떤 시기에 어떤 일들이 있었는가를 측정하여 시스템의 장기적인 부하량을 예측하고 대처할 수 있도록 해 주는 명령어






sar에서 확인할 수 있는 사항


 I/O 전송량 - 페이징- 프로세스 생성 숫자

 블락 디바이스 활동

 인터럽트 - 네트워크 통계

 run 큐 및 시스템 부하 평균

 메모리와 스왑 공간 활용 통계

 메모리 통계

 CPU 이용도

 특정 프로세스에 대한 CPU 이용도

 inode, 파일, 기타 커널 테이블에 대한 상태

 시스템 스위칭 활동(context switch)

 스와핑 통계 - 특정 프로세스 통계

 특정 프로세스의 자식 프로세스 통계

 TTY 디바이스 활동






사용옵션 


 sar명령어에 옵션을 주지 않고 수행했을 경우 -u옵션이 default로 적용

 sar -A: 모든 관련정보를 출력

 Shell> sar
%user : 사용자 레벨(application level) 에서 실행중일때의 CPU 사용률 (%)
%nice : 사용자 레벨(appliaction level) 에서 nice 가중치를 준 CPU 사용률(%)
%system : 시스템레벨(kernel) 에서 실행중일때의 CPU 사용률(%)
%iowait : system이 I/O요청을 처리하지 못한 상태에서의 CPU의 idle 상태인 시간의 비율(%)
%steal : virtual processer에 의한 작업이 진행되는 동안 virtual CPU에 의해 뜻하지 않는 대기시간이 생기는 시간의 비율(%)
%idle : CPU가 쉬고있는 시간의 %







명령어 살펴보기


# sar 5 2

5초 간격으로 2회 수행.




# sar -b 

버퍼의 activity를 점검하여 I/O와 transfer의 통계를 출력

tps: 물리적 디스크에서 발생한 초당 전송량이며, 여기서의 전송은 물리적 디스크에 요청한 I/O
rtps: 물리적 디스크로부터 발생된 초당 읽기의 총 요청 횟수
bread/s: 드라이브 안의 블럭에서 초당 읽은 데이터의 총합
bwrth/s: 드라이브 안의 블록에서 초당 쓰여진 데이터의 총합



# sar -B 

페이징 통계를 출력.

pgpgin/s: 디스크로부터 초당 paged in된 page의 총 수
papgout/s: 디스크에 초당 paged out 된 page의 총 수



# sar -w 

  새롭게 만들어져 활동하고 있는 프로세스를 출력





# sar -d

DEV: network device의 결과로부터의 통계
 
IFACE: Network Interface 이름 
 
rxpck/s: 초당 받은 패킷수 
 
txpck/s: 초당 전송한 패킷수 
 
rxbyt/s: 초당 받은 bytes 
 
txbyt/s: 초당 전송한 bytes 
 
rxcmp/s: 압축된 패킷을 초당 받은 수 
 
txcmp/s: 압축된 패킷을 초당 전송한 수 
 
rxmcst/s: 초당 받은 다중 패킷 수




# sar -r 

가용메모리 점검 및 메모리 공간의 통계를 출력

kbmemfree : 사용가능한 총 메모리의 양(kbytes) 

kbmemused : 사용중인 총 메모리의 양(kbytes), 커널에서 사용중인 메모리는 제외 

%memused : 사용된 메모리의 % 

kbbuffers : 커널에서 buffer 메모리로 총 사용된 메모리의 양 (kbytes) 

kbcached : 커널에서 cache data 로 사용된 총 메모리의 양(kbytes) 

kbcommit : 현재 작업을 위해 필요한 메모리의 총량(kbytes),메모리 부족이 발생하지 않기 위한 RAM/swap 사용량의 추정치  

%commit : 현재 작업을 위해 필요한 메모리 총량의 %, kernel은 보통 메모리를 overcommits하므로 일반적으로 100%를 넘을 것




# sar -R 

메모리 통계

frmpg/s : 시스템에서 초당 자유로워진 memory pages 의 양 페이지의 크기는 시스템 아키텍쳐에 따라 달라지며 보통 4K / 8K

bufpg/s : 시스템에서 초당 buffer 에 추가적으로 더해진 memory pages 의 양  

campg/s : 시스템에서 초당 system에 의해 cache된 memory pages 의 양




그외의 명령어 정리

sar -S → 스왑 점검 및 공간의 통계를 출력
sar -v → 커널테이블 & 파일에서 inode의 상태를 출력
sar -w → 작업 생성과 시스템 switching활동 현황 출력
sar -W → swapping의 통계 출력




sar 설정하기




sa1은 매 10분마다 시스템 모니터링한 결과를 /var/log/sa/saXX파일에 바이너리 형태로 기록, XX는 기록하는 날짜

sa2 -A는 23시 53분에 바이너리 파일을 읽어서 사람들이 볼 수 있도록 보고서를 만든듬, /var/log/sa/sarXX 형태로 기록. sa1에서 5 3이라고 해놓으면 매 10분마다 실행을 하면서 5초동안 3번을 기록한다는 뜻

sar를 이용하여 각 결과 값을 위에 설명한 옵션을 이용하여 확인
반응형

'Linux' 카테고리의 다른 글

Linux Module  (0) 2018.08.08
Linux chkconfig  (0) 2018.08.08
Linux top  (0) 2018.08.08
Linux ps  (0) 2018.08.08
Linux mpstat  (0) 2018.08.08
728x90
반응형
TOP





맨윗줄 : 시스템의 가동 시간과 평균 부하의 숫자를 출력

top - 현재시간, 재부팅없이 운영중인 업타임시간, 로그인된 유저수, 1분, 5분, 15분에 대한 각각의 평균 부하율(load average)

load average : 작업의 대기시간을 말합니다. 값이 1이 나왔다면 1분동안 평균 1개 정도의 프로세서가 대기상태에 있다는 것입니다. 서버마다 차이가 있긴 하지만 5 정도면 서버가 부하를 받는 다고 생각합니다. 과부하는 10 ~ 15이상이면 과부하라고 봅니다



두번째줄 : 현재 실행중인 프로세스들의 상황

tasks - 실행중인 전체 프로세스수(total), 실행중인 프로세스(run), 유휴상태의 프로세스(sleep), 정지된 프로세스(stop), 좀비 프로세스



세번째줄 : CPU의 사용에 대한 상황

cpu(s) - 사용자가 사용중인 cpu 사용률(us), 시스템이 사용중인 cpu 사용률(sy), nice정책에 의해 사용중인 cpu 사용률(ni), cpu 미사용률(id), 입출력 대기상태의 사용률(wa)



네번째줄 : 메모리의 사용에 대한 상황

mem - 전체 물리적인 메모리(total), 사용중인 메모리(used), 사용되지 않는 여유 메모리(free), 버퍼된 메모리의 양(buffers)



다섯번째줄 : 스왑메모리의 사용에 대한 상황

swap-  전체 스왑 메모리(total), 사용중인 스왑 메모리(used), 남아있는 스왑메모리(free), 캐싱메모리(cached)



표시 정보

PID(ProcessID) : 프로세스 ID
USER : 프로세스를 실행시킨 사용자
PR(Priority) : 프로세스 우선순위
NI(Nice value) : 프로세스 NICE 값(음수값이 우선순이가 높음)
VIRT(Virtual Image (kb)) : 프로세스가 사용하고 있는 가상 메모리 사용량
RES(Resident Size (kb)) : 프로세스가 사용하고 있는 페이지의 크기
SHR(Shared Mem Size (kb))  : 프로세스가 사용하고 있는 공유 메모리 크기
S(Process Status) : 프로세스 상태(R(Running), S(Sleeping), T(stopped Trace) W(Swapped out), Z(Zombie))
%CPU(CPU Usage) : 프로세스의 CPU 사용률
%MEM(Memory Usage) : 프로세스의 메모리 상용률
TIME+(CPU Time : 프로세스가 CPU 를 사용한 시간
COMMAND : 프로세세를 실행한 명령





cpu 갯수별 사용량 보기


shift + m : 메모리 사용량이 큰 순서로 정령
shift + p : CPU 사용량이 큰 순서로 정렬
shift + t : 실행시간이 큰 순서로 정렬
k : 프로세스  kill  - k 입력 후 종료할 PID 입력 signal을 입력하라고 하면 kill signal인 9를 입력
c : 명령인자 표시/비표시
space bar : refresh
u : 입력한 유저의 프로세스만 표시 - which u





원하는 프로세스만 보기


# top | grep “name” 
반응형

'Linux' 카테고리의 다른 글

Linux chkconfig  (0) 2018.08.08
Linux SAR  (0) 2018.08.08
Linux ps  (0) 2018.08.08
Linux mpstat  (0) 2018.08.08
Linux iostat  (0) 2018.08.08
728x90
반응형
PS


◆ 시스템에서 현재 수행되고 있는 프로세스를 확인하는 기초 명령어 



◆ Ex)
[root@agentlinux ~]# ps -ef | grep sshd
root     11916 31937  0 11:06 ?        00:00:00 sshd: linuxer [priv]
linuxer 11918 11916  1 11:06 ?        00:04:40 sshd: linuxer@pts/1
root     17150 31937  0 17:15 ?        00:00:00 sshd: root@pts/0
root     17180 17152  0 17:16 pts/0    00:00:00 grep sshd
root     31937     1  0 Sep17 ?        00:00:00 /usr/sbin/sshd
- 이 경우 PID 31937의 sshd 데몬이 떠있고 sshd를 통해 세명이 접속

- 프로세스가 없이 OS 자체가 존재할 수 없을 정도로 중요한 부분이므로 ps 명령어 역시 많은 옵션이 존재



◆ 옵션의 큰 분류

1. '-'를 맨 앞에 붙여 그룹지어 사용하는  유닉스 옵션

2. '-'없이 그룹지어 사용하는 BSD 옵션

3. '--'를 맨 앞에 붙여 사용하는 기다란 GNU 옵션

[자유롭게 섞어 사용할 수 있지만 서로 상반되는 속성을 가진 옵션끼리 사용될 때 충돌이 일어날 수 있다.]



◆ 옵션

-e : 모든 프로세스(-A와 같다), 환경을 보여준다.

-f : full format으로 보여준다(자세히 보여준다)

-F : 더 자세히 보여준다

-y : flag를 안보여준다. -l 옵션하고만 사용할 수 있다고 한다;

-l : 자세한 형태의 정보를 출력한다.

-u : 각 프로세서의 사용자 이름과 시작 시간을 보여준다.

-j : 작업 중심 형태로 출력한다.

-s : 시그널 중심 형태로 출력한다.

-v : 가상 메모리 중심 형태로 출력한다.

-m : 메모리 정보를 출력한다.

-a : 다른 사용자들의 프로세서도 보여준다.

-x : 로그인 상태에 있는 동안 아직 완료되지 않은 프로세서들을 보여준다. 유닉스 시 스템은 사용자가 로그아웃하고 난 후에도 임의의 프로세서가 계속 동작하게 할 수 있다. 그러면 그 프로세서는 자신을 실행시킨 셸이 없이도 계속 자신의 일을 수행한다. 이러한 프로세서는 일반적인 ps 명령으로 확인할 수 없다. 이때 -x 옵션을 사용하면 자신의 터미널이 없는 프로세서들을 확인할 수 있다.

-S : 차일드(child) CPU 시간과 메모리 페이지 결함(fault) 정보를 추가 한다.

-c : 커널 task_structure로 부터 명령 이름을 보여준다.

-w : 긴(wide) 형태로 출력한다. 한 행 안에 출력이 잘리지 않는다.

-h : 헤더를 출력하지 않는다.

-r : 현재 실행중인 프로세서를 보여준다.

-n : USER 와 WCHAN 을 위해 수치 출력을 지원한다.





응용


표준 방법을 사용해서 시스템의 모든 프로세스를 보려면

# ps -e
# ps -ef
# ps -eF
# ps -ely


BSD 방법을 사용해서 시스템의 모든 프로세스를 보려면

# ps ax
# ps axu


프로세스를 트리형식으로 출력하려면

# ps -ejH
# ps axjf


스레드 관련한 정보를 얻으려면

# ps -eLf
# ps axms


보안 정보를 얻으려면

# ps -eo euser,ruser,suser,fuser,f,comm,label
# ps axZ
# ps -eM


사용자 형식으로 모든 root(real & effective ID)로 실행중인 프로세스를 보려면:
# ps -U root -u root u
-U : real UID
-u : effective UID
u : display user-oriented format


직접 정의한 형식으로 프로세스를 출력하려면:
# ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
# ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
# ps -eopid,tt,user,fname,tmout,f,wchan


syslogd의 PID만 출력하려면:
# ps -C syslogd -o pid=


PID가 42인 프로그램 이름만 출력하려면:
# ps -p 42 -o comm=


ID가 USERID인 사람으로 돌아가는 프로세스 보기

# ps -f -U USERID -u USERID





사용방법 및 정보


기본적으로 ps는 현재 명령이 내려지는 쉘에서 만들어진 프로세서들의 목록만을 보여준다. ps는 자신이 실행되는 당시, 현재의 쉘에 의해서 수행된 프로세서들을 검사하고 보고한다는 점을 생각하자. 그러면 ps의 출력결과 리스트에 ps 자신이 있는 이유를 쉽게 이해할 수 있을 것이다. 각 필드의 의미는 다음과 같다.
COMMAND : 명령어의 이름
PID : 프로세서 ID, 각 프로세서를 구분하기 위한 고유의 ID
RSS : 프로세서에 의해 사용되는 실제 메모리의 용량(K byte 단위)
USER : 프로세서를 실행시킨 소유자의 계정을 보여준다.
SZ : 프로세서의 자료와 스텍 크기의 (K byte 단위)
TIME : 현재까지 사용된 CPU의 시간(분,초)
TT : 프로세서의 제어 터미널(t3=/dev/tty3) %
CPU : 마지막 분동안 프로세서가 사용한 CPU시간의 백분율
START : 프로세서가 시작된 시간
STAT : 프로세서의 상태
이 중 STAT 필드는 몇 가지의 부호를 사용해서 프로세서의 상태를 표시하고 있다. 그것들을 정리해 보면 다음과 같다.
P : 수행 가능/수행 중
T : 일시 정지
D : 디스크 입출력 대기 같은 인터럽트할 수 없는 대기상태
S : 20초 미만의 짧게 잠듦(sleep)
I : 20초 이상의 길게 잠듦
Z : 좀비(zombi) 프로세서
좀비(zomb) 상태라는 것은 프로세서가 사라질 때 시그널 처리의 문제로 완전히 소멸되지 못한 상태를 말한다.

대개는 _aux 옵션을 많이 사용한다. 이 중 필요한 프로세스에 대한 결과만 선택적으로 보고자 한다면 grep 명령을 같이 사용한다.


반응형

'Linux' 카테고리의 다른 글

Linux SAR  (0) 2018.08.08
Linux top  (0) 2018.08.08
Linux mpstat  (0) 2018.08.08
Linux iostat  (0) 2018.08.08
Linux 환경변수  (0) 2018.08.08
728x90
반응형
mpstat 


◆ 리눅스에서 CPU의 사용 상태를 간단하게 확인



◆ 전체 사용률만 표시
# mpstat



코어별 사용률 표시
# mpstat -P ALL



출력 항목

CPU: cpu 코어 번호(0번부터 시작하며, all은 전체 사용률 항목을 의미)
%usr: 사용자(어플리케이션)에 의한 CPU 점유율
%sys: 시스템(커널)에 의한 CPU 점유율
%idle: 유휴 비율



주기적으로 상태를 출력

# 3초 간격으로 상태 출력
mpstat -P ALL 3

# 3초 간격으로 상태를 출력, 5번 출력한 후 종료

mpstat -P ALL 3 5


반응형

'Linux' 카테고리의 다른 글

Linux top  (0) 2018.08.08
Linux ps  (0) 2018.08.08
Linux iostat  (0) 2018.08.08
Linux 환경변수  (0) 2018.08.08
Linux vmstat  (0) 2018.08.08

+ Recent posts