반응형
반응형
반응형

AWK

  1. awk는 직접 사용자로부터 입력을 받거나 아니면 지정한 파일을 가공하여 표준 출력한다
    표준 출력을 리다이렉션할 수 있다 
  2. 사용법
    • awk   [옵션]   '스크립트'   [-v 변수=값]   [파일(들)]
    • awk   [옵션]   -f  스크립트 파일   [-v 변수=값]   [파일(들)]
    • cf) 편집 스크립트 파일의 사용법
      • ed  : ed -s(script) sourcefile < scriptfile
      • sed :  sed -f(file) scriptfile sourcefile > outputfile
      • awk : awk -f(file) scriptfile sourcefile > outputfile
  3. 옵션
    • -Fc  :  field separator 지정
      • c는 필드 사이를 구분하는 구분자이다
      • 직접 지정하지 않으면 공백을 기준으로 한다
      • 시스템 변수 FS를 지정하는 것과 같은 효과를 지닌다
    • -v  변수 = 값
      • 스크립트를 실행하기 전에 미리 변수를 지정하여 준다
    • -f  스크립트 파일
      • 스크립트를 파일에서 가져온다  
      • -f 옵션을 여러번 사용하여 여러개의 스크립트 파일을 동시에 불러와 지정한 파일에 적용할 수 있다 
  4. 스크립트
    • 패턴 { 동작 }
      커맨드 라인에서는 패턴, 동작 전체를 단일 따옴표로 묶는다
      • 패턴만 있는 경우 : 패턴과 일치하는 레코드(라인)를 화면에 출력한다 
      • 동작만 있는 경우 : 모든 레코드(라인)가 동작의 대상이 된다
    • 패턴
      1. /정규표현식/
        sed가 지원하지 않는 +, ?, |, ( ) 등의 메타문자도 지원한다   또한
        ^, $를 각 필드의 처음과 끝을 의미하도록 사용할 수도 있다
      2. 비교연산
        숫자 기준, 알파벳 기준 모두 사용 가능하다 
      3. 패턴 매칭 연산
        ~  :  일치하는 부분을 나타낸다
        !~ :  일치하지 않는 부분을 나타낸다
      4. BEGIN
        첫 번째 레코드가 읽혀지기 전에 어떤 동작을 정의하여 사용하고 싶을 때 사용한다 
      5. END
        마지막 레코드가 모두 읽혀진 후 어떤 동작을 정의하여 실행하고 싶을 때 사용한다 
    • 동작
      • 동작은 모두 { }로 둘러싸야 한다
      • 예제
        • good이라는 문자열을 포함하는 모든 레코드를 출력할 때
          /good/
        • 각 레코드의 첫 번째 필드를 출력할 때
          { print $1 } 
        • good이라는 문자열을 포함하는 레코드의 첫 번째 필드를 출력할 때
          /good/ { print $1 } 
        • 두 개 이상의 필드를 가지는 레코드를 전부 출력할 때(비교연산)
          NF > 2
        • 한 라인(\n)을 필드로, 빈 라인("")을 레코드로 구분할 때
          BEGIN { FS = "\n" ;  RS = ""} 
        • 첫 번째 필드가 good와 일치하는 레코드에 대해 세 번째 필드를 먼저 출력하고 두 번째 필드를 나중에 출력하고 싶을 때
          $1 ~ /good/ { print  $3 ,  $2 }
        • good이라는 문자열이 몇 개나 들어가 있는지 계산하여 마지막 부분에서 출력하고 싶을 때
          /good/ { ++x }
          END { print x } 
        • 두 번째 필드를 모두 합하고 마지막 부분에서 두 번째 필드의 총합계를 출력하고 싶을 때
          { total += $2 }
          END { print "Total of $2: " ,  total } 
        • 레코드의 길이가 20자 이하인 것을 출력하고 싶을 때
          length($0) < 20 
        • 네 개의 필드를 가지며 good이라는 단어로 시작하는 모든 레코드를 출력하고 싶을 때
          NF == 4  &&  /^good/
        • 빈줄을 제외한 모든 줄을 화면에 출력한다
          NF > 0
  5. awk 시스템 변수

      FILENAME

      현재 파일명

      $0

      입력 레코드

      FS

      입력 필드 구분
      디폴트 :  공백 

      $n

      입력 레코드의 N번째 필드

      NF

      현재 레코드 필드 갯수

      ARGC

      커맨드 라인의 인자 갯수

      NR

      현재 레코드 번호

      ARGV

      커맨드 라인 인자를 포함하는 배열

      OFMT

      숫자에 대한 출력 포맷
      디폴트 :  %.6g 

      ENVIRON

      환경 변수들을 모아둔 관계형 배열

      OFS

      출력 필드 구분
      디폴트 :  빈줄 

      FNR

      NR과 동일
      단지 현재 파일에 적용된다는 점이 다름 

      ORS

      출력 레코드 구분
      디폴트 :  newline 

      RSTART

      지정한 매칭 연산을 만족하는 문자열의 맨 앞부분

      RS

      입력 레코드 구분
      디폴트 :  newline 

      RLENGTH

      지정한 매칭 연산을 만족하는 문자열의 길이

  6. awk 연산자

      산술 : =, +=, -=, *=, /=, %=

      조건 : ? :

      논리 : ||, &&, !

      패턴 : ~, !~

      비교 : <, <=, >, >=, !=,==

      증감 : ++, --

      필드참조 : $

       

  7. 제어문(C의 제어문과 같다)
    • break
    • continue
    • do {실행} while (조건)
    • exit
    • for (관계형 배열의 요소) {실행}
      펄의 foreach와 같다
    • if (조건) {실행} else {실행}
    • return
    • while
  8. awk 명령어
    • 문자열 연산
      • gsub(reg,s)
        입력 문자열의 전반에 걸쳐 정규표현식 r을 문자열 s로 대치한다
      • gsub(reg,s1,s2)
        문자열 s2에서 정규표현식 r을 s1으로 대치한다 
      • index(s1,s2)
        s1에서 s2의 위치를 넘겨준다  만약 없다면 0을 넘겨준다 
      • length(arg)
        인자의 길이를 넘겨준다 
      • match(s,r)
        문자열 s에서 정규표현식 r과 매칭되는 부분의 위치를 넘겨준다 
      • split(string,array[,seperator])
        구분자를 기준으로(지정하지 않으면 공백 기준)해서 지정한 문자열을 배열로 만든다  배열[1],  배열[2], ....... 
      • sub(r,s),  sub(r,s1,s2)
        gsub과 동일하다
        단지 정규표현식과 일치하는 문자열이 여러개라도 처음 문자열만 대치된다
      • substr(s,m)
        문자열 s에서 m번째 위치에서 끝까지의 문자를 리턴한다 
      • substr(s,m,n) 
        문자열 s에서 m번째 위치에서 n번째까지의 문자를 리턴한다 
      • tolower(str)
      • toupper(str)
    • 수치 연산
      • atan2(x,y)
        y/x의 arctangent값을 라디안 단위로 넘겨준다 
      • cos(x)
      • exp(arg)
      • int(arg)
      • log(arg)
      • rand() 
        0과 1사이의 난수를 발생한다 
      • sin(x)
      • sqrt(arg)
      • srand(expr)
        인자를 가지고 난수를 발생한다
        인자가 주어지지 않으면 시간을 가지고 난수를 발생한다 
    • 입출력/프로세스
      • close(filename)
        지정한 파일을 닫는다 
      • close(cmd)
        지정한 명령어 파이프를 닫는다 
      • delete array[element]
        지정한 배열 요소를 지운다 
      • getline()
        다음 레코드를 읽어 들인다 
      • getline[variable] [< "filename"]
        파일에서 읽어들인다 
      • next 
        다음 레코드(라인)을 입력받는다
        getline()과 유사하지만 /패턴/동작을 새롭게 시작한다
        getline()은 다음 라인을 읽기만 한다 
      • print [args] [> "filename"]
        인자를 출력한다 
      • printf "format" [,expressions] [> "filename"] 
        형식에 맞춰 출력한다 
      • sprintf (format [,expressions]) 
        printf와 마찬가지로 사용하는데 값을 리턴하기만 하고 출력은 하지 않는다 
      • system(command) 
        시스템 내부 명령어를 실행한다 
  9. 간단한 예
    • awk  ' BEGIN { for (i = 1;i<=7,i++)  print int(101*rand()) }'
      화면에 1이상 100이하의 난수 일곱 개를 출력한다
    • ls -l  file1  file2  file3  | awk  ' { x += $5 } ;  END { print "Total bytes :  " x } '
      파일들의 크기를 모두 합하여 총 바이트 수를 표시한다
    • awk  ' END { print NR } ' filename
      지정한 파일의 라인이 몇 개인지를 표시한다
    • awk  ' NR % 2 == 0 ' 
      지정한 파일의 짝수번째의 라인만을 출력해 준다 




반응형

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

[APM] 2. apache 설치.  (2) 2011.06.15
[APM] 1. mysql 설치  (0) 2011.06.15
date 명령어  (0) 2011.05.20
[vi] ^M 제거  (0) 2011.05.04
일주일 이전 파일 지우기  (0) 2011.03.05
반응형
# 오늘
date '+%Y%m%d'

# 1분전
time=`date --date '1 min ago' +%Y-%m-%d %H:%M:%S`
반응형

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

[APM] 1. mysql 설치  (0) 2011.06.15
awk 기본  (0) 2011.05.20
[vi] ^M 제거  (0) 2011.05.04
일주일 이전 파일 지우기  (0) 2011.03.05
[solaris] 서버정보 확인 명령어  (0) 2011.01.31
반응형

:%s/^M//g

^M = ctrl + v + m = ctrl + v + 엔터
반응형

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

awk 기본  (0) 2011.05.20
date 명령어  (0) 2011.05.20
일주일 이전 파일 지우기  (0) 2011.03.05
[solaris] 서버정보 확인 명령어  (0) 2011.01.31
[명령어] CPU, RAM 서버 자원 정보  (3) 2011.01.31
반응형

find . -name "*.log" -type f -mtime +7 | xargs rm -rf

 

https://blog.naver.com/ooa1769/220521238103

find -mtime -3 # 3일(72시간) 이내.
find -mtime 3  # 4일(96시간) 전에서 3일(72시간)전까지
find -mtime +3 $ 4일(96시간) 이후.

 

# 4일 전부터 2일 전까지 갱신된 파일 목록을 표시
$ find . -name "*.log" -mtime -4 -mtime +1 -print

 

반응형

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

date 명령어  (0) 2011.05.20
[vi] ^M 제거  (0) 2011.05.04
[solaris] 서버정보 확인 명령어  (0) 2011.01.31
[명령어] CPU, RAM 서버 자원 정보  (3) 2011.01.31
[link] ln -s  (0) 2010.01.22
반응형

1. 솔라리스 버전 및 업데이트 번호
[SOLARIS:/]cat /etc/release
                     Solaris 8 HW 7/03 s28s_hw3wos_05a SPARC
           Copyright 2003 Sun Microsystems, Inc.  All Rights Reserved.
                             Assembled 11 June 2003


2. 서버의 모델 출력
[SOLARIS:/]prtconf -vp | grep banner-name
    banner-name:  'Sun Fire V240'


3. 서버 정보
[SOLARIS:/]uname -a
SunOS SOLARIS 5.8 Generic_108528-22 sun4u sparc SUNW,Sun-Fire-V240
   ⓐ          ⓑ      ⓒ             ⓓ               ⓔ       ⓕ      ⓖ            ⓗ
ⓐ System(OS)
ⓑ Hostname
ⓒ Release
ⓓ Kernel Version(ID)
ⓔ Kernel architecture(그외 i86pc, sun4m, sun4c 등)
ⓕ Application architecture(그외 sparc, i386, i686등)
ⓖ Platform
ⓗ Banner

-a 옵션이 아닌 -X 옵션으로 좀더 쉽게 볼 수 있으며 비슷한 명령어로는 showrev명령어가 있습니다.

[SOLARIS:/]showrev
Hostname: SOLARIS
Hostid: 838e1e19
Release: 5.8
Kernel architecture: sun4u
Application architecture: sparc
Hardware provider: Sun_Microsystems
Domain:
Kernel version: SunOS 5.8 Generic 108528-22 May 2003

일반적으로 uname -v 명령어를 통해 설치된 Kernel에 적용된 최신 패치를 보여 주며
uname -srv 명령어를 통해 OS와 Kernel을 같이 본다. 하지만 좀더 자세한 정보를 원한다면
showrev -p 명영어를 통해 좀더 자세한 정보를 확인할 수 있습니다.

[SOLARIS:/]showrev -p | more
Patch: 109879-02 Obsoletes: 109654-02 Requires: 109877-01 Incompatibles:  Packages: SUNWcarx, SUNWcsr

패치가 많이 이루어 졌다면 상당량의 라인이 지나갈 것입니다. 때문에 more명령을 같이 넣어주면 확인하는대 불편함이 없을 것입니다.
Patch: 109879-02는 이 패치로 인해 109654-02 패치가 쓸모없어 제거 됬으며, 이 패치를 설치하기 위한 선행 패치로 109877-01이 설치되어야 하며, 관련 패키지는 SUNWcarx와 SUNWcsr이 있다는 것을 의미 한다.


4. 장착(monut)된 Disk(갯수) 확인
[SOLARIS:/]iostat -nE
c1t0d0          Soft Errors: 0 Hard Errors: 0 Transport Errors: 0
Vendor: FUJITSU  Product: MAP3367N SUN36G  Revision: 0401 Serial No: 00N0BPPN    
Size: 36.42GB <36418595328 bytes>
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
Illegal Request: 0 Predictive Failure Analysis: 0
>>
c1t1d0          Soft Errors: 0 Hard Errors: 0 Transport Errors: 0
Vendor: SEAGATE  Product: ST336607LSUN36G  Revision: 0307 Serial No: 3JA65ZTV00007349
Size: 36.42GB <36418595328 bytes>
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
Illegal Request: 0 Predictive Failure Analysis: 0

보기 쉽게 중간에 공백을 넣어 놓았습니다. 실제로 명령어를 입력했을때
는 공백이 존재하지 않습니다.

c1t0d0(FUJITSU)와 c1t1d0(SEAGATE) Disk, 이렇게 두게의 Disk가 보입니다.
df -k 명령어로 용량을 확인해 봐도 Filesystem부분에

[SOLARIS:/]df -k
Filesystem                  kbytes      used      avail capacity  Mounted on
/dev/dsk/c1t0d0s0      1016122    222789    732366    24%    /
/dev/dsk/c1t0d0s4      1016122    719173   235982    76%     /usr
/dev/dsk/c1t0d0s1       492872    173737    269848    40%    /var
/dev/dsk/c1t0d0s6    30879855     91478 30479579      1%    /backup
/dev/dsk/c1t0d0s5       492872    175590    267995    40%    /tmp
/dev/dsk/c1t1d0s6    35009161 30749312  3909758     89%    /home1

총 6개의 파티션으로 나뉜 두게의 Disk가 보입니다.
/dev/dsk/c1t0d0s[04165], /dev/dsk/c1t1d0s6

※ 참고
솔라리스는 장착된 디스크에 대한 물리적인 정보를 ‘devices.....’라는 디렉토리에 보관한 후 솔라리스가 실제 사용하는 이름으로 링크하는데 앞의 예제가 바로 그것이다. 이때 솔라리스는 물리적인 디스크에 대한 사용 방식을 두가지로 정의한다. 디스크를 있는 그대로 사용하기 위한(raw device) 방법으로 ‘/dev/rdsk/...’에 링크를 저장하는 방법과, 디스크를 솔라리스의 파일 시스템용으로 사용하기 위해 별도의 링크를 ‘/dev/dsk/...’ 디렉토리에 저장하는 방법이 있다.

일반적으로 오라클과 같은 데이터베이스나 특정 애플리케이션은 파일 시스템과 관련없이 로 디바이스(raw device)를 사용하기 때문에 ‘/dev/rdsk/....’ 밑의 파일을 사용한다. 한편 솔라리스가 직접 제어하는 파일 시스템은 블럭 디바이스(block device)를 사용하며 ‘/dev/dsk/....’ 밑의 디스크 링크를 사용한다.

따라서 어느 쪽이나 사용자가 앞의 예제와 같이 ls 명령을 실행하면 솔라리스가 인지한 디스크의 정보를 얻을 수 있다. 앞의 예제에서 표시된 내용을 해석해보면 세개의 디스크 컨트롤러(c0,c1,c2)가 장착돼 있으며, 0번 컨트롤러에는 t1 디스크 하나, 1번 컨트롤러에는 t6 디스크 하나, 2번 컨트롤러에는 t10과 t11이라는 두개의 디스크가 연결돼, 총 4개의 디스크가 시스템에 장착돼 있다는 것을 알 수 있다.

참고 사이트 : http://blog.naver.com/wooya510?Redirect=Log&logNo=60008927738


5. CPU 구성 확인
[SOLARIS:/]psrinfo -v 또는
[SOLARIS:/]/usr/sbin/psrinfo -v
Status of processor 0 as of: 11/07/08 14:46:54
  Processor has been on-line since 10/15/08 21:30:42.
  The sparcv9 processor operates at 1002 MHz,
        and has a sparcv9 floating point processor.

한개의 SPARCV9 1002MHz짜리 CPU가 있음을 보여주고 있습니다.
만약 여러게 였다면 위와 같은 정보가 여러번 나오게 됩니다.
때문에 한번에 갯수만 출력하는 명령어를 친다면 다음과 같이 입력하면 됩니다.

[SOLARIS:/]psrinfo -v | grep "Status of processor" | wc -l      
       1


6. Memory Size보기
[SOLARIS:/]prtconf | grep "Memory"
Memory size: 512 Megabytes


7. CPU점유율 확인
[SOLARIS:/]prstat
   PID USERNAME    SIZE   RSS STATE  PRI NICE   TIME CPU  PROCESS/NLWP
   296            root    443M  258M   sleep   59  -20   3:00.02   5.4%        SOLARIS/17
   311            root   3464K 1600K    sleep  58    0    0:22.13   0.1%        SOLARIS/1
    70            root    3920K 2440K   sleep   31    0   0:00.00   0.1%         picld/6
  3227    SOLARIS   1584K 1216K    cpu0   58    0   0:00.00   0.0%          prstat/1
 19074   SOLARIS   6688K 2016K       run   58    0   0:00.00   0.0%         sshd/1
 27216   SOLARIS   2560K 1784K   sleep    48    0   0:00.00   0.0%         bash/1
 27211          root    6696K 2712K   sleep   38    0   0:00.00   0.0%          sshd/1
 27245          root    2560K 1784K   sleep   58    0   0:00.00   0.0%          bash/1
 19072          root    6696K 2760K   sleep   22    0   0:00.00   0.0%          sshd/1
   272           root    5272K 1328K   sleep   20    0   0:00.00   0.0%          dtlogin/4
   310           root    1840K  632K   sleep   58    0   0:00.00   0.0%          ttymon/1
   210           root    3680K 1112K   sleep   58    0   0:00.00   0.0%         vold/5
   186           root    1048K  512K   sleep   58    0   0:00.03   0.0%          utmpd/1
   163           root    2064K  968K   sleep   48    0   0:01.35   0.0%          cron/1
   159           root    4088K 1592K   sleep  59    0   0:00.00   0.0%           syslogd/11
   152           root    1824K  440K   sleep   50    0   0:00.00   0.0%          inetd/1
 19076   SOLARIS   2560K 1792K      run   48    0   0:00.00   0.0%          bash/1
   130           root    2240K  272K   sleep    5    0   0:00.00   0.0%          rpcbind/1
   178           root    4056K 1280K   sleep    0    0   0:00.06   0.0%          sshd/1
    59            root   1752K  712K   sleep   30    0   0:00.00   0.0%          syseventd/12
 27214   SOLARIS   6688K 2008K   sleep   58    0   0:00.00   0.0%         sshd/1
    68            root   2760K  920K   sleep   53    0   0:00.00   0.0%         devfsadm/7
  2790           root   9776K 8240K   sleep    0    0   0:00.06   0.0%          nvfs/1
   308           root    1864K  520K   sleep   38    0   0:00.00   0.0%         ttymon/1
   307           root    1832K  528K   sleep   59    0   0:00.00   0.0%         sac/1
     1            root     840K  264K   sleep   58    0   0:00.43   0.0%         init/1

 


Total: 26 processes, 108 lwps, load averages: 0.06, 0.10, 0.12

하지만 이렇게 입력하면 한번 출력하고 끝이기 때문에 다음과 같이 입력 합니다.

[SOLARIS:/]prstat 5 5

이렇게 입력하면 prstat 명령여를 5초에 한번씩 5번 친 효과가 나타 납니다.
즉, 5초 간격으로 총 5번 자동적으로 prstat값이 reflash됩니다.


8. 시스템 장치의 정보 확인
[SOLARIS:/]uname -i
SUNW,Sun-Fire-V240
   ⓐ             ⓑ
Maker       Banner
이를 이용해 시스템 장치의 정보를 확인 할 수 있다.

[SOLARIS:/]/usr/platform/`uname -i`/sbin/prtdiag | more
System Configuration: Sun Microsystems  sun4u Sun Fire V240
System clock frequency: 167 MHZ
Memory size: 512MB     

==================================== CPUs ====================================
                      E$          CPU     CPU       Temperature         Fan
       CPU  Freq      Size        Impl.   Mask     Die    Ambient   Speed   Unit
       ---  --------  ----------  ------  ----  --------  --------  -----   ----
     MB/P0  1002 MHz  1MB         US-IIIi  2.4       -        -   

================================= IO Devices =================================
     Bus   Freq
Brd  Type  MHz   Slot        Name                          Model
---  ----  ----  ----------  ----------------------------  --------------------
 0   pci    66           MB  pci108e,1648 (network)                          
 0   pci    66           MB  pci108e,1648 (network)                          
 0   pci    33           MB  isa/su (serial)                                 
 0   pci    33           MB  isa/su (serial)                                 
 0   pci    33           MB  pci10b9,5229 (ide)                              
 0   pci    66           MB  scsi-pci1000,21 (scsi-2)                        
 0   pci    66           MB  scsi-pci1000,21 (scsi-2)                        
 0   pci    66           MB  pci108e,1648 (network)                          
 0   pci    66           MB  pci108e,1648 (network)                          
 0   pci    33            7  isa/rmc-comm-rmc_comm (seria+                   

============================ Memory Configuration ============================
Segment Table:
-----------------------------------------------------------------------
Base Address       Size       Interleave Factor  Contains
-----------------------------------------------------------------------
0x0                512MB             1           BankIDs 0

Bank Table:
-----------------------------------------------------------
           Physical Location
ID       ControllerID  GroupID   Size       Interleave Way
-----------------------------------------------------------
0        0             0         512MB           0

Memory Module Groups:
--------------------------------------------------
ControllerID   GroupID  Labels
--------------------------------------------------
0              0        MB/P0/B0/D0,MB/P0/B0/D1

=============================== usb Devices ===============================

Name          Port#
------------  -----
keyboard        2

======== FRU Status =========
-------------------------
Fru Operational Status:
-------------------------
Location        Status  
-------------------------
MB/SC           okay
PS0             okay
HDD0            present
HDD1            present



테스트 환경 : Solaris 8 7/03, Sun-Fire-V240

출처 : http://ksyjkh24.tistory.com/4

반응형

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

[vi] ^M 제거  (0) 2011.05.04
일주일 이전 파일 지우기  (0) 2011.03.05
[명령어] CPU, RAM 서버 자원 정보  (3) 2011.01.31
[link] ln -s  (0) 2010.01.22
ssh 로그인  (0) 2009.12.16
반응형
cat /proc/cpuinfo
cat /proc/meminfo
반응형

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

일주일 이전 파일 지우기  (0) 2011.03.05
[solaris] 서버정보 확인 명령어  (0) 2011.01.31
[link] ln -s  (0) 2010.01.22
ssh 로그인  (0) 2009.12.16
SSH 터널링으로 사설망 리눅스 PC 접속하기  (0) 2009.12.16
반응형

ln
[-s] file_name link_name

 -s : Symbolic Link 를 생성할 때 지정한다. 생략하면 Hard Link² 가 된다.
file_name : Link를 생성하고자 하는 화일명
link_name : 생성하고자 하는 화일명


Symbolic Link : 화일의 내용을 Link하지 않고 화일의 Path정보만을 Link 한다.
                      링크 생성명에 @ 가 붙는다.
                      링크가 삭제되어도 원본 파일에 영향을 주지 않는다.
                      디렉토리도 링크할 수 있다.
※ Symbolic Link 는 화일 하나를 여러 사람이 공유해서 사용하는 경우에 유용하다

Hard Link : 실제 화일의 내용을 Link 한다. 링크를 하면 해당화일의 링크수가 증가하게
                 되면 해당 링크를 삭제하면 링크수가 감소한다.
                 이때 해당 링크수가 0에 도달하면 원본 파일이 삭제된다.
                 디렉토리는 링크 할 수 없다.


예1) % ln emp_file emp_link_file
     : emp_file 이라는 화일을 emp_link_file이라는 이름의 하드링크를 생성한다.
       이 경우는 emp_file과 같은 디렉토리에 emp_link_file이 생성된다.
       생성결과) emp_link_file

예2) % ln /bin/ls dir
     : /bin 디렉토리에 있는 ls 라는 화일을 내 현재 Directory에 dir 이라는 이름의 하드링크로 생성한다.
     생성결과) dir*

예3) % ln -s /bin/as dir
     : 디렉토리 /bin/as를 dir로 새로운 Symbolic 링크를 생성한다.
     생성결과) dir@ -> /bin/ls*



[출처] [Unix]File System - Link 만들기 [ln]|작성자 이지


반응형
반응형

ssh user@ip
반응형
반응형

Local Port Forwarding : Client to Server Port 포워딩 (클라이언트의 특정포트를 서버로)
Remore Port Forwarding : Server to Client 포워딩 (서버의 특정포트는 클라이언트로)



http://kanie.lovlog.net/1500862 에서 발췌..

SSH 터널링이란 - 특정한 포트로 들어오는 IP 패킷을 SSH 접속을 이용해 다른 컴퓨터로 중계해 주는 프로토콜을 가리킵니다. SSH 터널링을 이용하면 방화벽이나 사설망 안에 물려 있어 외부에서 접속이 불가능한 PC에 접속하는 것이 가능합니다.

다음과 같은 시나리오를 예로 들어 보겠습니다.

직장의 사설망 내부에 작업용으로 사용하는 리눅스 PC가 있습니다. 외부에 있는 윈도우 컴퓨터에서 putty로 작업용 PC에 접속하고 싶습니다. 이때 사설망 외부에 SSH 서버가 있다면 터널링을 이용해 작업용 리눅스에 접속할 수 있습니다.

세 대의 컴퓨터가 각각 다음과 같은 이름을 가졌다고 가정합시다.

office_linux_pc : 사설망 내부에서 사용하는 linux pc. 사설 IP는 192.168.0.101 이라고 합시다.
ssh_server : 사설망 외부의 SSH 서버. IP는 147.46.101.102 이고, 계정 이름은 kanie라고 합시다. (도메인 이름이 있다면 ip 대신 도메인 이름을 사용해도 됩니다.)
home_windows_pc : 외부에 있는 윈도우 컴퓨터. 인터넷에 접속만 가능하다면 IP는 무관합니다.

필요한 프로그램은 다음과 같습니다.
office_linux_pc : 이 컴퓨터에 SSH로 접속하고 싶은 것이니만큼 SSH 서버가 필요하겠죠. HTTP로 접속하고 싶다면 역시 HTTP 서버가 필요합니다. 서버가 설치되어 있다면 루트 권한이 필요하지는 않습니다.
ssh_server : SSH 서버가 필요합니다. root 권한을 가질 필요는 없습니다.
home_windows_pc : 윈도우용 SSH 클라이언트인 putty를 설치합시다. putty와 같이 따라오는 윈도우 커맨드라인용 ssh 클라이언트인 plink도 필요합니다.

office_linux_pc에서 ssh_server로 SSH 링크를 엽니다. 147.46.101.102 서버의 3030번 포트로 들어오는 모든 접속을 localhost(이 경우 office_linux_pc가 되겠죠)의 22번 포트로 우회시키는 명령입니다. 22번 대신 80번 포트를 넣으면 외부에서 http 서버에 접속할 수 있습니다.

ssh -R 3030:localhost:22 kanie@147.46.101.102

패스워드를 물어보면 입력하고 접속하면 됩니다.

이제 office_linux_pc를 켜놓고 집으로 갑시다.

home_windows_pc에서 cmd로 콘솔을 열어 다음과 같이 입력합시다. 이번엔 localhost(home_windows_pc)의 4040번 포트로 들어오는 모든 접속을 147.46.101.102 서버의 3030번 포트로 우회시키는 명령입니다.

plink -L 4040:localhost:3030 kanie@147.46.101.102

이제 putty로 localhost:4040 포트에 접속합시다.



office_linux_pc의 ID와 password를 입력하고 접속하면 됩니다.




http://www.zxcasd.pe.kr/tt/entry/ssh-%ED%84%B0%EB%84%90%EB%A7%81 에서 발췌..

ssh 터널링은 공유기나 방화벽 내부의 pc에 접근 할 수 있도록 해준다.

환경
office : 방화벽 안에 있는 피씨 또는 공유기를 사용하는 피씨(192.168.x.x) 처럼 가상 IP를 사용하고 있다.

home : office의 공유기나 방화벽의 밖에 있다.

server : 포워딩 해줄 서버로, office와 home에서 모두 접근할 수 있다.

반응형

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

[link] ln -s  (0) 2010.01.22
ssh 로그인  (0) 2009.12.16
[솔라리스] tar @LongLink 메시지 발생시.  (0) 2009.11.11
서버간 trust 설정. scp 사용.  (0) 2009.10.20
[솔라리스] snmp 설치  (0) 2009.09.14
반응형

메시지
tar: ././@LongLink: typeflag 'L'를 식별할 수 없습니다


GNU Tar 사용를 사용해야함.
(솔라리스 8 이하는 없습니다)

/usr/sfw/bin/gtar 파일 확인.

없으면 설치 해야 한다.
http://www.sunfreeware.com/ 에서 다운 받는다.

ex)
1. 소스 파일 : tar-1.20-sol10-sparc-local.gz
2. 압축 해제 : tar-1.20-sol10-sparc-local
3. 설치 완료 : pkgadd -d . tar-1.20-sol10-sparc-local

반응형

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

ssh 로그인  (0) 2009.12.16
SSH 터널링으로 사설망 리눅스 PC 접속하기  (0) 2009.12.16
서버간 trust 설정. scp 사용.  (0) 2009.10.20
[솔라리스] snmp 설치  (0) 2009.09.14
[솔라리스] 어제 날짜 구하기.  (0) 2009.09.01

+ Recent posts