GitLab 초기 비밀번호 확인
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 |
Linux bash shell script 기본 사용법
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}'`
문자에서 특수문자를 사용하기 위해서는 다음과 같이 한다.
쌍따옴표 | "\"" '"' |
쌍따옴표는 특수기호를 작성할 때 역슬러시를 이용 따옴표는 특수기로를 그대로 출력 |
따옴표 | "'" | 따옴표는 표기할 방법이 없음 |
역실러시 | "\\" '\' |
역슬러시도 역슬러시로 표시할 수 있다. 따옴표는 특수기호를 그대로 출력 |
'DEVELOPMENT > Linux' 카테고리의 다른 글
[linux]mount 명령어를 통한 디렉터리 연결하기 (0) | 2023.03.23 |
---|---|
파일 감시를 위한 inotifywait (0) | 2020.08.20 |
logroate 옵션 (0) | 2017.11.22 |
특정 계정으로 쉘 실행하기 (0) | 2017.11.15 |
CentOS7 방화멱(firewalld) 설정 (0) | 2017.04.24 |
CentOS7 방화멱(firewalld) 설정
CentOS 7/RHEL 7부터는 방화벽을 데몬이 firewalld로 변경되었다. 방화벽 설정을 iptables 명령어 대신 firewall-cmd(콘솔), firewall-config(X-Windows) 명령어를 사용하여 설정한다.
설치
- yum install firewalld
- systemctl start firewalld
- systemctl enable firewalld
설정
설정파일
/etc/firewalld/zones/public.xml
- <?xml version="1.0" encoding="utf-8"?>
- <zone>
- <short>Public</short>
- <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
- ed.</description>
- <service name="dhcpv6-client"/>
- <service name="http"/>
- <service name="ssh"/>
- <service name="https"/>
- </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"
방화벽에 포트 추가
- firewall-cmd --permanent --zone=public --add-service=http
- 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 |
[tip] 리눅스에서 부팅시 간단하기 시작 프로그램 등록하기
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 * * * *)
'DEVELOPMENT > Linux' 카테고리의 다른 글
CentOS7 방화멱(firewalld) 설정 (0) | 2017.04.24 |
---|---|
[Linux] Proxy 서버 설정하기 (0) | 2015.07.22 |
crontab 설명 (0) | 2015.05.06 |
centos inotify install (0) | 2015.04.22 |
[SHELL] 특정 날짜를 입력받아 지정된 날짜까지 LOOP 실행하기 (0) | 2015.01.28 |
[SHELL] 특정 날짜를 입력받아 지정된 날짜까지 LOOP 실행하기
사용자의 특정 날짜를 입력 받아서 지정된 날짜까지 일별로 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 |
[linux]ssh 비밀번호 없이 접속하기
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 하고 해본다.
'DEVELOPMENT > Linux' 카테고리의 다른 글
[SHELL] 특정 날짜를 입력받아 지정된 날짜까지 LOOP 실행하기 (0) | 2015.01.28 |
---|---|
windows OS 에서 port 및 프로세스 확인 (0) | 2014.04.08 |
centos 5.3 svn 설치 (0) | 2012.06.01 |
[ubuntu]linux 명령어 - apt-get (0) | 2012.05.17 |
linux 명령어 - df (volume 사용량 확인) (0) | 2012.05.17 |
centos 5.3 svn 설치
처] centos 5.3 svn 설치|작성자 세바니
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 설치|작성자 세바니
'DEVELOPMENT > Linux' 카테고리의 다른 글
windows OS 에서 port 및 프로세스 확인 (0) | 2014.04.08 |
---|---|
[linux]ssh 비밀번호 없이 접속하기 (0) | 2013.04.25 |
[ubuntu]linux 명령어 - apt-get (0) | 2012.05.17 |
linux 명령어 - df (volume 사용량 확인) (0) | 2012.05.17 |
linux 명령어 - top (0) | 2012.05.17 |
[ubuntu]linux 명령어 - apt-get
## 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/에 설치가 됨
[출처] [Linux] ubuntu apt-get 명령어 정리|작성자 juner84
'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 |
linux 명령어 - df (volume 사용량 확인)
리눅스에서 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
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 |