커맨드라인 툴
본 장에서는 커맨드라인 툴 TBASCMD를 사용하여 디스크 스페이스에 저장된 파일을 조회하고 관리하는 방법을 설명합니다.
개요
TBASCMD는 사용자가 간단한 명령어를 통해서 디스크 스페이스의 정보를 조회하고 디스크 스페이스에 저장된 파일을 조회 및 관리할 수 있도록 해줍니다. 또한 로컬 디렉터리에 있는 파일을 디스크 스페이스에 저장하거나 디스크 스페이스에 있는 파일을 로컬 디렉터리에 저장할 수 있도록 해줍니다. 사용자가 명령어를 입력하면 TBASCMD는 TAS 인스턴스에 접속하여 필요한 정보 및 작업을 요청하게 됩니다.
TBASCMD 실행
TBASCMD를 실행할 때에 정보 및 작업을 요청할 TAS 인스턴스에 대한 접속 정보를 다음과 같이 인자로 지정하면 됩니다.
[예 1] TBASCMD 실행 인자
tbascmd (-p) {port}
tbascmd (-p) {port} -c "{cmd}"
$ tbascmd 52000
ASCMD 7
TmaxData Corporation Copyright (c) 2008-. All rights reserved.
ASCMD>
TBASCMD는 입력한 포트 번호로 로컬의 TAS 인스턴스에 접속하게 됩니다. 포트 정보는 필수적으로 입력 해주어야 합니다. 커맨드라인 툴을 실행하기 전에 접속할 TAS 인스턴스가 부팅되어 있어야 합니다.
또한 하나의 명령어만 수행하고 TBASCMD를 종료하고자 할 경우 -c "{cmd}" 옵션을 추가하여 TBASCMD 실행과 동시에 명령어를 수행하고 즉시 종료할 수 있으며, 이 때 명령어는 큰따옴표(" ") 또는 작은따옴표 (' ') 로 감싸서 입력해야 합니다.
TBASCMD 명령어
TBASCMD를 통해 사용할 수 있는 명령어는 다음과 같습니다.
cd
현재 경로를 변경한다.
du
현재 경로에 존재하는 파일들이 차지하는 디스크 공간의 크기를 보여주거나 디스크 스페이스들의 용량을 조회한다.
exit
TBASCMD를 종료한다.
help
명령어들에 대한 도움말을 조회한다.
ls
현재 경로에 있는 모든파일의 목록을 보여주거나 디스크 스페이스의 목록을 조회한다.
lsds
디스크 스페이스들에 대한 정보를 조회한다.
pwd
현재 경로를 조회한다.
rm
TAS 파일을 제거한다.
cp
TAS 파일을 복사하여 새로운 TAS 파일을 생성한다.
cpfromlocal
로컬 경로의 파일을 복사하여 TAS 파일을 생성한다.
cptolocal
TAS 파일을 복사하여 로컬 파일을 생성한다.
mkdir
디렉터리를 생성한다.
mv
TAS 파일을 이동시킨다.
check
TAS 파일에 대한 정합성 검사를 실시한다.
명령어에 파일이름이나 경로를 인수로 입력하는 경우에 그 경로를 절대 경로나 상대 경로로 입력할 수 있습니다.
절대 경로
절대 경로는 경로명 전체를 의미하며 다음과 같이 '+'로 시작하고 디스크 스페이스 이름과 디스크 스페이스 내에서의 경로가 명시됩니다.
current path = +DS0
ASCMD> cd +DS0/d1/sample
current path = +DS0/d1/sample
상대 경로
상대 경로는 입력할 전체 경로명 중에서 현재 경로로 지정되지 않은 나머지 경로를 의미하는 것으로, 결과적으로 상대 경로는 다음과 같이 현재 경로와 조합되어 명령어 실행에 사용됩니다.
current path = +DS0
ASCMD> cd d1/sample
current path = +DS0/d1/sample
상대 경로를 사용하는 경우에 다음의 심볼을 사용할 수 있습니다.
"."
현재 경로를 나타낸다.
".."
상위 경로(경로명에서 마지막 '/' 또는 현재 경로가 디스크 스페이스라면 최상위 경로 인 '+')를 나타낸다.
다음과 같이 "."과 ".."뒤에 추가 경로를 입력해줄 수 있습니다.
current path = +DS0/d1
ASCMD> cd ./sample
current path = +DS0/d1/sample
ASCMD> cd ../example
current path = +DS0/d1/example
cd
cd 명령어를 통해 현재 경로를 변경할 수 있습니다.
명령어의 세부 내용은 다음과 같습니다.
사용법
cd {path}
path
절대 경로 및 상대 경로로 입력될 수 있으며 존재하는 경로라면 입력한 경로로 현재 경로가 변경된다.
du
du 명령어를 사용하여 지정한 경로에 존재하는 파일 또는 디렉터리가 차지하는 디스크 공간의 크기를 조회할 수 있습니다. 최상위 경로(+)에 대해 명령어를 실행하면 디스크 스페이스들의 용량과 남은 용량을 조회합니다.
명령어의 세부 내용은 다음과 같습니다.
사용법
du [-a] [path]
-a
-a 옵션을 사용하는 경우 지정한 경로 뿐만 아니라 하위 디렉터리의 모든 파일에 대해 크기를 조회한다.
path
path는 필수적으로 입력될 필요는 없다. path를 입력하지 않는다면 현재 경로에 대해서 명령어가 수행된다.
예제
du 명령어는 해당 경로에 있는 파일들의 크기를 보여줄 뿐만 아니라 미러링된 파일들을 고려한 크기도 조회합니다.
다음 예제에 나타나는 mirror used mb가 이와 같이 mirroring을 고려한 파일 크기입니다.
current path = +DS0/d0
ASCMD> du
File_name Used_mb Mirror used mb
f5.txt 12 24
f6.txt 2 4
f8.txt 9 18
Total mb 23 46
current path = +
ASCMD> du
diskspace name Total_mb Free_mb
DS0 3069 286
diskspace name Total_mb Free_mb
DS1 3069 2782
diskspace name Total_mb Free_mb
DS2 3069 2720
exit
exit 명령어를 입력하면 프로그램이 종료됩니다.
명령어의 세부 내용은 다음과 같습니다.
사용법
exit
help
help 명령어를 입력하면 사용할 수 있는 모든 명령어들에 대한 도움말이 출력됩니다.
명령어의 세부 내용은 다음과 같습니다.
사용법
help
ls
ls 명령어를 사용하여 지정한 경로의 파일들의 목록을 조회할 수 있습니다. 최상위 경로(+)에 대해 명령어를 실행하면 디스크 스페이스들의 목록을 조회합니다.
명령어의 세부 내용은 다음과 같습니다.
사용법
ls [-a] [-s] [-l] [path]
-a
-a 옵션을 사용하는 경우 지정한 경로 뿐만 아니라 하위 디렉터리의 모든 파일 목록을 조회 한다.
-s, --size
-s 옵션을 사용하는 경우 지정한 경로 뿐만 아니라 파일의 크기 정보를 조회한다.
-l, --long
-l 옵션을 사용하는 경우 지정한 경로 뿐만 아니라 파일의 상세 정보를 조회한다.
path
path를 입력하지 않는다면 현재 경로에 대해서 명령어가 수행된다.
예제
다음은 ls 파일 목록 예제입니다.
current path = +DS0/d0
ASCMD> ls
File_name
f5.txt
f6.txt
f8.txt
다음은 ls 디스크 스페이스 목록 예제입니다.
current path = +
ASCMD> ls
DS0
DS1
DS2
lsds
디스크 스페이스들의 목록과 그 정보를 조회합니다.
명령어의 세부 내용은 다음과 같습니다.
사용법
lsds
예제
다음 예제와 같이 디스크 스페이스들의 번호, 이름, 상태, 중복 레벨, 섹터 사이즈, 메타 블록 크기, 디스크 할당 단위의 크기, 총 용량, 여유 용량을 조회합니다.
ASCMD> lsds
===============================================================
Diskspace no. Diskspace name
0 DS0
Status Redun_type
MOUNT NORMAL
Sector_size Meta_blksize au_size
512 8192 1048576
Total_mb Free_mb
3069 286
===============================================================
Diskspace no. Diskspace name
1 DS1
Status Redun_type
MOUNT NORMAL
Sector_size Meta_blksize au_size
512 8192 1048576
Total_mb Free_mb
3069 2782
===============================================================
...
pwd
현재 경로를 조회합니다.
명령어의 세부 내용은 다음과 같습니다.
사용법
pwd
예제
ASCMD> pwd
current path: +DS0/d0
rm
rm 명령어를 사용하면 TAS 파일을 제거할 수 있습니다.
명령어의 세부 내용은 다음과 같습니다.
사용법
rm [-f] [-r] [-v] {files}
-f, --force
-f 옵션을 사용하는 경우 존재하지 않는 파일을 무시하고 에러 메시지를 표시하지 않는다.
-r, --recursive
-r 옵션을 사용하는 경우 디렉터리를 제거할 수 있다.
-v, --verbose
-v 옵션을 사용하는 경우 작업 결과를 출력해준다.
files
files는 상대 경로 및 절대 경로로 지정할 수 있으며 여러 파일의 이름을 입력하면 여러 파일을 동시에 제거할 수 있다.
예제
current path = +DS0/d0
ASCMD> ls
File_name
f5.txt
f6.txt
f8.txt
ASCMD> rm f5.txt
rm complete: +DS0/d0/f5.txt
ASCMD> ls
File_name1
f6.txt
f8.txt
DB가 기동 중인 상황에서는 .arc 파일을 제외하고 오류가 발생합니다.
ASCMD> rm c1.ctl
ERROR: no such path '+DS0/c1.ctl'
ERROR: rm terminated with error: Invalid argument
ASCMD> rm test001.dtf
ERROR: no such path '+DS0/test001.dtf'
ERROR: rm terminated with error: Invalid argument
ASCMD> rm +DS0/.passwd
ERROR: no such path '+DS0/.passwd'
ERROR: rm terminated with error: Invalid argument
ASCMD> rm log-t0-r0-r1.arc
rm complete: +DS0/archive/log-t0-r0-r1.arc
cp, cpfromlocal, cptolocal
cp 명령어를 사용하면 TAS 파일을 복사하여 새로운 TAS 파일을 생성할 수 있으며 cpfromlocal 명령어를 사용하면 로컬 파일을 복사하여 TAS 파일을 생성할 수 있습니다.
cptolocal 명령어를 사용하면 TAS 파일을 로컬 파일로 복사할 수 있습니다. 생성할 파일명이 이미 존재한다면 복사를 수행을 하지않고 오류 메시지를 출력합니다.
명령어의 세부 내용은 다음과 같습니다.
사용법
cp {infile} {outfile} [-redun] [redun_no]
cpfromlocal {infile} {outfile} [-t] [file_type]
cptolocal {infile} {outfile} [-redun] [redun_no]
infile, outfile
infile과 outfile은 절대 경로와 상대 경로로 지정해 줄 수 있다. infile로 지정한 file을 복사하여 outfile을 생성한다. 또한 복사한 용량, 소요시간, 속도를 출력한다.
-redun redun_no
대상 파일의 미러링 복사본 중 하나를 특정하여 복사하고자 할 때 사용한다. re dun_no 번호에 해당하는 미러링 복사본을 복사하게 되며, redun_no는 대상 파일 의 중복 레벨에 따라 0~2 사이의 값을 가질 수 있다.
-t file_type
파일이 TAS 상에서 어떤 파일 타입을 가질 것인지 결정하는 옵션이다. (“4.1.6. V$AS_FILE” 참고)
-r, --recursive
-r 옵션을 사용하는 경우 디렉터리를 복사할 수 있다.
-v, --verbose
-v 옵션을 사용하는 경우 작업 결과를 출력해준다.
-b, --blksize
-b 옵션을 사용하는 경우 파일의 블록 크기를 정해준다.
--bs BYTES
입/출력 블록 사이즈의 크기를 설정하며 한번에 <BYTES> 만큼 읽고 쓰며 ibs, obs
설정을 덮어쓴다.
--ibs BYTES
infile 입/출력 블록 크기를 설정하며 한번에 <BYTES> 만큼 infile 에서 읽어온다.
--obs BYTES
outfile 입/출력 블록 크기를 설정하며 한번에 <BYTES> 만큼 outfile 에 쓴다.
--count N
<N> 개의 블록만 복사한다.
--skip N
infile의 <N> 번째 블록부터 읽기를 시작한다.
--seek N
outfile의 <N> 번째 블록부터 쓰기를 시작한다.
예제
current path = +DS0/d0
ASCMD> du
File_name Used_mb Mirror used mb
f6.txt 2 4
f8.txt 9 18
Total mb 11 22
ASCMD> cp f6.txt f5.txt
2097152 bytes (2.00 MB) copied, 0.079874 s, 26.255753 MB/s
ASCMD> du
File_name Used_mb Mirror used mb
f5.txt 2 4
f6.txt 2 4
f8.txt 9 18
Total mb 13 26
mkdir
mkdir 명령어를 이용하면 디렉터리를 생성할 수 있습니다.
명령어의 세부 내용은 다음과 같습니다.
사용법
mkdir [-f] {dirname}
dirname
dirname에 해당하는 디렉터리를 생성한다.
-f, --force
-f 옵션을 사용하는 경우 존재하는 디렉터리를 무시하고 에러 메시지를 표시하지 않는다.
예제
current path = +DS0
<File_name>
c1.ctl
log0001.log
log0002.log
log0003.log
log0004.log
log0005.log
log0006.log
ASCMD> mkdir fd1
ASCMD> ls
<File_name>
c1.ctl
log0001.log
log0002.log
log0003.log
log0004.log
log0005.log
log0006.log
fd1/
mv
mv 명령어를 이용하면 파일을 이동시킬 수 있습니다.
명령어의 세부 내용은 다음과 같습니다.
사용법
mv [-v] {src_file} {dest_file}
-v
-v 옵션을 사용하는 경우 작업 결과를 출력해준다.
src_file, dest_file
src_file과 dest_file은 절대 경로와 상대 경로로 지정해 줄 수 있다.
src_file로 지정 한 file을 dest_file로 변경한다.
예제
ASCMD +DS0/test> ls test.dtf
- Number of files found: 1
ASCMD +DS0/test> mv test.dtf mv_test.dtf
Moving file: +DS0/test/test.dtf -> +DS0/test/mv_test.dtf ASCMD +DS0/test> ls
mv_test.dtf
- Number of files found: 1
check
check 명령어를 이용하면 사용자가 알고 있는 TAS 파일 정보에 대해 정합성 검사를할 수 있습니다.
명령어의 세부 내용은 다음과 같습니다.
사용법
check [--ds_no] [ds_no] [--file_no] [file_no] [--blksize] [blksize] [-size] [size]
{filename}
--ds_no
사용자가 알고 있는 디스크 스페이스 번호를 입력한다.
--file_no
사용자가 알고 있는 파일 번호를 입력한다.
--blksize
사용자가 알고 있는 블록 크기를 입력한다.
--size
사용자가 알고 있는 파일 크기를 입력한다.
filename
절대 경로 및 상대 경로로 입력할 수 있으며 검사하고자 하는 파일 이름을 입력한 다.
예제
ASCMD +DS0> check log0001.log
FILE INFO (SIZE = BYTES)
DS_NO FILE_NO BLOCK_SIZE SIZE FILE_NAME
0 257 512 20971520 +DS0/log0001.log
file '+DS0/log0001.log' is consistent!
ASCMD +DS0> check --ds_no 0 --file_no 257 --blksize 512 --size 20971520 log0001.log
FILE INFO (SIZE = BYTES)
DS_NO FILE_NO BLOCK_SIZE SIZE FILE_NAME
0 257 512 20971520 +DS0/log0001.log
file '+DS0/log0001.log' is consistent!
TBASCMD 에러코드
다음은 TBASCMD를 사용하는 도중에 발생할 수 있는 에러에 대한 원인과 해결 방법에 대한 설명입니다.
ERROR CODE -1: invalid tas port number
원인
포트 번호로 0이나 음수 또는 숫자가 아닌 문자열이 입력된 경우이다.
해결 방법
포트 번호를 확인한다.
ERROR CODE -2: more arguments needed
원인
tbascmd를 실행하는 경우 argument가 하나도 입력되지 않았을 경우이다.
해결 방법
포트 번호를 확인한다.
ERROR CODE -3: invalid argument
원인
tbascmd를 실행하는 경우 올바르지 않은 argument가 입력된 경우이다.
해결 방법
올바른 argument를 입력한다.
ERROR CODE -4: connection failed
원인
포트 번호를 통해 TAS 인스턴스와 연결하는데 실패했을 경우이다.
해결 방법
포트 번호 또는 TAS 인스턴스가 실행되어 있는지 확인한다.
ERROR CODE -5: invalid command "INPUT CMD"
원인
유효하지 않은 tbascmd 명령어가 입력된 경우이다.
해결 방법
유효한 tbascmd 명령어를 입력한다.
ERROR CODE -6: length of command cannot exceed "ASCMD_CMD_LEN_MAX"
원인
입력한 tbascmd 명령어가 길이 제한을 초과한 경우이다.
해결 방법
2048 글자 이하의 tbascmd 명령어를 입력한다.
ERROR CODE -7: invalid option "INPUT OPTION" for command "INPUT CMD"
원인
입력한 tbascmd 명령어와 옵션이 서로 맞지 않은 경우이다.
해결 방법
tbascmd 명령어와 옵션을 확인한다.
ERROR CODE -8: invalid option "INPUT OPTION"
원인
tbascmd에서 정의되어있지 않은 옵션을 사용한 경우이다.
해결 방법
tbascmd에 정의된 옵션을 입력한다.
ERROR CODE -9: blksize cannot exceed "ASCMD_BLOCK_SIZE_MAX"
원인
cpfromlocal 명령어의 옵션으로 입력한 block size가 최대값을 초과한 경우이다.
해결 방법
32KB이하의 ASCMD_BLOCK_SIZE를 입력한다.
ERROR CODE -10: invalid file type "INPUT FILE TYPE" valid types [data, redo, ctrl, temp, arch]
원인
cpfromlocal 명령어의 옵션으로 지정한 파일 타입이 tbascmd에 정의되어있는 타입에 해당하지 않는 경우이다.
해결 방법
명령어의 옵션으로 지정한 파일 타입이 정의된 파일 타입인지 확인한다.
ERROR CODE -12: too many arguments for command "INPUT CMD"
원인
tbascmd 명령어의 argument가 요구사항보다 많이 입력된 경우이다.
해결 방법
해당 tbascmd 명령어 사용법을 확인한다.
ERROR CODE -13: need more arguments for command "INPUT CMD"
원인
tbascmd 명령어의 argument가 요구사항보다 적게 입력된 경우이다.
해결 방법
해당 tbascmd 명령어 사용법을 확인한다.
ERROR CODE -14: invalid argument "INPUT ARG" for command "INPUT CMD"
원인
argument가 필요없는 명령어에 argument를 전달했을 경우이다.
해결 방법
해당 tbascmd 명령어 사용법을 확인한다.
ERROR CODE -15: cannot parse NULL path
원인
파일 경로로 NULL값이 전달된 경우이다.
해결 방법
NULL이 아닌 파일 경로를 입력한다.
ERROR CODE -16: length of path must be less than "ASCMD_PATH_LEN_MAX"
원인
파일 경로의 길이가 제한 길이를 초과한 경우이다.
해결 방법
256 글자 이하의 파일 경로를 입력한다.
ERROR CODE -18: path "INPUT PATH" has invalid form
원인
파일 경로의 형식이 올바르지 않은 경우이다.
해결 방법
올바른 파일 경로 형식을 입력한다.
ERROR CODE -19: no such path
원인
입력한 파일 또는 경로가 존재하지 않는 경우이다.
해결 방법
존재하는 파일 경로를 입력한다.
ERROR CODE -20: length of diskspace name must be less than "ASCMD_DS_NAME_LEN_MAX"
원인
디스크 스페이스의 이름이 제한 길이를 초과한 경우이다.
해결 방법
48 글자 이하의 디스크 스페이스 이름을 입력한다.
ERROR CODE -22: no such diskspace "INPUT DS NAME"
원인
경로에 포함된 디스크 스페이스를 찾지 못한 경우이다.
해결 방법
해당 경로에 디스크 스페이스를 생성하거나, 디스크 스페이스가 존재하는 path를 입력한다.
ERROR CODE -23: no diskspace found
원인
디스크 스페이스가 하나도 존재하지 않는 경우이다.
해결 방법
디스크 스페이스를 생성한다.
ERROR CODE -24: length of file name must be less than "ASCMD_FILE_NAME_LEN_MAX"
원인
파일명이 제한 길이를 초과한 경우이다.
해결 방법
48 글자 이하의 파일명을 입력한다.
ERROR CODE -25: invalid filename ‘FILENAME’
원인
파일명으로 올바르지 않은 문자열이 전달된 경우이다.
해결 방법
올바른 파일명을 확인한다.
ERROR CODE -26: file 'FILENAME' already exists
원인
cp 명령어를 수행하는 경우 대상 파일과 같은 이름의 파일이 이미 존재할 경우이 다.
해결 방법
같은 이름의 파일이 이미 존재하므로, 다른 파일명을 입력한다.
ERROR CODE -27: length of directory path must be less than "ASCMD_PATH_LEN_MAX"
원인
입력한 경로의 길이가 제한 길이를 초과한 경우이다.
해결 방법
255 글자 이하의 경로를 입력한다.
ERROR CODE -29: cannot use directory with cp command
원인
cp 명령어를 수행할 때 두 파일명 중 하나 이상이 디렉터리 경로가 들어온 경우이 다.
해결 방법
올바른 파일 경로나 파일명인지 확인한다.
ERROR CODE -30: cannot alloc memory
원인
파일 복사에 사용할 버퍼의 메모리 할당에 실패한 경우이다.
해결 방법
기술지원을 통한 연구소 분석을 요청한다.
ERROR CODE -31: asfd_pread failed
원인
cp 명령어 수행 중 파일 읽기에 실패한 경우이다.
해결 방법
올바른 파일 경로나 파일명인지 확인하거나 경로와 파일명의 권한 설정을 확인한 다.
ERROR CODE -32: asfd_pwrite failed
원인
cp 명령어 수행 중 파일 쓰기에 실패한 경우이다.
해결 방법
올바른 파일 경로나 파일명인지 확인하거나 경로와 파일명의 권한 설정을 확인한다.
ERROR CODE -33: file resize failed
원인
TAS가 파일의 alignment를 맞추기 위한 resize 작업을 수행하다가 실패한 경우이 다.
해결 방법
기술지원을 통한 연구소 분석을 요청한다.
ERROR CODE -35: file name is not entered ascmd is not allowed to remove diskspace
원인
rm 명령어의 argument로 입력한 경로에 파일명 없이 디스크 스페이스만 주어진 경우이다.
해결 방법
올바른 파일명을 입력한다. 만약, 디스크 스페이스를 지우고 싶다면 tbsql에서 DROP DISKSPACE 구문을 사용한다.
ERROR CODE -36: ascmd command should be given after -c, --cmd option
원인
tbascmd -c, --cmd 옵션 뒤에 명령어를 입력하지 않았을 경우이다.
해결 방법
tbascmd 명령어와 옵션을 확인한다.
ERROR CODE -37: cannot open file
원인
TAS가 cp 명령어 수행 과정에서 파일을 여는데 실패한 경우이다. 원인이 다양하여 특정할 수 없다.
해결 방법
기술지원을 통한 연구소 분석을 요청한다.
ERROR CODE -38: tas failed to get ds list
원인
TAS가 디스크 스페이스의 목록을 읽어오다가 실패한 경우이다.
해결 방법
기술지원을 통한 연구소 분석 필요
ERROR CODE -39: tas failed to get file info
원인
TAS가 file size, redun number 등의 파일 정보를 얻어오는데 실패한 경우이다.
해결 방법
기술지원을 통한 연구소 분석을 요청한다.
ERROR CODE -40: valid input should be given to option 'OPTION'
원인
cpfromlocal 명령어 뒤에 사용되는 -b, --blksize, -t, --type 등의 옵션 뒤에 올바르지 않은 값이 입력된 경우이다.
해결 방법
cpfromlocal 명령어의 사용법을 확인한다.
Last updated