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
|
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() {
|
get_restore_config() {
|
||||||
echo ""
|
echo ""
|
||||||
@ -335,9 +361,29 @@ get_restore_config() {
|
|||||||
read -p "$(echo -e ${CYAN}복구할 VM/CT ID${NC}) [기본값: ${TEMPLATE_VMID}]: " TARGET_VMID
|
read -p "$(echo -e ${CYAN}복구할 VM/CT ID${NC}) [기본값: ${TEMPLATE_VMID}]: " TARGET_VMID
|
||||||
TARGET_VMID=${TARGET_VMID:-$TEMPLATE_VMID}
|
TARGET_VMID=${TARGET_VMID:-$TEMPLATE_VMID}
|
||||||
|
|
||||||
# 스토리지
|
# 사용 가능한 스토리지 목록 표시
|
||||||
read -p "$(echo -e ${CYAN}저장 스토리지${NC}) [기본값: local-lvm]: " input_storage
|
list_available_storage
|
||||||
TARGET_STORAGE=${input_storage:-local-lvm}
|
|
||||||
|
# 스토리지 선택
|
||||||
|
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 ""
|
echo ""
|
||||||
log_info "복구 요약:"
|
log_info "복구 요약:"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user