캠핑과 개발


사용자의 특정 날짜를 입력 받아서 지정된 날짜까지 일별로 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

메신저, DB 등의 각종 프로세스와 포트를 확인하실려면

 

실행 - cmd 에서

 

netstat -ano     라고 치시면 아래와 같은 결과를 확인합니다.

-----------------------------------------------------------------

Proto  Local Address          Foreign Address        State           PID
TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       848
TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING       804
TCP    127.0.0.1:1025         0.0.0.0:0              LISTENING       1580
TCP    192.168.0.5:139        0.0.0.0:0              LISTENING       4
UDP    0.0.0.0:445            *:*                                    4
UDP    0.0.0.0:500            *:*                                    628
UDP    0.0.0.0:4500           *:*                                    628
UDP    0.0.0.0:11109          *:*                                    3772
UDP    127.0.0.1:123          *:*                                    888
UDP    127.0.0.1:1256         *:*                                    2816
UDP    127.0.0.1:1900         *:*                                    976
UDP    127.0.0.1:2633         *:*                                    3596
UDP    192.168.0.5:123        *:*                                    888
UDP    192.168.0.5:137        *:*                                    4
UDP    192.168.0.5:138        *:*                                    4
UDP    192.168.0.5:1900       *:*                                    976

----------------------------------------------------------

TCP/UDP --> UDP는 네트워크를 이용하는 프로그램 // TCP는 인터넷을 이용하는 프로그램입니다.

 

Local Address  에서 포트를 확인할 수 있습니다.  문제는 PID 확인인데 ... 이것만 봐서는 어떤 프로그램인 지 알수가 없습니다.

 

PID로 프로그램 확인하기

cmd 모드에서 아래와 같이 명령어를 입력합니다.

 

tasklist

---------결과 ----------------

이미지 이름                  PID 세션 이름           세션#  메모리 사용
========================= ====== ================ ======== ============
System Idle Process            0 Console                 0         16 K
System                         4 Console                 0        296 K
smss.exe                     500 Console                 0        404 K
csrss.exe                    548 Console                 0     21,556 K
winlogon.exe                 572 Console                 0      5,964 K
services.exe                 616 Console                 0      3,604 K
lsass.exe                    628 Console                 0      2,992 K
svchost.exe                  804 Console                 0      5,220 K
svchost.exe                  848 Console                 0      4,800 K
svchost.exe                  888 Console                 0     89,336 K
svchost.exe                  948 Console                 0      4,044 K
svchost.exe                  976 Console                 0      4,196 K
spoolsv.exe                 1020 Console                 0      6,372 K
nvsvc32.exe                 1156 Console                 0      4,168 K
alg.exe                     1580 Console                 0      3,664 K
ctfmon.exe                  1676 Console                 0      5,212 K
EnMixCPL.exe                1388 Console                 0     13,824 K
ctfmonnpe.exe               1424 Console                 0      7,860 K
rundll32.exe                1364 Console                 0      5,172 K
RaUI.exe                    1972 Console                 0      9,104 K
conime.exe                  2792 Console                 0      3,768 K
usnsvc.exe                  2956 Console                 0      2,784 K
npkcmsvc.exe                2748 Console                 0      1,860 K
explorer.exe                4040 Console                 0     75,796 K
svchost.exe                 3800 Console                 0      4,264 K
dkznote.exe                 3772 Console                 0     13,056 K
INISAFEWeb60Tray.exe         468 Console                 0      4,924 K
Hwp.exe                     1212 Console                 0      5,172 K
iexplore.exe                3596 Console                 0     76,820 K
WLLoginProxy.exe            1328 Console                 0      7,908 K
AYAgent.aye                 3868 Console                 0      9,380 K
AYServiceNT.aye             3248 Console                 0     41,516 K
cmd.exe                      692 Console                 0      2,776 K
taskmgr.exe                 1896 Console                 0      2,860 K
wuauclt.exe                 1124 Console                 0     31,264 K
wmiprvse.exe                2392 Console                 0      6,444 K
tasklist.exe                1404 Console                 0      4,376 K

----------------------------------------------------------------------

이게 어떤 서비스(데몬)와 연결되어 있는 지 알려면 다음과 같이 명령을 주면 됩니다.

 

tasklist /svc

 

이미지 이름                  PID 서비스
========================= ====== =============================================
System Idle Process            0 N/A
System                         4 N/A
smss.exe                     500 N/A
csrss.exe                    548 N/A
winlogon.exe                 572 N/A
services.exe                 616 Eventlog, PlugPlay
lsass.exe                    628 PolicyAgent, ProtectedStorage, SamSs
svchost.exe                  804 DcomLaunch, TermService
svchost.exe                  848 RpcSs
svchost.exe                  888 AudioSrv, Browser, CryptSvc, Dhcp, dmserver,
                                 ERSvc, EventSystem,
                                 FastUserSwitchingCompatibility, helpsvc,
                                 HidServ, lanmanserver, lanmanworkstation,
                                 Netman, Nla, RasMan, Schedule, seclogon,
                                 SENS, SharedAccess, ShellHWDetection,
                                 srservice, TapiSrv, Themes, TrkWks, W32Time,
                                 winmgmt, wscsvc, wuauserv
svchost.exe                  948 Dnscache
svchost.exe                  976 LmHosts, RemoteRegistry, SSDPSRV
spoolsv.exe                 1020 Spooler
nvsvc32.exe                 1156 NVSvc
alg.exe                     1580 ALG
ctfmon.exe                  1676 N/A
EnMixCPL.exe                1388 N/A
ctfmonnpe.exe               1424 N/A
rundll32.exe                1364 N/A
RaUI.exe                    1972 N/A
conime.exe                  2792 N/A
usnsvc.exe                  2956 usnjsvc
npkcmsvc.exe                2748 npkcmsvc
explorer.exe                4040 N/A
svchost.exe                 3800 stisvc
dkznote.exe                 3772 N/A
Hwp.exe                     1212 N/A
iexplore.exe                3596 N/A
WLLoginProxy.exe            1328 N/A
AYAgent.aye                 3868 N/A
AYServiceNT.aye             3248 ALYac_PZSrv
cmd.exe                      692 N/A
taskmgr.exe                 1896 N/A
wmiprvse.exe                2336 N/A
tasklist.exe                4048 N/A

-----------------------------------------------

svchost.exe가 가장 많은 역할과 서비스와 연결되어 있음을 알 수 있습니다


[출처]http://asfreeas.blogspot.kr/2009/09/windows-%EC%89%98%EC%97%90%EC%84%9C-%EA%B0%81%EC%A2%85-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%99%80-%ED%8F%AC%ED%8A%B8-%ED%99%95%EC%9D%B8xp-server.html

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

USB Flash Disk의 기본 파일 시스템은 보통 vfat을 사용한다

 

USB는 커널에 의해서 SCSI 장치를 이용해서 접근함

대부분 /dev/sd* 를 사용함 예) /dev/sda1

 

#1. 마운트를 위해 마운트 포인트를 생성해 줌

mkdir /mnt/usb

 

#2. USB가 사용중인 장치 정보를 확인

fdisk -l

 

[root@redhatws9 down]# fdisk -l

                                                                            

Disk /dev/sda: 256 MB, 256900608 bytes

16 heads, 32 sectors/track, 979 cylinders

Units = cylinders of 512 * 512 = 262144 bytes

                                                                               

   Device Boot    Start       End    Blocks   Id  System

/dev/sda1             1       979    250574+   6  FAT16

 

#3. 마운트 함

mount -t vfat /dev/sda1 /mnt/usb

 

마운트 완료

 

사용을 다 하면 umount를 해줘야 함

 

umount /mnt/usb

 

※ 가끔 한글이 깨질경우 존재함 그럴때는

mount -t vfat -o iocharset=utf8 /dev/sda1 /mnt/usb

또는

mount -t vfat -o iocharset=cp949 /dev/sda1 /mnt/usb

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

linux 명령어 - df (volume 사용량 확인)  (0) 2012.05.17
linux 명령어 - top  (0) 2012.05.17
linux 명령어 - du  (0) 2012.05.17
linux 명령어 - find  (0) 2012.05.17
디렉터리 구성  (0) 2012.05.17

du 는 Disk Usage를 의미하며, 지정된 디렉토리의 디스크 사용량을 표시해준다.


사용법 

# du [옵션] 파일

ex) du -k  /home/juner


옵션

-a : 디렉토리가 아닌 모든 파일에 대한 정보를 출력

-k : 결과 값을 KB 단위로 출력한다. (기본값)

-m : 결과 값을 MB 단위로 출력한다.

-h : 사용자가 이해하기 쉬운 용량의 단위를 표시한다. ((ex) KB,MB,GB)

-l : 하드 링크의 용량을 모두 계산한다. 

-s : 사용량의 총 합계만 출력한다. 

-S : 하위 디렉토리를 합치지 않고, 각각을 나누어서 계산한다.

지정된 디렉토리 내의 파일과 모든 하위 디렉토리의 용량, 내용까지 볼 수 있다.


/home 디렉토리 밑의 용량을 바이트로 표시한다.

# du -b /home

/usr 디렉토리 밑의 용량을 메가바이트 단위로 보여준다. 
# du -sh /usr

home 디렉토리 내의 사용량의 총합을 알아보기 쉬운 단위로 표시한다.

# du -sh /home


home 디렉토리내에 있는 모든 디렉토리와 파일들의 정보를 표시한다.

# du -a /home

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

linux 명령어 - top  (0) 2012.05.17
linux USB mount, unmount  (0) 2012.05.17
linux 명령어 - find  (0) 2012.05.17
디렉터리 구성  (0) 2012.05.17
리눅스 백그라운드 실행  (0) 2012.05.17

원하는 파일을 디렉토리를 탐색하면서 지정된 조건에 만족하는 파일을 찾는다. 이름이나, 크기, 날짜, 사용자등의 조건을 지정하여 찾을 수 있다.






0. 파일 검색

#최상위 루트 디렉토리부터 검색하여 검색된 파일을 한 행에 하나씩 표준 출력

find / -name thkim -print


#현재의 작업 디렉토리에서 검색

find . -name thkim -print


#모든 위치에서 파일, 디렉토리 찾기

find / -name 파일명

[출처] [LINUX] find 명령어|작성자 b1ix



#모든 위치에서 파일, 디렉토리 찾기(대소문자 구분없이)

find / -iname 파일명


#모든 위치에서 파일 찾기

find / -name 파일명 -type f


#모든 위치에서 디렉토리 찾기
find / -name 디렉토리명 -type d

[출처] [LINUX] find 명령어|작성자 b1ix


[출처] [LINUX] find 명령어|작성자 b1ix


#모든 위치에서 파일, 디렉토리 찾기(해당 파일명 포함)

find / -name *파일명*


1.현재 디렉토리( . ) 이하에 확장자가 .html( -name "*.html" ) 인 파일만 ( -type -f )


[출처] [LINUX] find 명령어|작성자 b1ix

find . -name "*.html" -type f -ls

2. 파일 크기

# 파일 크기가 300KB 이상( -size +300k )인 파일만 
# (호스팅되는 홈피내에 큰 사이트의 파일이 있는지 찾을 때 유용)
find . -size +300k -ls

# 파일 크기가 500bytes 이하( -size -500c )인 파일만  
find . -size -500c -ls 

#현 디렉토리에서 크기가 1000블록 이하인 파일 검색 
find . -size -1000 -print
 


# 최상위 루트에서 크기가 1000블록 이상인 파일 검색 
find / -size +1000 -print 


3. 수정일

# 수정한지 20일 이상( -mtime +20 )된 파일과 디렉토리
find . -mtime +20 -ls 

# 수정한지 20일 이상된 파일만
find . -mtime +20 -type f -ls

# 수정한지 20일 이상된 파일만 삭제 ( -exec rm {} \; ) 
# (정기적으로 20일이 지난 파일을 삭제할 때 유용)
find . -mtime +20 -type f -ls -exec rm {} \;

# 수정한지 3일 이내( -mtime -3 )의 파일만 (백업할 때 유용)
find . -mtime -3 -type f -ls

# 수정한지 30분 이내( -mmin -30 )의 파일만
find . -mmin -30 -type f -ls


#10일 이전에 수정된 파일 검색

find . -mtime +10 -print

#10일 이내에 수정한 파일을 검색하여 모두 지운다
find . -mtime -10 exec rm {} \:

#5일 이내에 생성한 파일을 검색
find / -cmin 5 -print


4. 퍼미션 및 파일 소유

# 파일시스템 전체( / )에서 SUID/SGID가 설정된 모든 파일 목록을 얻음
find / -type f \( -perm -04000 -o -perm -02000 \) -ls

# 소유자가 없는 파일 목록을 얻음 (사용자는 이미 삭제했는데, 파일이 남은 경우)
find / -nouser -o -nogroup

5. 출력 형식 지정

# 출력 형식을 printf로 만들어서 (출력 결과를 다른 프로그램에서 받아서 쓸 때 유용)
# %h = 경로, %f = 파일명, %k = KB, %s = Bytes

# 형식 : <경로/파일명> <파일크기KB>
find . -printf "%h/%f \t %kKB \n"
... 생략 ...
./public_html/phps/icon/type/pcx.gif      4KB
./public_html/phps/icon/type/ra.gif       4KB
./public_html/phps/icon/type/sound.gif    4KB
./public_html/phps/icon/type/text.gif     4KB

# 형식 : <경로/파일명> <파일크기Bytes>
find . -printf "%h/%f \t %sKB \n"
... 생략 ...
./public_html/phps/icon/type/movie.gif    912Bytes
./public_html/phps/icon/type/mp3.gif      958Bytes
./public_html/phps/icon/type/pcx.gif      897Bytes
./public_html/phps/icon/type/ra.gif       903Bytes
./public_html/phps/icon/type/sound.gif    932Bytes

6. 홈페이지 포팅할 때 퍼미션 안 맞는 경우 유용한 것

# 확장자가 .htm* .gif, .js, .css 인 것만 퍼미션을 644(rw-r--r--)로
find . -name "*.htm*" -o -name "*.gif" -o -name "*.js" -o -name "*.css" -exec chmod 644 {} \;

# 파일은 퍼미션을 644로
find . -type f -exec chmod 644 {} \;

# 디렉토리는 퍼미션을 701로
find . -type d -exec chmod 701 {} \;

# 하위의 모든 퍼미션을 바꾸지 않고 depth를 지정하여 제한을 둘 때
# 옵션 : -maxdepth 숫자  (1=현재디렉토리만, 2=현재디렉토리 포함하여 한단계 하위디렉토리까지만)
find . -maxdepth 1 -type d -exec chmod 701 {} \;

※ -maxdepth는 -type나 -perm 등의 조건연산자가 아닌 옵션이다. 
   따라서 조건연산자보다 먼저 사용해야한다. (다른 명령처럼 옵션을 먼저쓰는 것으로 이해하면 됨)
   find . -type -d -maxdepth 1 과 같이 사용하는 것은 옳지 않다.



7. 검색된 파일의 명령주기


#7월1일 ~2일 사이에 생성된 파일을 검색하여 /data/backup으로 복사하라

touch 201107010000 start.txt

touch 201107022359 end.txt

find . -newer start.txt -a ! -newer end.txt -exec cp {} /data/backup/



linux-find.pdf


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

linux USB mount, unmount  (0) 2012.05.17
linux 명령어 - du  (0) 2012.05.17
디렉터리 구성  (0) 2012.05.17
리눅스 백그라운드 실행  (0) 2012.05.17
rpm 명령어 사용하기  (0) 2012.05.17