Unix/Linux SCP 사용법



SCP를 이용한 파일 전송



1. 파일 전송

scp를 이용하여 파일 전송 방법을 설명 하겠습니다.


 scp [전송할 파일] [계정이름]@[전송할 서버 IP 혹은 hostname]:[받을 파일 위치]


내서버의 /home 디렉토리의 share.txt 파일을 전송

scp /home/share.txt tt@xxx.xx.xxx.xxx:/home/test2/share.txt


scp /home/share.txt

내서버의 /home 디렉토리의 share.txt 파일을


tt@xxx.xx.xxx.xxx

ip : xxx.xx.xxx.xxxx 서버의 tt 계정을 갖은 서버로


/home/test2/share.txt

/home/test2 디렉토리에 share.txt 이름으로 전송


이렇게 전송 후 xxx.xx.xxx.xxx 서버로 접속 후 /home/test2/ 디렉토리에 share.txt 파일이 있는 것을 확인 할 수 있습니다.


2. 하위 디렉토리 포함 전송


 scp -r [전송할 디렉토리] [계정이름]@[전송할 서버 IP 혹은 hostname]:[받을 디렉토리위치]


내서버의 /home/test 디렉토리의 모든 파일, 디렉토리를 /home/test3 로 복사 한다.

scp -r /home/test tt@xxx.xx.xxx.xxx:/home/test3/




SCP를 이용한 파일 수신



1. 파일 수신

scp를 이용하여 파일 수신 방법을 설명 하겠습니다.


 scp [계정이름]@[수신할 서버 IP 혹은 hostname]:[수신 받을 파일 위치] [수신 받을 파일 위치] 


xxx.xx.xxx.xxx 서버의 /home/test2/share.txt 파일을 내서버의 /home 디렉토리의 share.txt 파일로 수신

scp tt@xxx.xx.xxx.xxx:/home/test2/share.txt /home/share.txt 


scp tt@xxx.xx.xxx.xxx

ip : xxx.xx.xxx.xxxx 서버의 tt 계정을 갖은 서버의


/home/test2/share.txt

/home/test2 디렉토리에 share.txt 파일을 


/home/share.txt

내서버의 /home 디렉토리의 share.txt 이름으로 수신


이렇게 수신 후 내 서버로 접속 후 /home 디렉토리에 share.txt 파일이 있는 것을 확인 할 수 있습니다.


2. 하위 디렉토리 포함 수신


 scp -r [계정이름]@[수신할 서버 IP 혹은 hostname]:[수신 받을 디렉토리위치] [수신 받을 디렉토리]


xxx.xx.xxx.xxx 서버의 /home/test3/ 디렉토리를 내서버의 /home/test 디렉토리로 수신

scp -r tt@xxx.xx.xxx.xxx:/home/test3/ /home/test


반응형

오라클 시퀀스(Sequence) 사용법




시퀀스 생성



시퀀스는 순번을 생성해주는 객체이다.

예를 들어 사원 번호를 1번부터 직원 수 만큼 따는데 중복이 있어서는 안된다.

프로그램에서 따로 관리 하기에는 복잡해지니 시퀀스를 이용하여 중복되지 않게 

순번을 얻어 올 수 있어 매우 편리한 객체라 할 수 있다.


시퀀스 생성 하는 방법은 아래와 같다.


CREATE SEQUENCE [스키마 명].[시퀀스 명]

INCREMENT BY [증감 숫자]

START WITH [시작 숫자]

NOMINVALUE 혹은 MINVALUE [최소값]

NOMAXVALUE 혹은 MAXVALUE [최대값]

NOCYCLE 혹은 CYCLE

NOCACHE 혹은 CACHE; 


증감 숫자가 최대 값에 도달 하면 생성을 중단 할 지 ( NOCYCLE ) 처음 부터 다시 생성 할지 ( CYCLE )

메모리에 시퀀스 값을 미리 할당 ( CACHE ) 혹은 할당 하지 않음 ( NOCACHE )



시퀀스를 생성하는 예제 이다.


CREATE SEQUENCE SEQ_USER_ID

INCREMENT BY 1

START WITH 1

MINVALUE 1

MAXVALUE 99999

NOCYCLE

NOCACHE;



시퀀스를 생성 후 번호를 얻어와 보자 얻어오는 방법은 아래와 같다.


[시퀀스 명].NEXTVAL



시퀀스 조회 예제는 아래와 같다.

아래 쿼리를 계속 생성하면 1씩 증가되는 것을 확인 할 수 있다.


SELECT SEQ_USER_ID.NEXTVAL FROM DUAL;


또한 데이터 생성시 아래 처럼 다음 아이디 값을 넣을 수 있다.


INSERT INTO TBL_HUMAN VALUES( SEQ_USER_ID.NEXTVAL, 'JOJO', '30' );



이상으로 오라클 시퀀스 사용법을 마치겠습니다.

도움이 되셨습니까?

반응형

파이썬 예외 처리



try, finally


프로그램 수행 중 예외가 발생을 하던 발생하지 않던 사용했던 리소스는 무조건 반납을 해야 합니다.

반납을 하지 않으면 메모리 leak이 발생해 언젠가 컴퓨터에서 이상동작을 일으키기 때문이죠.

이번에는 프로그램 종료 전에 예외 발생 여부와 상관없이 실행되는 구문인 finally에 대해 알아보도록 하겠습니다.


우선 아래 예제를 보자

실행 해보면 '파일 종료' 문구가 출력되지 않는 것을 알 수 있다.


#!/usr/bin/python

# -*- coding: utf-8 -*-


try:

    f = open('C:\\newfile.txt','r')

    retval = 10/0

    print('파일 종료1')

    f.close()

    print('파일 종료2')

except ZeroDivisionError as e :

    print(e)



이와같이 파일 종료를 하기 전에 예외가 발생하여 종료를 하지 못하는 현상이 발생 될 수 있다.

해결 방법은 except 안에도 파일 종료 함수를 넣어주는데 이것은 같은 종료문을 두번써서 깔끔하지도 못하고 

소스를 보는데 방해만 된다.


아래는 좋은 방법이 아니다...

#!/usr/bin/python

# -*- coding: utf-8 -*-


try:

    f = open('C:\\newfile.txt','r')

    retval = 10/0

    print('파일 종료1')

    f.close()

    print('파일 종료2')

except ZeroDivisionError as e :

    print(e)

    print('파일 종료1')

    f.close()

    print('파일 종료2')



이제 finally를 사용하여 예외 발생 여부와 상관없이 종료를 시켜 보자


 try:

   [예외가 발생하는 실행 문]

 except 발생오류 as 오류 메시지 변수 :

   [보통 오류 메시지 발생된 것을 출력]

 finally:
   [예외 발생 여부와 상관없이 실행 해야 할 명령어]



#!/usr/bin/python

# -*- coding: utf-8 -*-


try:

    f = open('C:\\newfile.txt','r')

    retval = 10/0

except ZeroDivisionError as e :

    print(e)

finally:

    print('파일 종료1')

    f.close()

    print('파일 종료2')





try, pass



예외가 발생 하여도 처리하지 않고 회피 할 수 있는 방법이 있다.

그것은 바로 pass를 사용하는 것인데 특정 예외가 발생 하면 그 예외를 처리하지 않는 방법을 설명하겠다.


 try:

   [예외가 발생하는 실행 문]

 except 발생오류 as 오류 메시지 변수 :

   pass


예제는 아래와 같다. 

#!/usr/bin/python

# -*- coding: utf-8 -*-


try:

    retval = 10/0

except ZeroDivisionError as e :

    pass


반응형

'프로그램 > Python' 카테고리의 다른 글

[Python] Python cmd 결과 값 받는 방법  (0) 2016.12.12
[Python] 예외 처리, try, except, else  (0) 2016.11.26
[Python] 모듈 #2  (0) 2016.11.13
[Python] 모듈 #1  (0) 2016.11.12
[Python]클래스(3)  (0) 2016.11.02

테이블 스페이스(Table Space) 생성




Table Space 생성



오라클에 데이터를 저장하는 논리적 단위 중 가장 상위 개념이 테이블 스페이스다.

물리적은 파일이며 논리적 단위 중에는 데이터 블럭 -> 익스텐트 -> 세그먼트 -> 테이블 스페이스 순으로 있다.


1. 테이블 스페이스를 생성 하기 위해서는 우선 DBA로 접속을 해야 한다.


CONN SYS/ORACLE AS SYSDBA


2. 테이블 스페이스를 생성한다.


CREATE TABLESPACE sample_ts DATAFILE

'C:\tablespace\sample_ts' SIZE 100M AUTOEXTEND ON NEXT 5M;


각 구문마다 설명 드리겠습니다.


CREATE TABLESPACE sample_ts DATAFILE

sample_ts 이름으로 테이블을 생성 하였습니다.


'C:\tablespace\sample_ts' 

저장 되는 데이터 파일은 C:\tablespace\sample_ts 입니다.


SIZE 100M AUTOEXTEND ON NEXT 5M;

총 사이즈는 100MB 까지 저장 가능 하며 100MB가 초과 하면 자동으로 5MB씩 늘리게끔 되어있습니다.


생성된 파일은 아래와 같습니다.

계정생성시 기본 Table Space 지정 하기


1. 이후 생성할 테이블 스페이스 사용해줄 사용자를 생성 한다.


CREATE USER SAMPLE_USER IDENTIFIED BY PASSWORD

DEFAULT TABLESPACE SAMPLE_TS
TEMPORARY TABLESPACE TEMP;


2. 권한 부여


GRANT CONNECT, RESOURCE TO SAMPLE_USER;


반응형

+ Recent posts