본문 바로가기
SAS/SAS 구문사전

【SAS Statement】 FILENAME 구문, SFTP 접근 방법

by 기서무나구물 2022. 1. 30.

포스팅 목차

    o FILENAME 구문, SFTP 접근 방법

     


    1. 목 적 

      SFTP 프로토콜을 사용하여 원격(remote) 파일에 접근하여서 파일 다운로드와 업로드 작업을 수행할 수 있다. 

    Secure File Transfer Protocol(SFTP)는 네트워크상에서 2개의 호스트(클라이언트와 서버) 사이의 보안 연결과 보안 파일 전송을 제공하며, 명령어와 데이터 모두 암호화된다. 

     


    2. 문 법 


    FILENAME
     fileref SFTP 'external-file' <sftp-options>;


     

    1) Fileref

      유효한 파일 참조자(fileref) 이름을 지정한다.

     

    Tip : 파일참조자와 외부파일 사이의 관계는 SAS 세션이 연결되고 있는 동안이나 또는 다른 FILENAME 구문을 사용하여 관계를 변경하거나 해제 때까지 유지된다. 원하는 경우에 수시로 파일에 대한 파일참조자를 변경 있다.

     

    2) SFTP

      Secure FILE TRANSFER Protocol(SFTP) 접근 방법을 지정하면 OpenSSH SSHD서버가 실행 중인 네트워크 상의 호스트 시스템 사이에서 파일 읽기와 쓰기 작업을 수행할 수 있다.

     

    3) ‘external-file’

      읽기와 쓰기 작업의 대상이 되는 외부 파일의 물리적 이름을 지정하라. 파일을 전송하지 않고 디렉터리 목록 검색 등의 작업을 수행한다면, 외부 파일의 이름을 지정할 필요 없이 인용부호 안에 공백을 작성하라. 파일 참조자에 단일 파일이나 파일이 저장되어 있는 집합 병합소를 지정할 수 있다.

     

    운영환경정보 : 외부파일의 물리적 이름 지정에 대한 상세한 사항은 운영환경에 대한 도움말 참조.
    Tip : 파일을 전송하지 않고 디렉토리 목록 검색과 같은 작업을 수행한다면, 외부 파일 이름을 지정할 필요가 없다. 대신 구문에서 인용부호 안에 공백을 넣어라. 예제1 참조
    Tip : 파일참조자와 단일 파일 또는 파일이 저장되어 있는 병합 저장소 위치를 연결 있다.

     


    4) sftp-options 

      파일 속성이나 처리 속성 동의 운영 환경과 관련된 옵션을 지정하라.

     

    (1) BATCHFILE=’path’

         SFTP 명령어를 포함하고 있는 배치 파일의 전체 경로명과 파일 이름을 지정한다. 이 명령어는 SFTP 접근 방법이 실행되면서 실행된다. 

     

    필요사항 : 경로명은 인용부호 안에 작성해야 한다.
    Tip : 배치 파일 처리가 종료후에는, SFTP연결을 닫고 지정되었던 파일 이름을 이상 사용하지 않는다. 만약 이후에 DATA 스텝 처리에서 FILENAME SFTP 구문이 필요하면, 다른 FILENAME SFTP 구문을 사용하여 지정해야 한다.
    주요기능 : 예제5 : 배치 파일 사용하기

     

    (2) CD=’directory’

         파일 전송을 위한 작업 디렉터리를 현재 지정한 디렉터리(directory)로 변경하도록 지정한다.

     

    (3) DEBUG

         SAS 로그에 SFT 서버와 주고받은 정보성 메시지를 작성하라.

     

    (4) DIR

         디렉터리 파일에 접근할 수 있도록 지정한다. External-file 인수에 디렉터리 이름을 함께 지정하라. 디렉터리 생성을 원하면 DIR 옵션과 함께 NEW 옵션을 이용하라. 디렉터리가 이미 존재한다면 NEW 옵션은 적용되지 않을 것이다.

     

    영향 : CD DIR옵션은 상호 배타적이다. 만약 양쪽 모두가 지정되면, SFTP CD옵션을 적용하지 않고, 로그에 정보성 note 작성한다.
    Tip : 디렉토리 생성을 원하면 DIR옵션과 함께 NEW옵션을 이용하라. 디렉토리가 이미 존재한다면 NEW 옵션은 적용되지 않을 것이다.
    Tip : NEW 옵션을 생략하고, 존재하지 않은 디렉토리를 지정하면, 새로운 디렉토리는 생성되지 않고 에러 메시지가 생성 것이다.

     

    (5) HOST=’host’

         ‘host’는 OpenSSH SSHD 서버가 실행 중인 원격 호스트의 네트워크 이름을 지정한다. Host의 이름(예, server.pc.mydomain.com) 또는 컴퓨터의 IP주소(예, 2001:db8: :) 중 하나의 형태를 지정할 수 있다.

     

    (6) LRECL=lrecl

         데이터의 논리 레코드 길이를 지정한다.

     

    기본값 : 256
    영향 : 대안으로, LRECL=시스템 옵션을 사용하여 전역 논리 레코드 길이를 지정 있다.

     

    (7) LS

         SFTP 서버에 LS 명령어를 발행한다. LS 명령어는 파일 특성을 제외한 작업 디렉터리의 항목을 레코드로 반환하여 작성한다. 파일의 일부 목록을 반환하기 위하여, LS에 추가적으로 LSFILE=옵션을 함께 사용하라.

     

    제한사항 : LS옵션은 선행 마침표를 제외하고 파일을 표시 것이다. (: .xAuthority -> xAuthority)
    영향 : LS LSA옵션은 상호 배타적이다. 만약 옵션이 함께 지정되면, LSA옵션이 우선한다.
    Tip : 파일의 일부 목록을 반환하기 위하여, LS 추가적으로 LSFILE=옵션을 사용하라.

     

    (8) LSA

         SFTP 서버에 LS 명령어를 발행한다. LSA 명령어는 파일 특성을 제외한 작업 디렉터리의 모든 항목을 레코드로 반환하여 작성한다. 파일의 일부 목록을 반환하기 위하여, LSA에 추가적으로 LSFILE=옵션을 함께 사용하라.

     

    영향 : LS LSA옵션은 상호 배타적이다. 만약 옵션이 함께 지정되면, LSA옵션이 우선한다.
    영향 : 선행 마침표 없이 파일을 표시하기 위하여 (: .xAuthority) LS=옵션을 사용하라.
    Tip : 파일의 일부 목록을 반환하기 위하여, LSA 추가적으로 LSFILE=옵션을 사용하라.

     

    (9) LSFILES=’character-string’

         LS 또는 LSA 옵션을 함께 지정하여서 작업 디렉터리에서 파일의 일부 목록을 요청하기 위하여 사용되는 문자열을 지정한다. ‘character-string’에는 와일드카드 문자를 함께 지정할 수 있다.

     

    제한사항 : LSFILES= LS 또는 LSA 지정되어 있을 경우에 사용된다.
    Tip : ‘character-string’ 일부로 와일드카드 문자를 지정 있다.
    예제 : 다음 예제는 sales 시작하고 확장자 sas 끝나는 모든 파일 목록을 나열한다.
    filename myfile sftp '' ls lsfile='sales*.sas' other-sftp-options;

     

    (10) MGET

         SFTP 명령어인 MGET과 유사하게 다중 파일을 전송한다. 전송되는 전체 파일을 하나의 파일로 취급한다. 그러나 개별 파일이 새롭게 전송 작업을 시작할 때에 EOV= 변수는 1로 설정된다. 

     

    Tip : 전송하기 위한 전체 파일을 하나의 파일로 취급한다. 그러나, 개별 파일이 새롭게 전송 작업을 시작 때에 EOV= 변수는 1 설정된다.

     

    (11) NEW

         DIR 옵션을 사용하는 경우 SFTP에 디렉터리를 생성하도록 지시한다.

     

    제한사항 : NEW옵션은 z/OS에서 활용되지 않는다.
    Tip : 디렉토리가 존재한다면 NEW옵션은 적용되지 않을 것이다.

     

    (12) OPTION=

         Port 번호와 같은 SFTP 설정 옵션을 지정한다.

     

    (13) PATH

         PATH 또는 $PATH검색 경로가 할당되지 않았으면, SFTP 실행 위치를 지정한다.

     

    Tip : OpenSSH SFTP 실행 또는 PUTTY PSFTP 실행은 PATH 또는 $PATH 검색 경로를 통하여 접근되는 디렉토리에 설치되는 것이 좋다.

     

    (14) RECFM=recfm

         Recfm은 다음 2가지 레코드 형식 중의 하나를 지정할 수 있다.

     

    • F : 고정 레코드 형식이다. 모든 레코드의 크기는 라인 구분자를 포함하지 않은 LRECL 크기이다.
    • V : V는 기본적으로 가변 레코드 형식(variable-record format)이다. 이 형식에서 레코드는 다양한 길이를 가지며, 줄 바꿈 표시에 의해 구분된다. 데이터는 이미지 (binary) 모드로 전송된다.
    기본값 : 256

    5) USER=’username’

      사용자 이름을 지정한다.

    필요사항 : Username 윈도우 host PUTTY client에서 필요하다.
    Tip : 일반적으로 공개키 인증을 사용 경우에 LINUX 또는 UNIX host에서 username 요구되지 않는다.

     

    6) WAIT_MILLISECONDS=milliseconds

      SFTP 응답 시간을 MS(0.001) 초 단위로 지정하라.

     

    기본값 : 1,000 milliseconds
    Tip : 로그에 timeout 메시지가 출력되면, 반응 시간을 증가시키기 위해 WAIT_MILLISECONDS 사용하라.

     

    3. 범 주

    SAS 기본 구문 (데이터 접근)

     

    4. 상세 설명

    기본사항

    Secure File Transfer Protocol(SFTP) 네트워크 상에서 2개의 host(client 서버)사이의 보안 연결과 보안 파일 전송을 제공한다. 명령어와 데이터 모두 암호화된다. 클라이언트 컴퓨터와 원격호스트(remote host , OpenSSH SSHD 서버) 연결을 시작한다.

     

    SFTP 접근 방법을 사용하여 OpenSSH SSHD 서버가 실행중인 네트워크상에서 연결 있는 host 컴퓨터에서 파일을 읽고 있다. Client 서버 application 동일 컴퓨터 또는 네트워크로 연결 있는 다른 컴퓨터에 상주 있다.

     

    구체적으로 실행되는 세부사항은 OpenSSH SSHD 서버 버전과 사이트가 설정되는 방법에 따라 달라진다.

     

    SFTP 접근 방법을 사용하기 위하여 해당되는 client 소프트웨어를 설치해야 한다. SFTP 접근 방법은 다음 SSH client 지원한다.

    • OpenSSH-UNIX
    • PUTTY-windows

     

    참고 : SFTP 접근 방법에 대한 비밀번호 유효성 검사가 지원되지 않는다.
    참고 : SSH agent 사용한 공개키 인증은 remote SSHD 서버에 연결을 위하여 추천되는 방법이다.

     

    SFTP 접근 방법과 SFTP Prompts

    SFTP접근 방법은 다음의 promprts 지원한다. 프롬프트에 대한 변경은 SFTP 접근 방법을 비활성화 것이다.

    • OpenSSH:

    sftp>

    sftp >

     

    • PUTTY:

    psftp>

     

    5. 비교 사항

    • SFTP의 get과 put 명령어처럼, SFTP 접근 방법을 사용하면 파일 다운로드와 업로드가 가능하다. 그러나, 이 방법은 시스템에 먼저 파일을 저장하지 않고, SAS 세션으로 직접 파일을 읽는다.

     


    6. 관련 구문

    구문명 구문 내용
    FILENAME 구문 SAS 파일 참조자(fileref)를 외부 파일 또는 출력 장치와 연결한다. 이와 반대로 파일 참조자(Fileref)와 외부 파일의 관계를 해제할 수 있으며, 외부 파일 속성을 출력할 수 있다.
    FILENAME 구문, CATALOG 접근 방법 SAS 파일참조자(fileref)가 SAS 카탈로그를 참조하도록 지정한다. 외부 파일에 접근하는 방식과 유사하게 SAS 명령어, SAS 문장, 프로시져를 사용하여 SAS 카탈로그에 접근할 수 있다. 이 접근 방법은 SAS 카탈로그에 존재하는 자동 호출 매크로를 직접 호출할 수 있다.
    FILENAME 구문, CLIPBOARD 접근 방법
    HOST 컴퓨터의 클립보드에서 데이터를 읽고, 반대로 클립보드에 데이터를 작성한다. 동일하게 마우스를 사용하여서 탐색기의 Pop-up 메뉴에서 “클립보드에 복사”(Copy contents to Clipboard)를 사용하여 데이터를 클립보드에 복사할 수 있다.(Ctrl+C / Ctrl+V)
    FILENAME 구문, EMAIL(SMTP) 접근 방법 간이 전자 이메일 전송 프로토콜(Simple Mail Transfer Protocol, SMTP) 인터페이스를 사용하여 SAS 프로그래밍 구문에서 전자 메일을 전송한다.
    FILENAME 구문, FTP 접근 방법 FTP 프로토콜(protocol)을 사용하여 원격(remote) 파일에 접근하여서 파일 다운로드와 업로드 작업을 수행할 수 있다.
    FILENAME 구문, SOCKET 접근 방법  
    FILENAME 구문, SFTP 접근 방법 SFTP 프로토콜을 사용하여 원격(remote) 파일에 접근하여서 파일 다운로드와 업로드 작업을 수행할 수 있다. 
    FILENAME 구문, URL 접근 방법 URL 접근 방법을 사용하여 원격(remote) 파일에 접근하여 작업을 수행할 수 있다.
    LIBNAME 구문 SAS 라이브러리에 라이브러리 참조자(libref-단축이름)를 할당하거나 해제한다.

     


    7. 예 제

     

    예제1 : 표준 port SSHD 서버 연결

    다음 예제는 표준 port SSHD 서버에 연결한 후에 SFTP 접근 방법을 사용하여 test.dat 파일을 읽는다.

    SAS Statements
    filename myfile sftp '/users/xxxx/test.dat' host="unixhost1";
     
    data _null_;
       infile myfile truncover;
       input a $25.;
    run;

     

    예제2 : 비표준 port SSHD 서버 연결

    다음 예제는 4117 port SSHD서버에 연결한 후에 SFTP 접근 방법을 사용하여 test.dat 파일을 읽는다.

    SAS Statements
    filename myfile sftp '/users/xxxx/test.dat' host="unixhost1" options="-oPort=4117";
     
    data _null_;
       infile myfile truncover;
       input a $25.;;
    run;

     

    예제3 : 윈도우 PUTTY Client SSHD 서버에 연결하기

    다음 예제는 사용자 ID userid”를 적용하여 SSHD 서버에 윈도우 PUTTY client 연결한 후에 SFTP 접근 방법으로 사용하여 test.dat 파일을 작성한다.

    SAS Statements
    filename outfile sftp '/users/xxxx/test.dat' host="unixhost1" user="userid";
     
    data _null_;
       file outfile;
       do i=1 to 10;
          put i=;
       end;
    run;

     

    예제4 : Remote host의 디렉토리에서 파일 읽기

    다음 예제는 remote host 디렉토리에서 test.dat test2.dat 파일을 읽는다.

    SAS Statements
    filename infile sftp '/users/xxxx/' host="unixhost1" dir;
     
    data _null_;
       infile infile(test.dat) truncover;
       input a $25.;
     
       infile infile(test2.dat) truncover;
       input b $25.;
    run;

     

    예제5 : 배치 파일 사용하기

    다음 예제에서, INFILE 구문이 처리되는 시점에 FILENAME SFTP 구문에서 지정된 배치 파일 sftcmds 실행한다.

    SAS Statements
    filename process sftp ' ' host="unixhost1" user="userid"
       batchfile="c:/stfpdir/sftpcmds.bat";
     
    data _null_;
       infile process;
    run;

     


     

     


    [SAS Statement] SAS 데이터 스텝 구문 사전 목록]

     

    SAS 함수(SAS Function) 리스트 링크
    반응형

    댓글