52 lines
1.7 KiB
Bash
52 lines
1.7 KiB
Bash
#!/bin/bash
|
|
|
|
# 로컬 경로 지정
|
|
LOCAL_DIR="/home/saanghaa/aws/s3sync"
|
|
|
|
# S3 버킷 및 경로 지정
|
|
S3_BUCKET="metaverse-client-launch"
|
|
S3_DIR="s3sync"
|
|
|
|
# 디렉토리의 모든 파일을 찾습니다.
|
|
FILES=$(find ${LOCAL_DIR} -type f)
|
|
|
|
# 전송된 용량 및 전송 시간의 합계를 초기화합니다.
|
|
TOTAL_SIZE=0
|
|
TOTAL_TIME=0
|
|
|
|
# 각 파일을 개별적으로 전송합니다.
|
|
for FILE in $FILES
|
|
do
|
|
# 전송 시작 시간을 기록합니다.
|
|
START_TIME=$(date +%s)
|
|
|
|
# AWS CLI를 사용하여 파일을 S3로 전송합니다.
|
|
aws s3 cp ${FILE} s3://${S3_BUCKET}/${S3_DIR}/$(basename ${FILE})
|
|
|
|
# 전송 종료 시간을 기록합니다.
|
|
END_TIME=$(date +%s)
|
|
|
|
# 전송 시간을 계산합니다.
|
|
ELAPSED_TIME=$(($END_TIME - $START_TIME))
|
|
|
|
# 전송된 파일의 용량을 계산합니다 (바이트).
|
|
FILE_SIZE_BYTES=$(ls -al ${FILE} | awk '{print $5}')
|
|
|
|
# 파일 크기를 메가바이트로 변환합니다.
|
|
FILE_SIZE_MB=$(echo "scale=2; ${FILE_SIZE_BYTES}/1024/1024" | bc)
|
|
|
|
# 파일 이름, 전송 시간, 그리고 파일 크기를 출력합니다.
|
|
echo "파일 이름: $(basename ${FILE}), 파일 크기: ${FILE_SIZE_MB} MB, 전송 시간: ${ELAPSED_TIME} 초"
|
|
|
|
# 전송된 용량 및 전송 시간의 합계를 업데이트합니다.
|
|
TOTAL_SIZE=$(echo "scale=2; ${TOTAL_SIZE} + ${FILE_SIZE_MB}" | bc)
|
|
TOTAL_TIME=$((TOTAL_TIME + ELAPSED_TIME))
|
|
|
|
# 초당 전송 속도 계산
|
|
transfer_rate_per_second=$(echo "scale=2; $TOTAL_SIZE / $TOTAL_TIME * 1024" | bc)
|
|
done
|
|
|
|
# 전체 전송된 용량과 소요된 시간을 출력합니다.
|
|
echo "전체 전송된 용량: ${TOTAL_SIZE} MB, 전체 소요된 시간: ${TOTAL_TIME} 초"
|
|
echo "초당 전송 속도: $transfer_rate_per_second KB/s"
|