리눅스 마스터1급

swqp,ps, find, quata

송시혁 2018. 8. 27. 15:24


<스왑 영역 생성>

1. mkswap /swap-file

2. /etc/fstab 등록 

 => /swap-file swap swap defaults 0 0


 

<스왑 파티션 생성 >

1. fdisk /dev/sdb , mkfs -t 82(swap) /dev/sdb2 로 파일시스템 만듬 

    

2. mkswap -c /dev/sdb2 

스왑 파티션 생성 


3. swapon /dev/sdb2 

=> 스왑영역 활성화  


4. /etc/fstab 등록 (재부팅시 적용할 때만 등록, 그거 아니면 필요 없음)

=> /dev/sdb2 swap swap defaults 0 0 


●  Disk quota 

=> 사용자 및 그룹의 디스크 사용량고 생성할 수 있는 파일의 개수(i-node의 수)를 제한할 수 있다.


●  quotacheck  

=> 디스크를 사용하고 있는 파일 시스템 체크하여 quota 기록파일(aquota.user, aquota.group, quota.user, quota.group)


옵션 

-a  사용자와 그룹에 대한 쿼터를 체크한다.

-m 읽기 전용 모드 등의 이유로 마운트를 하지 못할 때 사용 

-f 쿼터 파일 초기 생성시 인식하지 못하는 경우에강제로 인식시킬 때 사용 

-u 사용자 쿼터 파일을 체크할 때 사용하는 옵션이다.(기본 옵션)

-g 그룹 쿼터 파일을 체크할 때 사용하는 옵션이다.

-c 기존의 생성된 쿠터 관련 파일을 읽지 않고 새롭게 초기화할 때 사용한다.  



●  quotacheck -mf 

=> quotaoff를 하지 않아도 강제로 체크 


●  quotacheck -mf  -u -g

=> 사용자 , 그룹 쿼터 파일을 체크할 때 사용하는 옵션 


●  quotacheck -cf

=> 쿼터 파일을 초기화한다. 


●  equota

 => 쿼터 설정하는 명령어 

 

 -t Soft limit를 초과한 후부터 적용되는 시간제한(grace period)을 설정하는 옵션 

 -p 특정 사용자의 쿼터를 다른 사용자에게 동일한 설정으로 적용시 사용할때 옵션 


●  quataon/quataoff

=> 쿼터 설정을 켜고 끄는것 


옵션 

-u 사용자 쿼터 활성화 

-g 그룹 쿼터를 활성화 

-v 메시지를 자세히 출력한다. 


●  requata 

=> 파일 시스템 단위로 쿼터 설정 정보를 출력해주는 명령이다. 

옵션 

-a 쿼터가 설정되어 있는 모든 정보를 출력. 이 옵션을 사용하면 디렉터리명 지정이 필요 없다. 

-u 사용자 쿼터 정보 

-g 그룹 쿼터 정보 



●  quata 

=> 사용자 단위로 쿼터 설정 정보를 출력해주는 명령어 


-u 사용자 쿼터 정보

-g 그룹 쿼터 정보 


#quata 

Disk quatas fro user posein (uid 500) 

        Filesystem blocks quata     limit          grace     files     quota    limit    grace 

/dev/sda1   1204    100000  1200000                  167      0               0



●  setquata 

=> 쿼터를 설정하는 명령으로 vi 편집기를 이용하는 대신에 직접 명령행에서 설정 가능하다. 


형식 


●  setquota [option] block soft_limit block hard_limit i-node soft_limit  i-node hard_limit 파일시스템 

●  setquota -t blcok_grade i-node_grade 


옵션 

-t 유예 기간(Grace Time)을 설정할 때 사용한다. (단위는 초)


●  setquota -u 10000 11000 0 0 /home 

=> 사용자의 사용량 제한 soft 10MB, hard 11MB로 제한하고, I-node에 대한 제한은 설정하지 않는다. 

     

●  setquota -t 10000 28800

=> 블록의 유예기간은 10000초 I-node는 8시간으로 설정 


사용자 쿼터 설정하기 


●  /etc/fstab

=> usrquata 를 추가로 기입 해야 함  

 

●  mount -o remount /home 

=> /home 영역을 다시 마운트  

 

●  quatacheck -mf /home

=> 쿼터 파일 생성 및 쿼터 체크 


●  edquota songsi 

=> 사용자에 대한 쿼터 설정 


●  qutaon /home 

=> 쿼터 시작 


●  repquota /home 

=> 쿼터 설정 확인 


그룹 쿼터 설정 


●  /etc/fstab

=> grpquata를 추가 


●  mount -o remount /home 

=> /home 영역을 다시 마운트 


●  quatacheck -gm /home

=> 쿼터 파일 생성 및 쿼터 체크 .옵션 -gm으로 하다.


●  edquota -g test 

=> 그룹에 대한 쿼터 설정 


나머지는 동일 

●  cd - 

=>  이동하기 바로 직전의 디렉토리로 이동 


●  mkdir 

옵션 

-p  경로로 지정된 서브 디렉터리가 존재하지 않은 경우에 함께 생성한ㄷ. (-- paretns)

-m 디렉터리 생성과 동시에 퍼미션(permisson)을 설정한다.(--mode) 

-v  생성된 디렉터리를 메시지로 출력한다.(--verbose)


●  mkdir -p www/pds/photo 

=> 현재 디렉터리에 있는 www하위의 pds하위의 photo를 생성, 만약에 www,pds에 

     존재하지 않으면 같이 생성한다. 

 


●  rmdir -p www/pds/photo

=> 현재 디렉터리에 있는 www하위의 pds하위의 photo를 삭제, 만약에 pds에 

     빈 디렉터리가 되면 같이 삭제 된다. www도 빈 디렉터리면 삭제가 된다. 

 


●  ls 디렉터리에 정보, 파일들을 조회


옵션 

-F 파일의 형태에 따라 관련 정보를 출력 

     파일이름 뒤에 '*', 디렉터리 이름 뒤에 './', symbolic Link뒤에 '@'를 붙여서 표시 

-d 대상이 디렉터리인 경우에 디렉터리 안의 내용 대신에 해당 디렉터리에 대한 정보를 출력 

-t  출력되는 정보가 알파벳순이 아니고 최근 수정된 파일(또는 디렉토리)부터 시간순으로 출력 

-u 파일 및 디렉터리의 최종 수정된 시간대신 사용된 시간(최종접근 시간)으로 출력 된다. 

-i   i-Node 번호를 파일 또는 디렉터리명 앞에 출력한다. 

-r  파일 및 디렉터리 정보를 알파벳 역순으로 출력한다. (--reverse)

-R 존재하는 하위 디렉터리별로 관련 내용을 재귀적으로 전부 출력한다.(--recursive)

-S 파일 크기가 큰 것부터 출력한다.  

--color 파일의  종류에 따라색을 보여준다. 레드헷 계열은 --color=tty설정 

   이것은 표준 출력에서만 색을 사용하도록 지정 

-h 보통 -i 옵셕놔 같이 사용되면, 보기 쉽게 단위(k,ga)를 표시 (--human -readable)

-Z SElnux  관련된 보안문맥(security context)을 출력한다. 



●  cp 복사 명령어 


옵션 

-s 복사하는 대신에 심볼릭 링크(Symbolic link)를 만든다. 

-p 소유권, 그룹, 허가권 등 모든 정보를 복사한다. 

-d 심볼릭 링크 파일을 복사할 경우 그 원본 파일을 찾아 복사하지만, 이 옵션을 쓰면 

    원본과 심볼릭 모두 복사 

-a 모든 것을 복사, -dpR과 동일. 심볼릭 링크까지 복사가능하고 모든 정보와 하위 디렉터리 모두 복사 

-l  복사대신에 하드링크 파일 만든다. 

-u 복사되는 대상이 최신의 파일이라면 복사되지 않는다. (--update)


●  rm 삭제 명령어 


옵션 

-i 삭제시 질의 모드 .

-- 파일이름이 -가 붙어있는 파일을 삭제 


●  타임스탬프 

=>  리눅스에서 파일에 대한 시간 관련 정보를 타임스탬프라 부른다. 


●  Access Time 

=>  파일의 내용을 읽었을 때 바뀌는 시간. 


●  Modify Time 

=> 파일의 내용을 수정했을 때 바뀌는 시간.  ls -l명령어로 나타내는 시간 


●  Change Time 

=> 파일의 내용을 수정했을 때 기록되는 시간으로 절대 변경 불가능한 시간 


●  file 

=> 파일의 종류를 출력해 주는 명령으로 관련 정보는 /usr/share/magic이라는 파일을 참조한다.


옵션 

-b 정보 출력할 때 파일 이름을 출력하지 않는다. (--brief) 


●  find

=> 파일이나 디렉터리 찾을 때 사용하는 명령어 


옵션 

-name 주어진 이름의 파일나 디렉터리를 찾는다. 

-perm  지정한 퍼미션 값을 갖는 파일을 찾는다.


예) -perm 755  퍼미션값인 755로 설정된 파일(디렉터리)

      -perm -6000 setUid, setGid  동시에 갖는 파일(디렉터리)

  -perm +6000 setUid, setGid  둘 중 하나 이상을 갖는 파일(디렉터리)

 

-type 지정한 파일의 유형을 찾는다.

   d: 디렉터리 

   f:  일반 파일 

   l:  링크 파일 

   b: 블록 디바이스 

   c: 캐릭터 디바이스 

   p: 파이프 파일 

   s: 소켓 파일 


-inum n   node 번호가 n인 파일을 찾는다.    

-iname    대소문자를 구별하지 않고 이름으로 찾을 때 사용한다. 

-empty    파일의 크기가 0이거나 비어있는 디렉터리 찾는다. 

-newer    지정한 파일보다 뒤에 수정된 파일을 찾는다(-mtime)

-cnewer   지정한 파일보다 뒤에 변화된 파일을 찾는다.(-ctime)

-ctime    change time 기준으로 찾는다. 

-mtime   modify time 기준으로 찾는다. 

-atime    n일(24시간) 이전에 접근한 파일을 찾는다.  +n은 n일 이전에 액세스한 파일을 찾는다는 

              의미미고,  -n은 n일 내에 액세스한 파일을 찾는다는 뜻이다. 

  

●  find / -type -f -perm +6000 -ls 

=> 루트 디렉터리로부터 파일이며, 퍼미션이 4000 또는 2000인것을 찾는다. 


●  find / -nouser -o -nogroup 

=> -o는 또는의 의미 소유자나 소유그룹이 없는 것을 검색 


●  find . -name '*.txt' -type -f -exec rm {} \;

=> .txt로 끝나는 파일을 검색하고 삭제를 실행한다. 


●  find / -ctime -2 + -ctime 1 ls 

=> 이틀 전에서 하루 이후에 수정된 파일을 찾고 ls로 출력한다. 


cat 


-b 텍스트 파일 출력할 때 행 번호를 붙여 준다. (공백만 있는 줄 제외)

-n 텍스트 파일 출력할 때 행 번호를 붙여 준다. (공백만 있는 줄 포함) 

-E 각 라인의 맨 끝에 $표시(개행 문자)를 붙여출력 

-T 탭 문자를 ^|로 표시하여 출력 

-v 인쇄가 불가능한 문자를 식별할 수 있도록 출력한다. 

-A -vET 옵션을 통합한 옵션 

-s 인접한 여러 공백 줄을 하나의 공백 줄로 출력한다. 


●  ps 

=> 동작중인 프로세스의 상태를 출력 해준다.


옵션 

a 터미널과 연관된 프로세스를 출력하는 옵션 

u 프로세스의 소유자를 기준으로 출력한다. 

x 데몬 프로세스처럼 터미널에 종속되지 않는 프로세스를 출력한다.

l     프로세스 정보를 길게 보여주는 옵션으로 우선순위와 관련되 PRI와 NI값을 출력 

f    프로세스간의 상속관계를 트리 구조로 보여준다. 

p   특정 PID를 지정할 때 상용(BSD 계열)

-e 모든 프로세스 출력 

-a 세션 리더(일반적으로 로그인 쉘)을 제외하고 터미널에 종속되지 않은 모든 프로세스를 출력한다. 

-f  유닉스 스타일로 출력해 주는 옵션으로 UID, PID, PPID 등이 함께 표시된다. 

-C 지정한 프로세스만 보여준다. 

-o 값 = 출력 포맷을 지정하는 옵션으로 값으로는 pid,tty, time,cmd 등을 지정할 수 있다. 

-p 특정 PID를 지정할 때 사용 (Sysem V 계열)

-u 특정 사용자의프로세스 정보를 확인시 사용. 현재 사용자 기준 


STAT


R(running)     실행, 실행 될수 있는 상태 

S(Sleeping)   인터럽트에 의한 sleep상태로 특정 이벤트가 끝나기를 기다리는 상태 

D(Disk wait)   디스크 I/O에 의해  대기 상태, 

X                  죽어있는 상태 

L                   메모리 안에서 페이지가 잠금된 상태(보통 real-time과 일반적 I/O에 의해 발생)

l                   멀티 쓰레드 상태 

+                  포어그라운드 프로세스 그룹 

<                  인위적으로 우선순위 높아진상태(사용자 설정에 의한것이 아님)


●  pstree 

=> 프로세스 상태를 트리(Tree)로 출력해 주는 명령이다. 가장 왼쪽이 부모 프로세스이고, 

     오른쪽이 자식 프로세스에 해당한다.  

옵션 

-a 각 프로세스의 명령행 인자까지 보여준다. 

-h 현재 프로세스와 그것의 조상 프로세스를 하이라이트로 강조해서 보여준다. 

-n 프로세스 이름 대신에 PID값으로 정렬해서 보연준다. 

-p PID 값을 같이 보여준다. 




● top 

=> 동작중인 프로세스의 상태를 실시간 화면에 출력해 주는 명령으로 프로세스의 상태뿐만 

     아니라 CPU, 메모리, 부하 상태 등도 확인할 수 있다. 


옵션 

-d 갱신 시간을 설정한다.(초 단위)

-p 특정 PID 값을 갖는 프로세스를 모니터링할 때 사용한다. 


top 항목 


PR 우선순위 값  

NI   우선순위 nice vlaue (-20 ~ 19) 작을 수록 우선순위 높으 ㅁ

VIRT 가상 메모리의 총 사용량 

RES  프로세스가 사용하는 실제 메모리양(Resident size(kb))

SHR  프로세스가 사용하는 공유 메모리의 양  

S      현재 프로세스의 상태를 나타낸다



● kill -HUP 1010

=> 1010 PID의 프로세스를 재시작 한다. 


※ NI는 사용자는 증가만 가능하고 root만 감소시키는게 가능. 

 

● renice 

=> 실행중인 프로세스의 우선순위를 변경할 때 사용하는 명령으로 프로세스ID PID, 사용자 이름, 프로세스의 

     그룹 ID를 이용한다. 

 

● nohup 

=> 사용자가 로그아웃하거나 터미널 창이 닫혀도 실행중인 프로세스를 백그라운드 프로세스로 대체 

     

● pgrep 

=> 프로세스를 이름 기반으로 검색하는 명령으로 PID  값을 출력한다. 


● pkill 

=> 프로세스명을 사용해서 특정 프로세스에 시그널을 보내는 명령이다.