#!/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"