캠핑과 개발

 

 

GitLab root 비밀번호를 모를경우 확인 하는 방법은  아래와 같다.

cat /etc/gitlab/initial_root_password  | grep Password:

 

 

만약 docker에 의해 GitLab가 실행중이라면 아래 명령을 통해 컨테이너 확인 후 컨테이너로 접속 후 실행한다.

#docker 컨테이너 확인
docker ps

# 컨테이너 접속
docker exec -it [이미지 ID] /bin/bash

'DEVELOPMENT > Server' 카테고리의 다른 글

Windows10에서 WebDAV 설정  (0) 2021.11.18
Synology Git Server  (0) 2021.11.15
docker container vi 설치  (0) 2021.01.05
ProFTPD 접속 클라이언트 제한 설정  (0) 2019.05.13
apache 일반 계정으로 실행하기  (0) 2019.01.14

1. shell script의 시작

shell script의 시작은 다음으로 시작한다.

!#/bin/sh

 

2. 문자열 출력

문자열의 출력은 다음과 같다.

echo "hello" #자동 줄바꿈
printf "hello" #c언어와 비슷

 

3. 주석

주석은 #으로 시작합니다.

# 이것은 주석입니다.
function {
 #주석입니다.
 ehco "hello"
}

 

4. 변수의 선언

쉘 스크립트에서 변수명은 대소문자 구분하지 않는다.

기본적으로 전역변수이며 변수 앞에 local을 붙여서 지역변수로 사용할 수 있다..

변수명과 값은 "="로 구분하며, 공백 없이 변수명=값으로 지정한다. 

기본적으로 변수명에 할당된 값음 모두 문자열로 인식한다.

선언된 변수는 해당 스크립트에서만 유효하며 다른 쉘 스크립트에서도 사용하려면 export를 붙여서 환경변수로 만들어야 한다.

변수의 해제는 unset로 한다.

 

아래의 예제에서 var1, var2는 모두 문자열로 인식한다.

var1=1
var2="1"

 

할당된 변수를 사용하기 위해서는 $, ${변수명}를 사용하여 할당된 변수를 사용한다.

var=1
echo $var

 

${변수명}을 사용할 경우에는 변수에 담긴 값에 연산을 이용할 수 있다.

사용법 설명
${변수명:위치} 위치 다음부터 문자열 추출
${변수명:위치:길이} 위치 다음부터 지정한 길이만큼 문자열 추출
${변수명:-기본값} 변수가 값이 없을 경우 기본값 지정
${변수명:?값} 변수의 값이 없을 경우 값출력 후 스크립트 종료
${변수명?값} 변수 미선언시에 값 출력 후 스크립트 종료
${#변수명} 문자열 길이

 

#!/bin/bash

value="abcdef"
echo ${#value} #변수값의 길이 출력
#result=>6

echo ${value:2} #특정 위치부터 출력
#result=> cdef

echo ${value:2:2} #특정 위치부터 길이만큼 출력
#result=>cd

# null이면 입력값 초기화 후 출력, 아니면 변수값 출력
echo ${value=ghijkl} 
echo ${value2=ghijkl}
#result=>abcde
#result=>ghijkl

#null이 아니면 입력값 출력, 아니면 빈값 출력
echo ${value+ghijkl}
echo ${value2+ghijkl}
#result=>ghijkl
#result=>

#null이면 입력값 출력, 아니면 변수값 출력
echo ${value-ghijkl}
echo ${value2-ghijkl}
#result=>abcdef
#result=>ghijkl

#null이면 오류, 아니면 변수값 출력
echo ${value?ghijkl}
echo ${value2?ghijkl}
#result=>abcdef
#result=>./test.sh line x: value: ghijkl

변수는 특수 매개변수를 제공한다.

  • $$ : 현재 스크립트의 PID
  • $? : 최근에 실행된 명령어, 함수, 스크립트 자식의 종료 상태
  • $! : 최근에 실행한 백그라운드(비동기) 명령의 PID
  • $- : 현재 옵션 플래그
  • $_ : 지난 명령의 마지막 인자로 설정된 특수 변수

 

만약 할당된 변수를 숫자로 사용하고 싶다면 expr 명령어를 사용한다.

또 다른 방법은 $(()) 감싸고 계산 하는 방법이 있다. $(()) 계산식 안에 있는 숫자들은 문자열이 아니라 숫자로 연산이 된다.

var1=1
var2="2"
echo `expr $var1 + $var2`
echo $(($var1 + $var2))

 

 

 

5. 배열의 선언

쉘 스크립트는 1차원 배열만 사용한다. 배열을 선언할 때는 인덱스가 연결되지 않아도 되며 배열의 선은은 다음과 같다.

#!/bin/bash

#배열에 값 할당
array[0]="1"
array[1]="2"
array[2]="3"

#한번에 배열 선언
array=("1", "2", "3")

#배열의 값 사용
echo ${array[0]}

#배열 전체 길이 출력 : ${#array[@]}

#전체 출력 : ${array[@]}

#배열의 복사 
array=(${array[@]} "2")

 

6. 파라메터 전달

쉘을 수행할때 파라메터를 던져 줄 수 있다.

쉘을 수행할때 파라메터는 /test.sh 123 456 678 형태로 넘겨줄 수 있으며 수행되는 쉘 안에서는 $1 ~$9 형태로 받을 수 있다. 10번째 인자부터는 ${}로 감싸줘야 한다. 넘겨받은 인자는 몇가지 형태가 있으며 다음과 같다.

 

  • $0 : 실행된 스크립트명
  • $1~n : 넘겨받은 인자의 순서의 넘어온 값 $1, $2 ... $9 ... ${10}, ${11}....
  • $* : 전체 인자 값
  • $@ : 전체 인자 값
  • $# : 매개 변수의 총 갯수

7. 커맨드

  • 쉘 스크립트에서는 $(리눅스 명령어)의 결과인 표준 출력을 문자열로 치환한다.
  • 물론 변수에 할당도 가능하다. ex. today=$(date)

 

8. 따옴표

쉘 스크립트에서는 쌍따옴표(Double Quotation), 따옴표(Single Quotation), 역따옴표(Backquote)가 모두 다르다.

 

  • 쌍따옴표는 특수기호가 동작하는 문자열이다.

  • 작은 따옴표는 특수기호를 그대로 출력한다.

  • 역따옴표는 명령을 실행한 후 결과를 반환하는 따옴표이다.

#!/bin/bash

var1="hello"
var2="world"
var3="!!!"

echo "${var1} ${var2} ${var4}"
#result=> hello world !!!

echo '${var1} ${var2} ${var4}'
#result=> ${var1} ${var2} ${var4}


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

  문자에서 특수문자를 사용하기 위해서는 다음과 같이 한다.

쌍따옴표 "\""
'"'
쌍따옴표는 특수기호를 작성할 때 역슬러시를 이용
따옴표는 특수기로를 그대로 출력
따옴표 "'" 따옴표는 표기할 방법이 없음
역실러시 "\\"
'\'
역슬러시도 역슬러시로 표시할 수 있다.
따옴표는 특수기호를 그대로 출력

 

CentOS 7/RHEL 7부터는 방화벽을 데몬이 firewalld로 변경되었다. 방화벽 설정을 iptables 명령어 대신 firewall-cmd(콘솔), firewall-config(X-Windows) 명령어를 사용하여 설정한다. 


설치

  1. yum install firewalld
  2. systemctl start firewalld
  3. systemctl enable firewalld


설정

설정파일

/etc/firewalld/zones/public.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <zone>
  3.   <short>Public</short>
  4.   <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accept
  5. ed.</description>
  6.   <service name="dhcpv6-client"/>
  7.   <service name="http"/>
  8.   <service name="ssh"/>
  9.   <service name="https"/>
  10. </zone>


재기동

service iptables restart 대신 아래 명령어 사용

firewall-cmd --rel


zone

사전에 정의된 zone 목록 출력

firewall-cmd --get-zones


전체 존 목록을 상세하게 출력

firewall-cmd --list-all-zones


기존 존  출력

firewall-cmd --get-default-zone


활성화된 존 출력

firewall-cmd --get-active-zone


서비스 목록

firewall-cmd --get-services


permanent로 등록된 서비스 목록

firewall-cmd --permanent --list-all


임의 포트 추가

--add-port=<portid> [-<portid>]/<protocol> 옵션을 사용하여 포트 추가

firewall-cmd --zone=public --add-port=8080/tcp


포트 삭제

--remove-port=<portid> [-<portid>]/<protocol> 옵션 사용

firewall-cmd --zone=public --remove-port=8080/tcp


rich-rule

firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4"  source address="192.168.10.0/24"  port protocol="tcp" port="9000" accept"


방화벽에 포트 추가

  1. firewall-cmd --permanent --zone=public --add-service=http
  2. firewall-cmd --permanent --zone=public --add-service=https

기본 zone은 public이므로 --zone=public 옵션은 생략 가능



출처 : https://www.lesstif.com/pages/viewpage.action?pageId=22053128#RHEL/CentOS7에서방화벽(firewalld)설정하기-설치



'DEVELOPMENT > Linux' 카테고리의 다른 글

logroate 옵션  (0) 2017.11.22
특정 계정으로 쉘 실행하기  (0) 2017.11.15
[Linux] Proxy 서버 설정하기  (0) 2015.07.22
[tip] 리눅스에서 부팅시 간단하기 시작 프로그램 등록하기  (0) 2015.05.12
crontab 설명  (0) 2015.05.06

linux 환경에서 구동되는 프로그램을 만들었는데 사용자의 요청에 의해서

리눅스가 처음 시작할때 자동으로 프로그램을 실행하도록 요청을 받을때 간단하게 사용합니다.

 

chkconfig 라는 명령으를 통하여 등록을 할 수도 있지만 리눅스의 부팅과정을 이해해야하며

런레벨에 대한 정보도 학습해야 합니다. 리눅스도 잘 모르는 사용자라 하면 복잡하게 느껴질수도 있습니다.

 

하지만 해당 방법은 crontab을 통하여 등록할 수 있으며 사용방법이 간답합니다.

 

사용법

 

1. 프로그램이 실행하고자 하는 계정으로 로그인 한 후 아래 명령어를 입력하여 편집모드로 들어갑니다.

crontab -e 

 

2. @reboot 명령을 통하여 실행하고 하는 명령어를 입력합니다.

예를 들어서 부팅시 어떤 프로그램을 를 자동으로 실행하기 위한 명령어를 등록하기 위해서서 아래와 같이 입력하였습니다.

 

@reboot /home/test/test/programstart.sh 

 

3. 저장한 후 vi를 닫습니다.

 

crontab은 일반적으로 사용하는것 외에 특정 몇가지 활성화 매계변수가 존재하는데 아래와 같은 것들이 있습니다.

직접 쳐도 되지만 간단하게 사용할 수도 있으니 유용하게 사용되었으면 합니다. 

@reboot = run at boot and reboot only

@yearly  = run at midnight Jan 1 each year (equiv to 0 0 1 1 *)
@annually  = run at midnight Jan 1 each year (equiv to 0 0 1 1 *)
@monthly  = run at midnight on the first day of each month (equiv to 0 0 1 * *)
@weekly  = run at midnight each Sunday (equiv to 0 0 * * 0)
@daily  = run at midnight each day (equiv to 0 0 * * *)
@ midnight  = run at midnight each day (equiv to 0 0 * * *)

@ hourly = run on the first second of every hour (equiv to 0 * * * *) 


사용자의 특정 날짜를 입력 받아서 지정된 날짜까지 일별로 loop를 돌면서 처리해야 하는 경우 

해당 쉡을 사용한다.

간단하지만 변수에 담긴 date를 증가 및 감소 하는 법을 알지 못해 고생했다. 


실행방법은 ./dateLoopRunShell.sh 20101120 형태로 사용하면 인자는 yyyymmdd 형태의 시작일을 입력한다.


해당 쉘의 종료일은 쉘을 실행시키는 시점의 날짜가 되며 20101120 ~ 현재일까지 날짜를 출력한다.

20101120

20101121

20101122

20101123   

.

.

.

20150128


echo 부분을 주석처리 하고 해당 부분에 처리할 로직을 넣어서 실행한다.


dateLoopRunShell.sh

#!/bin/bash

echo "HELLO SHELL"


START=$(date --date=$1 +"%Y%m%d")

END=$(date +"%Y%m%d")


CURRENT="$START"


#echo `date -d "$CURRENT 1 day" +"%Y%m%d"`


while [ "$CURRENT" != "$END" ]; do

    echo $CURRENT


     #run shell job


     CURRENT=`date -d "$CURRENT 1 day" +"%Y%m%d"`

done


'DEVELOPMENT > Linux' 카테고리의 다른 글

crontab 설명  (0) 2015.05.06
centos inotify install  (0) 2015.04.22
windows OS 에서 port 및 프로세스 확인  (0) 2014.04.08
[linux]ssh 비밀번호 없이 접속하기  (0) 2013.04.25
centos 5.3 svn 설치  (0) 2012.06.01

ssh를 이용하여 원격지에 접속할 경우 비밀번호를 묻지 않게 하려면..


 >ssh-keygen -t rsa


이렇게 하면 다음과 같은 메세지가 나온다.


Enter file in which to save the key (/root/.ssh/id_rsa):      Enter
Enter passphrase (empty for no passphrase):                  Enter
Enter same passphrase again:                                       Enter


>ls -l ~/.ssh


id_rsa, id_rsa.pub 파일이 두개 생성이 되었을텐데 id_rsa.pub 파일을 원격지 파일로 ftp, scp를 이용하여 

전송한다. 전송할 경우 파일명은 id_rsa.pub.[hostname or ip]를 두어 구별이 가능하도록 한다.


scp ~/.ssh/id_rsa.pub.[hostname or ip] <userid>@<target ip>:.ssh/id_rsa.pub.[hostname or ip]


파일이 정상적으로 전송이 되었으면 

원격지 파일로 이동하여 


> cd .ssh 


이동을 하게 되면 해당 파일이 제대로 넘어 왔는지 확인한다.

해당 파일이 존재하면 해당 파일의 값을 authorized_keys로 추가하면 된다. 이때 authorized_keys 파일은 백업해둔다.

만약 authorized_keys 파일이 없다면 새로 생성하여 준다.


>cat id_rsa.pub.[hostname or ip] >> authorized_keys


이제 접속을 확인한다.

 

일반적인 방법으로 위의 방식으로 하면 되는데 혹 안되는 경우가 있었다.

테스트 겸 해서 같은 서버에서 같은 서버로 테스트를 했는데.. 안된다.. 

참고로 이렇게 했는데도 안되는 경우가 발생 할 경우

chmod 0600 authorized_keys 하고 해본다.

 


centos Subversion

 

1. 설치
# yum install subversion
1.4.x버전이 실행된다.

 


2. Repository 생성 (cent유저로 생성)
# mkdir /home/svn
# chown -R cent.cent /home/svn
# cd /home/svn
# svnadmin create --fs-type fsfs project
project명으로 프로젝트 생성
위치 /home/svn/project

 

 

3. 기본적인 환경설정 (뛰어쓰기 필수)
# cd /home/svn/project/conf/
# ls
authz  passwd  svnserve.conf


# vi svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd


# vi passwd
[users]
# harry = harryssecret
# sally = sallyssecret
seban = seban00


# vi authz
[groups]
[project:/]
* = rw


기본적인 svn 설정완료

 

 

4. subversion 실행을 위한 config 세팅
config 설정 파일(생성)
# vim /etc/sysconfig/subversion

# To pass additional options (for instace, -r root of directory to # server) to the svnserve binary at startup, set OPTIONS here.
OPTIONS="--threads --root /home/svn"

 

 

5. init.d 자동실행될 파일 생성
# vim /etc/init.d/subversion
아래 내용 추가
#!/bin/bash
#
#   /etc/rc.d/init.d/subversion
#
# Starts the Subversion Daemon
#
# chkconfig: 2345 90 10
# description: Subversion Daemon

# processname: svnserve

source /etc/rc.d/init.d/functions

[ -x /usr/bin/svnserve ] || exit 1

### Default variables
SYSCONFIG="/etc/sysconfig/subversion"

### Read configuration
[ -r "$SYSCONFIG" ] && source "$SYSCONFIG"

RETVAL=0
prog="svnserve"
desc="Subversion Daemon"

start() {
        echo -n $"Starting $desc ($prog): "
   daemon $prog -d $OPTIONS
   RETVAL=$?
   [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
   echo
}

stop() {
   echo -n $"Shutting down $desc ($prog): "
   killproc $prog
   RETVAL=$?
   [ $RETVAL -eq 0 ] && success || failure
   echo
   [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
   return $RETVAL
}

case "$1" in
  start)
   start
   ;;
  stop)
   stop
   ;;
  restart)
   stop
   start
   RETVAL=$?
   ;;
  condrestart)
        [ -e /var/lock/subsys/$prog ] && restart
   RETVAL=$?
   ;;
  *)
   echo $"Usage: $0 {start|stop|restart|condrestart}"
   RETVAL=1
esac

exit $RETVAL

 

 

6. subversion 실행
# cd /etc/init.d/
# chmod 755 /etc/init.d/subversion
# /etc/init.d/subversion start
리스타트는
# /etc/init.d/subversion restart
정상적으로 subversion 실행됨
종료는
# ps -ef | grep svnserve

 

 

7. 테스트
# svn checkout svn://192.168.0.5/project
체크아웃된 리비전 0.
# svn checkout svn://centhost/project
svn checkout svn://ip혹은도메인/(프로젝트명) ex) project


정상적으로 나오는결과물은 passwd 에 설정된 아이디 패스워드 입력창이 나오거나 체크아웃된 리비전 0.

 

 

8. 방화벽 오픈 
# vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 3690 -j ACCEPT
# service iptables restart

 

 

9. Booting시 자동 실행
# vi /etc/inittab
우선 서버의 실행 Level을 확인해야 하는데 /etc/inittab의 18번째 줄 내용을 확인한다.
id:5:initdefault:
본 id와 initdefault사이의 값인 5값을 확인한다. (X11로 booting한다는 의미)
# cd /etc/rc5.d
# vi S99local
/etc/init.d/subversion start &
적당한 줄에 상기 내용을 추가

다른 방법
# vi /etc/rc.d/rc.local
아래 내용 추가
svnserve -d -r /home/svn --listen-host=0.0.0.0


[출처] http://seban21.blog.me/70084873748

[출처] centos 5.3 svn 설치|작성자 세바니

## apt-get 명령어 정리


apt-get 명령어 

apt-get(advanced Packaging Tool)은 우분투를 포함한 데비안 계열의 리눅스에서 사용하는 팩키지 관리 명령어 도구 임


#1. 패키지 인덱스 정보 파일(/etc/apt/sources.list)

apt-get 명령어를 사용할 떄 접속 정보를 가져오는 파일로 기존의 내용에서 수정하면 자신의 서버가 위치한 곳의 패키지 레파지토리를 읽어 올 수 있다. - 지역별로 다를 수 있음


#2. 설치된 패키지 업그레이드

apt-get upgrade

- 설치된 패키지를 모두 최신 버전으로 업그레이드함

apt-get dist-upgrade

- 의존성 검사하며 설치하기


#3. 패키지 설치 

apt-get install <패키지 명>

패키지 재 설치 (설치 중간에 문제 있을때 이 옵션으로 설치 마무리)

apt-get --reinstall install <패키지 명> 


#4. 패키지 삭제 

apt-get remove <패키지 명>

설정파일 까지 모두 삭제

apt-get --purge remove <패키지 명>


#5. 패키지 소스 다운로드

apt-get source <패키지 명> 

받은 소스코드를 의존성 있게 빌드

apt-get build-dep <패키지 명>

 

apt-get -d install <패키지 명>

패키지(deb) 파일만 다운받기 인스톨은 안함

다운로드 위치 : /var/cache/apt/archive/


#6. 패키지 검색 

apt-cache search <패키지 명>

패키지 정보보기 

apt-cache show <패키지 명>


apt-get으로 설치된 deb패키지는 /var/cache/apt/archive/에 설치가 됨

'DEVELOPMENT > Linux' 카테고리의 다른 글

[linux]ssh 비밀번호 없이 접속하기  (0) 2013.04.25
centos 5.3 svn 설치  (0) 2012.06.01
linux 명령어 - df (volume 사용량 확인)  (0) 2012.05.17
linux 명령어 - top  (0) 2012.05.17
linux USB mount, unmount  (0) 2012.05.17

리눅스에서 df 명령어는 현재 시스템이 사용중인 볼륨 정보와 사용량을 보여주는 명령어임


# 사용법

# df [옵션]


난 개인적으로 df -h를 가장 많이 이용한다. 

아래는 맥북에서 df -h를 사용했을때의 화면


$ df -h

Filesystem      Size   Used  Avail Capacity  Mounted on

/dev/disk0s2   465Gi   81Gi  384Gi    18%    /

dfdevfs          177Ki  177Ki    0Bi   100%    /dev

map -hosts       0Bi    0Bi    0Bi   100%    /net

map auto_home    0Bi    0Bi    0Bi   100%    /home


아래는 누가 df man 페이지를 번역해논것 퍼옴

SYNOPSIS

       df  [-aikPv] [-t fstype] [-x fstype] [--all] [--inodes] [--type=fstype]

       [--exclude-type=fstype]  [--kilobytes]  [--portability]  [--print-type]

       [--help] [--version] [filename...]


DESCRIPTION

       이  문서는 더이상 최신 정보를 담고 있지않다.  그래서,  몇몇틀릴  경우도

       있고,  부족한  경우도  있을  것이다.  완전한매뉴얼을 원하면, Texinfo 문

       서를 참조하기 바란다.


       이 매뉴얼 페이지는 df 명령의 GNU  버전에  대한  것이다.  df 명령은 지정

       한 filename이 있는 파일 시스템의 사용가능한디스크 공간 정보를 보여준다.

       아무런 filename 인자가 없으면, 현재 시스템에서사용하는 모든 파일 시스템

       의 사용가능한 디스크 공간 정보를 보여준다.  나타나는 숫자들의 기본 단위

       는  1KB이다. 물론이 단위는 POSIXLY_CORRECT 환경 변수의 설정으로 512Byte

       로 바꿀 수 있다.


       만일 filename 인자로 디스크 장치 이름이 절대 경 로   형 식 으 로  ( 예,

       /dev/hda1) 주어지면, 그 해당 디스크의 사용가능한 디스크 공간을보여준다.

       이 버전에서는 마운트(mount(8))되지 않은 파일 시스템에 대해서는그  공 간

       정 보를 보여지 못한다. 이런 이유는 각각의 파일 시스템 구조에대한 정보들

       을 확실하게 알아야하는데, 마운트 되지 않은 상태에서는이런 정보들을 알기

       가 거의 불가능하기 때문이다.


   OPTIONS

       -a, --all

              파 일 시스템의 크기가 0인 것도 모두 보여준다. 초기값은 제외 시킨

              다.  이런 파일 시스템은 전형적으로 자동 마운트관련, 특별  구 성,

              pseudo-filesystems 이 다.   어 떤  시스템에서는 ‘‘ignore’’, 또는

              ‘‘auto’’ 형태의 파일 시스템이 초기값으로 생략되는 경우가  있 다.

              이때 이옵션을 사용한다.


       -i, --inodes

              블럭 사용 정보 대신에 inode 사용정보를 보여준다.  inode란 특별한

              종류의 디스크 블럭인데, 이것은 파일이름, 소유주, 권한, 시간   정

              보, 디스크에서의 위치등에대한 정보를 담고 있다.


       -k, --kilobytes

              보여주는 숫자들의 단위를 512 바이트 블럭 단위 대신 1KB 단위로 보

              여준다.  이 옵션은 POSIXLY_CORRECT 환경 변수를 무시한다.


       -P, --portability

              POSIX에서 사용되는 형태로 보여준다.  이 옵션은 한 줄에 하나의 파

              일   시스템 정보만 보여주다는 것을 제외하고는기본 출력 양식과 같

              다. 한 마운트 장치는 그 줄에 포함되지 않는다.  이 말은 만약 마운

              트 장치 이름이 20 문자 이상이면,(원격 마운트파일 시스템일 경우는

              그렇다) 줄이 나뉘어 지는데, 이런 경우는 생략되거나축약된다.


       -T, --print-type

              각 파일시스템의 형태를 보여준다.  특정 파일시스템의 정보만을  원

              할 경우에는 --type= 또는 --exclude-type= 옵션을 사용한다.


       -t, --type=fstype

              fstype 값을 가진 파일시스템만 보여준다.  초기값은 모든 파일 시스

              템을 보여준다.


       -x, --exclude-type=fstype

              fstype 값을 가진 파일시스템만 빼고 나머지 모든 파일 시스템 정 보

              를 보여준다.


       -v     무시: System V 용 df와 호환을 위해서 있는 옵션.


사용법: df [OPTION]... [FILE]...

각각의 FILE이 있는 파일 시스템에 대한 정보를 출력합니다.

기본값은 모든 파일시스템입니다.


  -a, --all             include filesystems having 0 blocks

  -a, --all             0블럭을 가진 파일시스템도 출력에 포함합니다

        --block-size=SIZE use SIZE-byte blocks

        --block-size=SIZE SIZE 바이트 크기의 블럭을 사용합니다


  -h, --human-readable  print sizes in human readable format (e.g., 1K 234M 2G)

  -h, --human-readable  크기를 사람이 알기 쉽게(1K, 234M, 2G등)표시합니다


  -H, --si              likewise, but use powers of 1000 not 1024

  -H, --si              비슷합니다만 1024배 대신 1000배를 사용합니다


  -l, --local           limit listing to local filesystems

  -i, --inodes          블럭 사용 대신 inode정보를 표시합니다


  -k, --kilobytes       like --block-size=1024

  -k, --kilobytes       --block-size=1024와 같습니다


  -l, --local           limit listing to local filesystems

  -l, --local           지역 파일시스템만 나열합니다


  -m, --megabytes       like --block-size=1048576

  -m, --megabytes       --block-size=1048576과 같습니다

      --no-sync         do not invoke sync before getting usage info (default)

      --no-sync         사용정보를 얻기 전에 sync를 부르지 않습니다(기본값)


  -P, --portability     use the POSIX output format

  -P, --portability     POSIX사양으로 출력합니다

      --sync            invoke sync before getting usage info

      --sync            사용정보를 얻기 전에 sync를 부릅니다


  -t, --type=TYPE       limit listing to filesystems of type TYPE

  -t, --type=TYPE       TYPE형태의 파일시스템에 대한 정보만 표시합니다


  -T, --print-type      print filesystem type

  -T, --print-type      파일시스템 형태를 출력합니다


  -x, --exclude-type=TYPE   limit listing to filesystems not of type TYPE

  -x, --exclude-type=TYPE   TYPE형태가 아닌 파일시스템 정보만 표시합니다


  -v                    (ignored)

  -v                    (무시합니다)


      --help            display this help and exit

      --help            이 도움말을 표시하고 종료합니다


      --version         output version information and exit

      --version         버전 정보를 표시하고 종료합니다


[출처] [linux]df 사용법, linux volume 사용량 확인|작성자 juner84


'DEVELOPMENT > Linux' 카테고리의 다른 글

centos 5.3 svn 설치  (0) 2012.06.01
[ubuntu]linux 명령어 - apt-get  (0) 2012.05.17
linux 명령어 - top  (0) 2012.05.17
linux USB mount, unmount  (0) 2012.05.17
linux 명령어 - du  (0) 2012.05.17

Linux 시스템을 사용하다가 시스템 사용량을 보기위해 우리는 top를 이용한다

top 명령어 사용시 유용한 옵션정리


[사용법]

$ top [옵션]


나의 경우는 옵션을 별로 사용하지 않는다 

보통 top 화면으로 들어가서 사용량을 확인함


[화면 내용들]

top - 15:55:22 up 98 days, 14:29,  1 user,  load average: 0.05, 0.04, 0.00

Tasks: 141 total,   1 running, 140 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.2%us,  0.1%sy,  0.0%ni, 99.3%id,  0.4%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:   4031448k total,  3306440k used,   725008k free,   263928k buffers

Swap:  8193140k total,     2900k used,  8190240k free,  1588424k cached


PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND


각 라인별 내용 

top - 15:55:22 up 98 days, 14:29,  1 user,  load average: 0.05, 0.04, 0.00

현재 시간, uptime (서버 uptime), 현재 로그인 유저수 , 로드 에버리지 1분 5분 15분


 로드 에버리지(load average)란? 

 - 작업의 대기시간 , 값이 1이라면 1분동안 평균 1개의  프로세스가 대기상태임을 나타낸다.

   보통 5이면 서버가 부하를 받는다고 생각함, 10~15면 과부하


Tasks: 141 total,   1 running, 140 sleeping,   0 stopped,   0 zombie

전체 프로세스 수, 현재 실행중인 프로세스, 유휴상태 프로세스, 정지상태 프로세스, 좀비 프로세스


Cpu(s):  0.2%us,  0.1%sy,  0.0%ni, 99.3%id,  0.4%wa,  0.0%hi,  0.0%si,  0.0%st

사용자가 사용중인 CPU 사용률(us), 시스템이 사용하는 CPU 사용률(sy), NICE 정책에 의해 사용되는 CPU 사용률(ni), 사용되지 않은 CPU의 미사용률(id), 입출력 대기상태의 사용률(wa)


Mem:   4031448k total,  3306440k used,   725008k free,   263928k buffers

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


Swap:  8193140k total,     2900k used,  8190240k free,  1588424k cached

전체 스왑 메모리, 사용중인 스왑 메모리, 남아있는 스왑메모리, 캐싱메모리


세부정보 필드명

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

    * PID : 프로세스 ID (PID)

    * USER : 프로세스를 실행시킨 사용자 ID

    * PRI : 프로세스의 우선순위 (priority)

    * NI : NICE 값. 일의 nice value값이다. 마이너스를 가지는 nice value는 우선순위가 높음.

    * VIRT : 가상 메모리의 사용량(SWAP+RES)

    * RES : 현재 페이지가 상주하고 있는 크기(Resident Size)

    * SHR : 분할된 페이지, 프로세스에 의해 사용된 메모리를 나눈 메모리의 총합.

    * S : 프로세스의 상태 [ S(sleeping), R(running), W(swapped out process), Z(zombies) ]

    * %CPU : 프로세스가 사용하는 CPU의 사용율

    * %MEM : 프로세스가 사용하는 메모리의 사용율

    * COMMAND : 실행된 명령어

 

[명령 실행 후 사용하는 옵션들]

1 :  cpu 갯수별 사용량 보기

shift + m : 메모리 사용량이 큰 순서로 정령

shift + p : CPU 사용량이 큰 순서로 정렬

shift + t : 실행시간이 큰 순서로 정렬

k : 프로세스  kill  - k 입력 후 종료할 PID 입력 signal을 입력하라고 하면 kill signal인 9를 입력

c : 명령인자 표시/비표시

space bar : refresh

u : 입력한 유저의 프로세스만 표시 - which user 가 나오면 유저를 입력, 아무것도 안너으면 전체 표시

shift + b : 상단 정보를 블럭표시상태로 보여줌


[출처] [Linux] top 명령어 사용법|작성자 juner84

'DEVELOPMENT > Linux' 카테고리의 다른 글

[ubuntu]linux 명령어 - apt-get  (0) 2012.05.17
linux 명령어 - df (volume 사용량 확인)  (0) 2012.05.17
linux USB mount, unmount  (0) 2012.05.17
linux 명령어 - du  (0) 2012.05.17
linux 명령어 - find  (0) 2012.05.17