근래에 자바 애플릿 기반의 FTP 프로그램을 만들어서 사이트에 배포한 일이 있다.
처음에 배포했을 당시엔 드러나지 않던 문제가 보고되었는데 다름 아닌 2GB 이상의 큰 파일들을 전송하는 중에
Progress Bar가 정상적으로 동작하질 않는다는 것이다.
원인은 Data Type의 문제였다.
현재 전송중인 파일의 전송된 크기를 알려주는 변수를 long 타입으로 선언한 것이다.
이를 Long 타입으로 바로 잡아주니 문제는 해결되었다.
원인 파악과 수정 후 테스트를 진행하는 과정에서 생겨난 부산물이 하나 있으니
그것이 바로 오늘의 주제인 대용량 파일 생성용 쉘스크립트이다.
다음은 이 스크립트의 전문이다. 아주 간단한 뿐만 아니라 특별하게 어려운 내용도 없다.
다만 주목할 부분은 GB 단위의 파일을 만들기 위해 연산을 수행하는 부분과
실제 파일을 생성해 주기 위해 사용한 dd 명령어 부분이다.
# Script Name makeFile.sh
# Author Barnabas Kim(likebnb@gmail.com)
# Created Date 2011-01-14
# Usage ./makeFile.sh filename size(GB)
#-----------------------------------------
#!/bin/bash
# 입력 파라미터 체크, 순서 중요
if [ $# -ne "2" ] # should check for no arguments
then
echo "usage : ./makeFile.sh filename size(GB)"
exit
fi
if [ $2 -lt "1" ] # should check for no arguments
then
echo "Error : 파일크기는 1GB 이상이어야 합니다."
exit
fi
export FILE=$1
export SIZE=$2
((COUNT=$2 * 1024 * 1024))
dd if=/dev/zero of=$FILE bs=1k count=$COUNT
'일하는 중에' 카테고리의 다른 글
오라클의 Materialized View 이야기 - 1) 구체화된 뷰의 두 가지 쓰임새 (0) | 2012.12.23 |
---|---|
어느날 갑자기 페러렐즈에서 네트웍 카드가 없단다 (0) | 2011.10.02 |
ftp 로그인이 실패, user account name access denied login failed (1) | 2010.10.14 |
아이폰 iOS 4.1로 업글하고, 내 멋대로 꾸미기 (0) | 2010.10.10 |
심볼릭 링크 때문에 디렉토리 삭제가 안될 때는 too many levels of symbolic link (0) | 2010.10.08 |