본문 바로가기
일하는 중에

FTP 프로그램 테스트를 위해 만들어 본 파일 생성용 쉘스크립트

by likebnb 2011. 1. 14.

근래에 자바 애플릿 기반의 FTP 프로그램을 만들어서 사이트에 배포한 일이 있다.

처음에 배포했을 당시엔 드러나지 않던 문제가 보고되었는데 다름 아닌 2GB 이상의 큰 파일들을 전송하는 중에
Progress Bar가 정상적으로 동작하질 않는다는 것이다.

원인은 Data Type의 문제였다.
현재 전송중인 파일의 전송된 크기를 알려주는 변수를 long 타입으로 선언한 것이다.
이를 Long 타입으로 바로 잡아주니 문제는 해결되었다.

원인 파악과 수정 후 테스트를 진행하는 과정에서 생겨난 부산물이 하나 있으니
그것이 바로 오늘의 주제인 대용량 파일 생성용 쉘스크립트이다.

다음은 이 스크립트의 전문이다. 아주 간단한 뿐만 아니라 특별하게 어려운 내용도 없다.
다만 주목할 부분은 GB 단위의 파일을 만들기 위해 연산을 수행하는 부분과

((COUNT=$2 * 1024 * 1024))


실제 파일을 생성해 주기 위해 사용한 dd 명령어 부분이다.

dd if=/dev/zero of=$FILE bs=1k count=$COUNT

 

#----------------------------------------
# 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