728x90
반응형
du


- 현재 Disk의 사용 용량을 확인할 수 있는 명령어


옵션

-a : 모든 파일들의 기본정보를 보여준다
-b : 표시단위를 기본 KB대신 Byte로 한다
-k : 표시단위르 KB단위로 한다
-h : 사용량을 1K, 234M , 2G 등의 형태로 보여준다
-c : 모든 파일의 디스크 사용정보를 보여주고 나서 합계를 보여준다
-s : 총 사용량만 표시한다
-x : 체크하는 경로안에 다른 시스템이 있으면 생략한다
-D : 심볼릭 링크 파일이 있을경우 원본의 값을 보여준다
-L : -D 옵션과 같다





사용 예제


1) 현재 디렉토리(하위디렉토리 포함)의 사용용량 확인
# du -sh .

2) 디렉토리내의 각각 디렉토리로 확인
# du -h .

3) 큰 용량 순대로 정렬
# du -sh | sort -rn

4) 유저별로 사용량 점검

# du -h --max -depth=1 /home 


반응형

'Linux' 카테고리의 다른 글

Linux YUM  (0) 2018.08.08
Linux ntpd 설정  (0) 2018.08.08
Linux sort  (0) 2018.08.08
Linux mount and umount(마운트&언마운트)  (2) 2018.08.08
Linux SCP  (0) 2018.08.08
728x90
반응형
sort


- 사용자가 지정한 파일의 내용을 정렬하거나, 정렬된 파일의 내용을 병합할 대 사용


옵션

-n : 라인의 각 필드를 비교하는 대상을 숫자로 한정
-f  : 영어를 정렬할 때, 대소문자 구별안함
-r : 출력 순서를 역순으로
-b : 앞에 붙는 공백 무시
-t : 필드 구분자 지정
-m : 정렬된 파일을 병합
-u : 정렬후, 중복행 제거
-o : 저장할 파일명을 명시, 명시하지 않으면 화면에 출력





사용 예제


1) 역순으로 정렬
# cat /etc/passwd | sort -r

2) 파일이 정렬되어 있는지 검사
# cat /etc/passwd | sort -c

3) 파일의 대소문자를 구분하지않고 정렬
# cat /etc/passwd | soft -f

4) 정렬하고 중복을 제거
# cat /etc/passwd | sort | uniq -c
  • 단일 키워드로 grep을 여러번 구하는 검색하는 것보다 하나의 필드를 일룔로 구한 후
    sort | uniq -c를 사용하면 한번에 모든 데이터의 합계를 집계할 수 있어 효율적

5) 정렬 후 파일로 저장

# sort /etc/passwd -o output.txt


반응형

'Linux' 카테고리의 다른 글

Linux ntpd 설정  (0) 2018.08.08
Linux du  (0) 2018.08.08
Linux mount and umount(마운트&언마운트)  (2) 2018.08.08
Linux SCP  (0) 2018.08.08
Linux yum local repo 추가  (0) 2018.08.08
728x90
반응형
Mount&Umount (마운트&언마운트)


- 여러가지 하드웨어장치들을 사용하러면 시스템에 인식을 시켜야하는데 이를 가능하게 해주는 것


사용법

# mount /dev/sda3 /mnt

# umount /mnt


옵션 (mount)

-a, --all : fstab 파일에 언급된 모든 파일시스템을 마운트
-v, --verbose : 자세한 출력 모드
-f, --fake : 실제 시스템 호출은 하지 않고 마운트할 수 있는지 점검 (보통 -v 플래그를 써서 mount 명령의 결과를 알고자 할 때 유용 )
-n, --no-mtab : /etc/mtab 파일에 쓰기 작업을 하지 않고 마운트 (/etc가 읽기전용 파일시스템인 경우에 필요)
-r, --read-only : 읽기만 가능하게 마운트. ( 같은 옵션으로 -o ro )
-w, --rw : 읽기/쓰기 모드로 마운트. ( 같은 옵션으로 -o rw ) 기본 디폴트값
-t <vfstype> : 마운트할 파일시스템 유형을 명시적으로 지정
-o <options> : 플래그 뒤에 콤마로 분리한 옵션을 적어준다
-M, --move : 마운트되어 있는 파일시스템의 마운트 지점을 다른 위치로 이동
-B, --bind : 기존에 마운트되어 있는 파일시스템을 서브트리의 다른 위치에 한번 더 마운트
(mount 명령어는 디스크 드라이브와 같은 블록 디바이스만 마운트 가능하다.
하지만 --bind 옵션을 사용하면 특정 디렉토리를 다른 디렉토리에 마운트하는 동작을 수행한다.
예를 들어 FTP 루트 디렉토리 외부에 연결된 심볼릭 링크의 사용이 불가능한 vsFTP등에서 심볼릭 링크 대용으로 활용 가능)


마운트 플래그옵션 (파일시스템 속성 설정 옵션)

defaults : rw, suid, dev, exec, auto, nouser, async 속성을 모두 가짐
auto : 부팅시 자동 마운트
noauto : 부팅시 자동마운트 안함
dev : 파일시스템 상의 문자, 블럭 특수 장치를 해석
nodev : 파일시스템 상의 문자, 블럭 특수 장치를 해석 하지 않음
exec : 바이너리 실행파일이 실행되는 것을 허용
noexec : 바이너리 실행파일이 실행되는 것을 허용 안함
(/tmp 디렉토리와 같이 신뢰할 수 없는 사용자도 접근할 수 있는 경우에 보안 향상)
suid : setuid, setgid 의 사용을 허용
nosuid : setuid, setgid의 사용을 거부
ro : 읽기 전용 (read-only)
rw : 읽기/쓰기 (read/write) 가능
async : 파일시스템에 대한 I/O가 비동기적으로 이뤄지게 함
sync : 파일시스템에 대한 I/O가 동기적으로 이뤄지게 함
user : 일반 계정 사용자들도 마운트 할 수 있게 허용
nouser : 일반 계정 사용자가 마운트할 수 없음 (즉, root만 mount 가능)
noatime : 파일 접근시간을 업데이트하지 않는다
(메일 스풀이나 로그와 같이 I/O가 많은 파일시스템에 유용)
remount : 이미 마운트된 파일시스템을 다시 마운트


옵션 (Umount)

-n : /etc/mtab 파일을 갱신하지 않고 마운트를 해제
-v : 자세한 정보 출력
-a : /etc/mtab 파일에 명시된 모든 파일시스템의 마운트를 해제
-t : 파일시스템의 종류
-at : /etc/mtab파일에 명시도니 모든 파일시스템 중 유저가 입력한 파일시스템만 마운트 해제





사용 예제


1) Umount가 되지 않는 경우

# fuser -kfuc [디렉토리]
# fuser -kfuc /mnt

- fuser는 특정 파일이나 파일시스템, 포트 등에서 사용중인 프로세스를 확인할 때 사용하며
지정된 파일과 관련된 프로세스들을 모두 kill시킬 수 있다.

# fuser -ck [Mount된 디렉토리]
# fuser -ck /mnt

- 위 명령으로 프로세스를 kill 하고 umount를 재시도하면 정상적으로 해제된다.

  • 해당 디렉토리를 사용하는 사용자가 누구인지 확인하고 싶을 때
    # fuser -cu /mnt


2) 읽기전용 파티션 읽기/쓰기 가능하게 mount하기

# mount -o remount,rw /
# mount / -o rw,remount

- Disk에 Error 및 fstab 파일을 잘못 수정하거나 리부팅 중 발생되는 mount error 발생시
싱글모드로 부팅하게 되면 / 파티션의 수정이 금지되는데 -o 옵션을 주어
다시 mount를 실행하여 읽기/쓰기 권한을 준다.


3) 현재 시스템 마운트 상황 확인

# cat /proc/mounts

- mount 명령어로 확인하는 것보다 다음과 같이 확인하는 것이 더 정확


4) Tip

- /usr을 별도의 파일시스템에 두면 안된다.
/usr이 / 와 별도의 파일시스템에 있으면 /usr에는 부팅에 필요한 중요 구성요소가 들어 있기때문에
부트 프로세스가 훨씬 더 복잡해지고 어떤 경우(iSCSI 드라이브에 설치하는 경우와 같은)에는
부트 프로세스가 전혀 동작하지 않을 수 있다.






cdrom mount 하는 방법


1) 순서

  1. cdrom에 disk 삽입후
  2. # mkdir cdrom <- cdrom 마운트할 디렉토리생성
  3. # mount /dev/cdrom /cdrom <- cdrom 마운트 (-t iso9660 옵션생략해도됨)
  4. # cd cdrom
  5. # /cdrom/ls <-cdrom에있는 파일들이 있는지 확인


2) 언마운트방법

- 언마운트시 현위치가 #/cdrom/이면 언마운트 안된다.  현위치가 #/cdrom/이시면 #/cdrom/cd ..으로 빠져나온 후

# umount /dev/cdrom 하면 마운트 해제

- 위방법으로도 마운트가 안될시 리눅스에서 cdrom device가 인식이 되어있는지 확인

# cdrom 마운트 후에 cdrom 에 있는 실행 파일 실행시 마운트된 위치에서 실행하면 실행이 안된다.

home 이나 기타 cdrom 폴더가 아닌 곳으로 빠져나와 /마운트위치/실행할파일이름 과 같은 형태로

명령을 실행시켜야 동작한다. 


반응형

'Linux' 카테고리의 다른 글

Linux du  (0) 2018.08.08
Linux sort  (0) 2018.08.08
Linux SCP  (0) 2018.08.08
Linux yum local repo 추가  (0) 2018.08.08
Linux GRUB 명령어  (0) 2018.08.08
728x90
반응형
SCP


- ssh에서 제공되는 scp 명령어를 통해 로컬서버↔원격서버 로의 파일을 전송 (서버와 서버간의 파일전송)


옵션

-r : 지정한 디렉토리의 하위 디렉토리 및 파일까지 모두 복사
-v : 전송시 자세한 진행사항을 보여줌
-F : 지정한 설정파일을 사용
-P : 지정한 포트로 접속 시도
-p : 원본 파일 시간의 수정시간, 사용시간, 권한을 유지





SCP 사용법


사용법

# scp <옵션> <원본 경로 및 파일> <복사 받을 곳 경로 및 파일>

명령어
옵션
Remote 서버 경로
local 서버 경로


1) Remote 서버에 파일 올리기

# scp -P 22 /home/myhome/abc.tar oracle@123.456.78.9:/home/oracle/

abc.tar 파일을 123.456.78.9 서버의 22번 포트로 SSH 접속하여 oracle 사용자로 로그인 한 후 /home/oracle/ 아래에 복사한다.


2. Remote 서버에서 파일 받기

scp -P 22 root@123.456.78.9:/usr/local/abc.xml /home/oracle/

remote 서버의 abc.xml 파일을 local의 /home/oracle로 다운로드 받는다.

SSH포트는 변경하는 경우가 많으므로 -P 옵션 사용했고, 서버 주소와 디렉토리의 구분은 콜론(:)을 사용한다. 원격지의 home 주소는 "./"를 사용해도 된다.

Ex) root@123.456.78.9:./
반응형

'Linux' 카테고리의 다른 글

Linux sort  (0) 2018.08.08
Linux mount and umount(마운트&언마운트)  (2) 2018.08.08
Linux yum local repo 추가  (0) 2018.08.08
Linux GRUB 명령어  (0) 2018.08.08
Linux 메모리 사용 퍼센트로 확인  (2) 2018.08.08
728x90
반응형
Local Repo 설정


- DVD로 repository 설정

1. 네트워크가 아닌 DVD에서 직접 패키지를 다운로드하는 방식으로 설치 속도가 네트워크에 비해 월등히 빠름

2. rpm으로 설치중 패키지가 없는 상태에서 네트워크 연결도 안된 상태일때는버전에 맞는 DVD를 넣고 DVD 내부의 패키지를 추출해 설치

3. yum은 /etc/yum.repos.d/ 내부의 파일들을 참조하여 경로를 찾아가 설치하려는 패키지를 찾고 그 패키지와 의존성이 있는 패키지들을 찾아 함께 설치

4. /etc/yum.repos.d/ 디렉토리로 이동한 후 기존 repo 파일은 별도의 디렉토리에 보관한 후 dvd.repo 파일 생성 후 아래와 같이 작성

5. [network]식별자의 경우에는  DVD에 없는 패키지는 [network]식별자에 의해 지정된 경로에서 패키지를 다운로드하게 하기위해 작성해 둔 것이다. 



설정 방법

1. DVD를 삽입후 

# mount /dev/sr0 /mnt

          OR

#mkdir cdrom -> 마운트할 디렉토리 생성
#mount /dev/cdrom /cdrom -> /dev/cdrom의 DVD를 /cdrom 디렉토리에 mount

- /mnt 나 /media에 자동으로 인식될경우가 있으므로 확인



2. /home 디렉토리 안에 local-repo 디렉토리 생성 후 Packages를 복사할 Packages 디렉토리 생성


3. DVD내의 패키지들을 로컬 디렉토리로 이동 후 확인
#cp /media/RHEL-6.6\ Server.x86_64/Packages/* /home/local-repo/Packages/



4. rpm 설치 명령어를 통한 deltarpm -> python-deltarpm -> createrepo 패키지를 설치 (repodata를 생성하기 위한 패키지 설치 작업)
#rpm -ivh deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm
#rpm -ivh python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm
#rpm -ivh createrepo-0.9.9-22.el6.noarch.rpm 




5. repodata 생성 
# createrepo ../ -> 패키지가 들어있는 디렉토리에서 repo를 생성해야한다.(../은 최상위 디렉토리로부터 현재 디렉토리를 지정)



6. repodata가 생성되었는지 확인 후 



7. repomd.xml 파일이 생성되었는지 확인



8. 여기까지 확인이 되었으면 /etc/yum.repo.d/ 로 이동하여 repositories를 생성 

# vi local.repo



[Local-RHEL6.6]
name=rhel 6.6 local repository
baseurl=file:///home/local-repo/
enabled=1
gpgcheck=0



9. #yum clean all 명령어를 통한 yum data 삭제



10. #yum repolist 명령어를 통한 repolist 불러오기



위와 같이 패키지 정보를 불러온다면 정상적으로 local repo 생성완료



반응형

'Linux' 카테고리의 다른 글

Linux mount and umount(마운트&언마운트)  (2) 2018.08.08
Linux SCP  (0) 2018.08.08
Linux GRUB 명령어  (0) 2018.08.08
Linux 메모리 사용 퍼센트로 확인  (2) 2018.08.08
Linux journalctl (RHEL 7)  (0) 2018.08.08
728x90
반응형
root (x,y)

root 명령은 지정한 파티션을 시작위치로 인식하게 하는 명령어로 지정한 장치를 root device로 인식
grub> root (hd0,0)


kernel

부팅에 사용할 커널 이미지 파일의 경로를 지정하는 명령어이다.
시스템 부팅에 사용할 커널 이미지를 지정하는 명령으로 지정한 커널 뒤쪽으로
boot 파라미터, root 파티션의 device 명을 지정할 수 있다.

grub> root (hd0,0)
grub> kernel /vmlinuz-2.6.269.x.x.x ro root=/dev/sda3

대부분의 명령은 root 명령을 통해서 Device를 지정한다.


blocklist 파일경로

파일에 지정된 blocklist 를 확인하는 명령이다. 파일경로를 지정해줄때 바로 위에 있는
root 명령으로 그 Deivce를 지정해줘야 한다.

grub> root (hd0,0)
grub> blocklist /dev/sda5
(hd0,0)234234+1

이런 형식으로 디스크의 블록 번호가 출력된다.


boot

지정된 Device의 파티션에서 Kernel 명령어로 지정된 커널로 부팅을 하는 명령이다.
그렇다면 먼저 root 명령으로 특정 device를 지정해줘야 한다.
그리고 kernel 명령으로 사용할 커널을 지정해 주고 boot 명령을 사용

grub> root (hd0,0)
grub> kernel /vmlinuz-2.6.269.x.x.x ro root=/dev/sda3
grub> boot

boot 명령이 실행된 후에는 root 명령과 kernel 명령으로 설정한 정보로 부팅을 시작한다.


cat 

Shell에서 사용하는 cat과 동일한 명령어이다. 하지만 grub에서 사용하기 위해서는
root 명령으로 해당 파일이 존재하는 device 파티션을 지정해줘야 한다.

grub> root (hd0,0)
grub > cat /grub/grub.conf


chainloader

makeactive에서 부팅 가능하도록 지정한 파티션의 첫번째 섹터부터 읽어들여 부팅을 시작하도록 하는 명령이다.
예를 들어 chainloader +1 은 makeactive로 지정된 부팅 가능한 파티션의 첫번째 섹터부터 읽어서 부팅하라는 의미이다.
--force 옵션을 사용하면 부트로더의 존재유무와는 관계없이 강제로 로드 시킨다.


clear

Shell에서 사용하는 clear 명령과 동일


configfile /파일경로

지정한 파일을 grub의 설정파일로 로드하는 명령이다. 마찬가지로 root 명령을 우선적으로 써준다.

grub> root (hd0,0)
grub> configfile /grub/grub.conf

위처럼 configfile 명령을 사용하여 지정한 설정파일을 로드할 수 있다.
기존에 사용하던 grub.conf 파일을 configfile 명령어로 로드한다면
기존에 사용하던 grub을 그대로 부팅하게 된다.


device

grub 명령모드에서만 사용가능한 명령어 이다. 지정한 드라이브를 BIOS 드라이브에 대한
실제 드라이브 장치로 지정하는 명령어이다.


displayapm

APM BIOS정보를 출력한다.




displaymem

물리적 RAM이 설치되어 있는 시스템의 주소에 대한 MAP을 표시해주는 명령어이다.
ELSA 메모리 인터페이스 존재유무, 메모리 정보등에 대해서 자세하게 출력한다.


find

Shell에서 쓰던 find 명령과 동일한 명령이다.


geometry

지정한 device 드라이브에 대한 정보를 출력해주는 명령이다.
디스크 장치명을 지정하면 그 디스크에 대한 정보를 출력한다.
섹터정보, 파티션별 파일시스템 타입 등

grub> geometry (장치명)

위의 형식으로 사용한다.


halt

시스템을 정지시키는 명령이다.

grub> halt

위처럼 grub 모드에서 halt 명령을 사용하게 되면 시스템은 종료되게 된다.
--no-xxx 옵션을 추가할수 있다.
xxx를 작동하지 않도록 하려면 halt --no-xxx 라고 입력해주면 된다.


hide

hidden 비트를 이용해서 지정한 파티션을 숨기는 명령이다.
hide 로 특정 파티션에 hidden 속성을 부여했다면 unhide 명령으로 hide를 풀어낼수 있다.
hide 명령으로 부트 디바이스인 (hd0,0) 에다가 hidden 속성을 줘서 숨기면
운영체제에서 디바이스를 인식하지 못하고 부팅을 하지 못하게 된다.
(Linux 로 부팅되지 않고, grub 화면으로 넘어간다)


initrd

디바이스와 커널을 지정한 채로 부팅할 때 사용할 initrd 이미지를 지정해주는 명령이다.
SCSI 를 부팅디스크로 사용할 경우에 initrd 항목이 설정되어있지 않으면 kernel panic 에
빠질수가 있다고 한다.

grub> root (hd0,0)
grub> kernel /vmliuz-x.x.x-x.x
grub> initrd /initrd-x.x.x.x-x.x.img

이 명령도 마찬가지로 root 명령을 선행해서 부트 디바이스를 지정한다.
kernel 명령을 통해서 부팅에 사용할 커널을 지정한다음
initrd 명령으로 initrd 이미지를 지정한다.
위 설명대로 디바이스와 커널을 지정한 채로 부팅될 때 사용하는 명령이다.


makeactive

루트 디스크에 존재하는 grub 의 루트디바이스를 부팅가능한 파티션으로 지정하는 명령이다.
이 명령어는 첫 번째 하드디스크의 주파티션에 한정되서 사용되는 명령


map

FROM_DRIVE 에서 지정한 드라이브를 TO_DRIVE에 지정한 드라이브에 매핑 시키는 명령어이다.
첫 번째 드라이브가 아닌 곳에 저장될수 있는 DOS와 같은 운영체제를 체인로드 하고자 할때 필요하다.

grub> md5crypt

MD5 포맷으로된 암호문자를 생성하는 명령으로 지정한 문자를 md5 로 포맷하여 출력해준다.
(Grub 암호 설정방법)


modulenounzip

module 과 같은 명령이다. 
(no un zip 과 같지만 자동압축해제가 되지 않는다.)


paper

toggle 형식으로 pager 모드를 on/off 하는 명령어이다.

grub> pager

현재모드에서 다른모드로 변하게 된다.

grub> pager on / off

모드에 상관없이 상태가 변하게 된다.


partnew

파티션의 타입,길이,시작주소 를 지정하여 주 파티션을 생성하는 명령이다.

grub> parttype

지정한 파티션의 타입을 지정해서 변경하는 명령이다.

grub> geometry (hd0,2)

grub> parttype (hd0,2) 0x&&

(어떤 파티션을 바꾸기전 먼저 어떤 파티션이 였는지 확인)
geometry 명령을 이용해서 partition 타입을 확인한 후
parttype 명령으로 파티션의 타입을 변경하면 된다.


quit & reboot

grub 종료와 재부


rootnoverify

grub 이 인식할 수 없는 파티션을 root device 로 지정할 때 사용하는 명령어이다.
root 명령과 비슷한 동작을 하지만 rootnoverify 명령은 지정한 파티션의
마운트 시도를 하지 않는 다는 점에서 차이가 있다.


serial

시스템에 장착되어있는 시리얼장치를 초기화하는 명령으로
이 명령어 사용시에 --unit 에는 시리얼장치로 사용되고있는 장치를 2진수로 지정한다.

--port 옵션으로 포트 번호를 지정할수가 있다.
--speed : 속도 지정을 할수 있다.


setkey

키보드 맵을 변경할수 있는 명령으로 FROM_KEY 를 TO_KEY로 매핑시키게 된다.
여기서 사용되는 key들은 알파벳, 숫자, 밑의 문자들이다.
만일 어떤 인자도 주어지지 않는다면 키매핑을 리셋하게 된다.

at, ampersand, asterisk, backquote, bar, bracketleft, backslash, backspace,
capslock, caret, doublequote, dollar, escape, exclam, numbersign, percent,
parenleft, parenright, minus, underscore, equal, plus,tab,tilde, shift, comma,
less, period, greater, slash, question, alt space,
FX (X is a digit), and delete.


setup

부트 파티션으로 생성하기 위해서 디스크를 지정하여 grub 을 설치해주는 명령


terminal

터미널 선택 명령이다. console과 serial이 모두 지정되었을 경우에는 첫번째 키가 입력된 터미널이
선택되는데, 아무런 인자가 지정되지 않았다면 현제 셋팅값을 출력하게 된다.

--no-echo : 입력된 문자에 대해 echo가 되지 않도록합니다.
--timeout : 지정되면 적어도 지정한 초만큼 기다립니다.
--lines : 최대행 수를 지정합니다
--silent : 가능한 메시지를 보여주지 않도록합니다.


terminfo

터미널의 성능을 결정하는 명령이다. 즉 터미널의 이름과 SEQ, cursor address, 입력표준모드와
출력표준모드를 지정할수 있다. 아무런 옵션도 사용하지 않고 terminfo 만 실행된다면 현재 설정내용이 출력된다.


testvbe

VESA BIOS EXTENSION, 즉 VBE를 지정한 MODE 로 테스트하는 명령이다.
테스트 실행을 시키면 계속적으로 테스트를 하게되며 테스트를 끝내려면
아무키나 누르면 다시 이전상태로 돌아온다.
이 명령어와 관련된 명령어는 vbeprobe 로서 VBE정보를 확인하는 명령이다.


unhide

파티션 타입 코드에 hidden 비트 속성을 줬던 hide 명령을 해제하는 명령


uppermem

GRUB 의 KBYTES에서 지정한 Kbytes 만큼 상위메모리로 설치되어있다고 인식하도록하는 명령어


vbeprobe

vbe 정보를 확인하는 명령이다.
옵션으로 mode가 지정된다면 이 명령어는 지정한 mode에 대해서만 보여준다.

옵션이 없다면 가능한 모든 vbe모드에 대한 정보를 출력
반응형

'Linux' 카테고리의 다른 글

Linux SCP  (0) 2018.08.08
Linux yum local repo 추가  (0) 2018.08.08
Linux 메모리 사용 퍼센트로 확인  (2) 2018.08.08
Linux journalctl (RHEL 7)  (0) 2018.08.08
Linux root Password 변경 (RHEL7-가상화)  (0) 2018.08.08
728x90
반응형
메모리 사용률 확인


◆ sar

# sar -r 1




◆ free

# free




◆ top

# top -n1 | grep Mem:




◆ meminfo

# cat /proc/meminfo | grep Mem









메모리 사용률 (명목 vs 실질)


◆리눅스는 유휴 공간을 캐시 영역으로 잡아두는 습성이 있다. 
(남는 메모리를 최대한 캐시로 활용하면 성능향상에 도움 /  윈도우도 마찬가지이지만 윈도우는 임시 캐시 영역을 유휴 공간을 표시해주는 것으로 추정)

◆실질적인 의미의 메모리사용률을 구하려면 캐시 영역도 유휴 메모리로 봐야 한다.

◆명목메모리 사용률 = ( total - free ) / total

◆실질메모리 사용률 = ( total - free [free 명령어 실행결과 2행에 있는 free 값(버퍼+캐시 포함)] ) / total = ( total - free - buffers - cached) / total




◆ 스크립트

MEM_TOTAL=`free | grep ^Mem | awk '{print $2}'`

MEM_FREE1=`free | grep ^Mem | awk '{print $4}'`

MEM_FREE2=`free | grep ^-/+ | awk '{print $4}'`

MEM_NOMINAL=`echo "100-(100*$MEM_FREE1/$MEM_TOTAL)" | bc -l`

MEM_ACTUAL=`echo "100-(100*$MEM_FREE2/$MEM_TOTAL)" | bc -l`

echo NOMINAL=${MEM_NOMINAL:0:5}% ACTUAL=${MEM_ACTUAL:0:5}%








메모리 사용량순 프로세스 보기


◆ RSS(Resident set size) : 물리 메모리를 실제 점유하고 있는 크기 
(가상메모리 크기와는 큰 차이가 있을 수 있다)

◆ ps -ef

# ps -ef --sort -rss






◆ ps -eo (메모리 사용량 표시 상위 10개)

# ps -eo user,pid,ppid,rss,size,vsize,pmem,pcpu,time,cmd --sort -rss | head -n 11








Swap 메모리 사용량순 프로세스 확인


◆ ps

# ps -eo user,pid,ppid,rss,size,vsize,pmem,pcpu,time,cmd --sort -size | head -n 11




◆ top





반응형

'Linux' 카테고리의 다른 글

Linux yum local repo 추가  (0) 2018.08.08
Linux GRUB 명령어  (0) 2018.08.08
Linux journalctl (RHEL 7)  (0) 2018.08.08
Linux root Password 변경 (RHEL7-가상화)  (0) 2018.08.08
Linux root Password 변경 (RHEL7)  (0) 2018.08.08
728x90
반응형
journalctl 이란?


- systemd의 서비스 로그를 확인할 수 있다.

- systemd-journald.service에 의해서 systemd의 정보들을 분석한다.


옵션

-a : 표시할 수 없는 문자가 있거나 매우 긴 경우에도 모든 Log 내용을 출력

-b : 마지막 부팅 후의 Log만 출력

-r : 최신항목이 먼저 표시되도록 역순으로 출력

-c : 커서가 지정한 저널의 위치부터 Log 표시를 시작

-f : 가장 최근 Log만 표시하고 새롭게 추가되는 Log는 계속 출력

-k : 커널 메시지만 출력 (dmesg랑 같음)

-q : 일반 사용자로 실행될 때 접근할 수 없는 시스템 저널에 관한 경고메시지를 표시하지 않음

-u : unit으로 systemctl list-units에서 출력되는 첫번째 항목

-p : 메시지의 우선순위로 log level을 의미 (숫자나 문자열을 지정)

emerg=0, alert=1, crit=2, err=3, warning=4, notice=5, info=6, debug=7
-o : Log 출력 형식을 설정
  1. short : 기본값으로 syslog파일의 형식과 동일하다. 한 행에 하나의 Log만 출력
  2. short-iso : short와 비슷하지만 ISO 8601의 시간 형식으로 출력
  3. short-precise : short와 비슷하지만 마이크로 초 단위로 시간 출력
  4. short-monotonic : short와 비슷하지만 단조로운 시간 형식으로 출력
  5. verbose : 전체 Log를 모두 자세하게 출력
  6. export : Log내용을 내보낸다. (백업 및 전송에 적합한 바이너리 스트림으로 직렬화)
  7. json : 한줄에 하나씩 JSON 데이터 구조로 형식화
  8. json-pretty : JSON 데이터 구조로 형식화 하지만 여러줄로 형식을 지정하여 사람이 읽을 수 있게 한다.
  9. json-see : JSON 데이터 구조로 형식화 하지만 Server-Sent Events에 적합한 형식으로 한다.
  10. cat : 매우 간결한 출력을 생성하며 메타 데이터가 없고 Log만 표시하며 시간은 표시하지 않음

-l, --no-full, --full : 출력되는 Log의 필드를 줄일때 사용, 기본값은 전체 필드를 표시하여
사용자가 해당 필드를 붙이거나 자를 수 있도록 한다. -l / -full 옵션은 이전 옵션으로 사용되지 않는다.

_UID= 33 : 33번 UID를 가진 프로세스에 대한 Log를 출력

--disk-usage : 저널 파일의 디스크 사용량을 표시 (압춘된 모든 더널 파일과 사용중인 저널 파일의 합계를 표시)


설정파일

/etc/systemd/journald.conf
[Journal]
#Storage=auto
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitInterval=30s
#RateLimitBurst=1000
#SystemMaxUse=    -> journal log 파일의 최대 Size를 지정
#SystemKeepFree=
#SystemMaxFileSize=
#RuntimeMaxUse=
#RuntimeKeepFree=
#RuntimeMaxFileSize=
#MaxRetentionSec=
#MaxFileSec=1month  -> journal log 파일의 최대보관일수를 지정
#ForwardToSyslog=yes
#ForwardToKMsg=no
#ForwardToConsole=no
#ForwardToWall=yes
#TTYPath=/dev/console
#MaxLevelStore=debug
#MaxLevelSyslog=debug
#MaxLevelKMsg=notice
#MaxLevelConsole=info
#MaxLevelWall=emerg





사용법


마지막 부팅 후 로그 보기

# journalctl -b


오늘 날짜 로그 보기

# journalctl --since=today


특정 기간별 로그 보기

# journalctl --since "2017-05-25 00:00:00" --until "2017-05-30 10:30:00"

2017년 5월 25일 0시부터 2017년 5월 30일 오전 10시 30분까지의 Log 출력


특정 서비스 데몬 로그 보기

# journalctl -u sshd


특정 이벤트 속성 조회

# journalctl -p crit

critical 속성을 가진 이벤트만 출력


특정 서비스데몬 및 속성과 날짜 로그 보기

# journalctl -u libvirtd --since=yesterday -p err

어제부터의 libvirtd 데몬의 Log 중 error만 출력


Error 로그 자세히 보기

# journalctl -p err -o verbose

Error log에 대해 자세하게 출력


특정 이벤트 조회

# journalctl /sbin/crond


밑에서부터 로그 보기

# journalctl -f





journalctl이 느릴때


- BTRFS로 포맷된 파티션에 Arch Linux를 설치해 사용중이라면 journalctl의 속도가 늦려지는 현상을 겪을 수 있다.
이는 로그를 저장하는 파일 데이터베이스에 디스크 단편화가 심하게 되어 일어나는게 원인이다.
따라서 단편화 제거를 하면 개선되는 것을 확인 할 수 있다. 


1) Log의 크기를 확인

# journalctl --disk-usage


2) 로그를 저장하는 파일 데이터베이스에 단편화를 확인

# filefrag /var/log/journal/*/*


3) btrfs 명령을 사용하여 단편화를 제거

# btrfs fi defrag -v -f -clzo /var/log/journal/*/* 


반응형

'Linux' 카테고리의 다른 글

Linux GRUB 명령어  (0) 2018.08.08
Linux 메모리 사용 퍼센트로 확인  (2) 2018.08.08
Linux root Password 변경 (RHEL7-가상화)  (0) 2018.08.08
Linux root Password 변경 (RHEL7)  (0) 2018.08.08
Linux nfs 설정  (0) 2018.08.08
728x90
반응형
RHEL 7 and CentOS 7 Version Virtual Mode root Password Change

1.

2.

3.

4.

5.

6.

7.

8.

9.





반응형

'Linux' 카테고리의 다른 글

Linux 메모리 사용 퍼센트로 확인  (2) 2018.08.08
Linux journalctl (RHEL 7)  (0) 2018.08.08
Linux root Password 변경 (RHEL7)  (0) 2018.08.08
Linux nfs 설정  (0) 2018.08.08
Linux Memory Slab 관리  (0) 2018.08.08
728x90
반응형
1. 



2.



3. 해당 부분을 변경



4. rhgb quiet -> init=/bin/sh 또는 init=/bin/bash    



5. mount -o remount,rw / 입력  


6. root password 변경   


7. touch /.autorelabel 입력 (SELinux 컨텍스트 부팅 후 복구될 수 있도록 입력하는 것)


8. 종료 후 리부팅  



반응형

'Linux' 카테고리의 다른 글

Linux journalctl (RHEL 7)  (0) 2018.08.08
Linux root Password 변경 (RHEL7-가상화)  (0) 2018.08.08
Linux nfs 설정  (0) 2018.08.08
Linux Memory Slab 관리  (0) 2018.08.08
Linux strace  (0) 2018.08.08

+ Recent posts