pbs_allinone.sh: 스토리지 선택 개선
- 복구 시 사용 가능한 스토리지 목록 자동 표시 - 스토리지 존재 여부 및 VM/CT 이미지 저장 가능 여부 검증 - 잘못된 스토리지 입력 시 재입력 요청 - 스토리지 용량 및 사용률 정보 표시 (GB 단위) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
269350c1d2
commit
1c6e6dcf56
@ -325,6 +325,32 @@ PYEOF
|
||||
return 0
|
||||
}
|
||||
|
||||
# 사용 가능한 스토리지 목록 표시
|
||||
list_available_storage() {
|
||||
echo ""
|
||||
log_step "사용 가능한 스토리지 목록"
|
||||
echo ""
|
||||
|
||||
# VM/CT 이미지를 저장할 수 있는 스토리지만 필터링
|
||||
pvesm status -content images,rootdir 2>/dev/null | tail -n +2 | while read -r line; do
|
||||
storage_name=$(echo "$line" | awk '{print $1}')
|
||||
storage_type=$(echo "$line" | awk '{print $2}')
|
||||
total_mb=$(echo "$line" | awk '{print $4}')
|
||||
used_mb=$(echo "$line" | awk '{print $5}')
|
||||
avail_mb=$(echo "$line" | awk '{print $6}')
|
||||
usage_pct=$(echo "$line" | awk '{print $7}')
|
||||
|
||||
# MB를 GB로 변환
|
||||
total_gb=$(echo "scale=2; $total_mb / 1024 / 1024" | bc)
|
||||
avail_gb=$(echo "scale=2; $avail_mb / 1024 / 1024" | bc)
|
||||
|
||||
echo -e " ${GREEN}●${NC} ${CYAN}${storage_name}${NC}"
|
||||
echo -e " 타입: ${storage_type} | 용량: ${total_gb}GB | 여유: ${avail_gb}GB | 사용률: ${usage_pct}"
|
||||
done
|
||||
|
||||
echo ""
|
||||
}
|
||||
|
||||
# 복구 설정 입력
|
||||
get_restore_config() {
|
||||
echo ""
|
||||
@ -335,9 +361,29 @@ get_restore_config() {
|
||||
read -p "$(echo -e ${CYAN}복구할 VM/CT ID${NC}) [기본값: ${TEMPLATE_VMID}]: " TARGET_VMID
|
||||
TARGET_VMID=${TARGET_VMID:-$TEMPLATE_VMID}
|
||||
|
||||
# 스토리지
|
||||
read -p "$(echo -e ${CYAN}저장 스토리지${NC}) [기본값: local-lvm]: " input_storage
|
||||
TARGET_STORAGE=${input_storage:-local-lvm}
|
||||
# 사용 가능한 스토리지 목록 표시
|
||||
list_available_storage
|
||||
|
||||
# 스토리지 선택
|
||||
while true; do
|
||||
read -p "$(echo -e ${CYAN}저장 스토리지 이름${NC}) [기본값: local-lvm]: " input_storage
|
||||
TARGET_STORAGE=${input_storage:-local-lvm}
|
||||
|
||||
# 입력한 스토리지가 존재하는지 확인
|
||||
if pvesm status -storage "${TARGET_STORAGE}" &>/dev/null; then
|
||||
# VM/CT 이미지를 저장할 수 있는지 확인
|
||||
if pvesm status -storage "${TARGET_STORAGE}" -content images &>/dev/null || \
|
||||
pvesm status -storage "${TARGET_STORAGE}" -content rootdir &>/dev/null; then
|
||||
log_success "스토리지 '${TARGET_STORAGE}' 선택됨"
|
||||
break
|
||||
else
|
||||
log_error "스토리지 '${TARGET_STORAGE}'는 VM/CT 이미지를 저장할 수 없습니다"
|
||||
fi
|
||||
else
|
||||
log_error "스토리지 '${TARGET_STORAGE}'를 찾을 수 없습니다"
|
||||
fi
|
||||
echo ""
|
||||
done
|
||||
|
||||
echo ""
|
||||
log_info "복구 요약:"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user