Update ocixjj.sh

This commit is contained in:
振振君子 authored and GitHub committed 2026-09-13 14:06:44 +08:00
1 parent db2198dd11
commit 26ef103788
1 file changed
+58 -3
+58 -3
View File
@@ -296,9 +296,12 @@ cmd_create() {
# -c limits.cpu.allowance= CPU 时间片百分比(不是核数,可以设很小,如 5%)
# -c limits.memory= 内存上限
# -d root,size= 根盘大小限制(需存储池驱动支持配额才会真正强制)
# boot.autostart=true: 让容器在宿主机重启/Incus服务重启后自动拉起,
# 否则默认容器停机后不会自己起来,需要手动 incus start
incus launch "$BASE_IMAGE" "$NAME" \
-c limits.cpu.allowance="${CPU}" \
-c limits.memory="${MEM}" \
-c boot.autostart=true \
-d root,size="${DISK}"
IP=$(wait_for_ip "$NAME")
@@ -496,7 +499,45 @@ cmd_check() {
echo " 磁盘: $(incus config device get "$NAME" root size 2>/dev/null || echo '未设置(不限)')"
}
# ================= 交互式菜单 =================
# ================= 子命令: restart =================
# 重启指定小鸡,或传 all 重启全部小鸡
cmd_restart() {
local NAME="$1"
if [ -z "$NAME" ]; then
echo "用法: sudo ./chicken.sh restart <名称|all>"
echo " 示例: sudo ./chicken.sh restart ck1"
echo " sudo ./chicken.sh restart all"
exit 1
fi
if [ "$NAME" = "all" ]; then
local names
names=$(incus list -c n --format csv | grep "^${NAME_PREFIX}" || true)
if [ -z "$names" ]; then
echo "没有找到任何以 ${NAME_PREFIX} 开头的小鸡"
return
fi
echo "即将重启以下小鸡:"
echo "$names" | sed 's/^/ - /'
for n in $names; do
echo "-- 重启 $n"
incus restart "$n" --timeout 30 2>/dev/null || incus start "$n" 2>/dev/null || echo " !! $n 重启失败,请手动检查"
done
echo "全部重启完成,建议稍等几秒后跑: sudo ./chicken.sh list 确认状态"
return
fi
if ! incus info "$NAME" &>/dev/null; then
echo "容器 $NAME 不存在"
exit 1
fi
echo "正在重启 $NAME ..."
incus restart "$NAME" --timeout 30 2>/dev/null || incus start "$NAME"
echo "$NAME 已重启,建议稍等几秒后跑: sudo ./chicken.sh check $NAME 确认SSH是否恢复"
}
# 列出当前已记录的小鸡名称,方便菜单里选择时参考
menu_list_names() {
@@ -569,6 +610,14 @@ menu_do_check() {
menu_run cmd_check "$name"
}
menu_do_restart() {
menu_list_names
echo ""
read -rp "输入要重启的小鸡名称(输入 all 重启全部): " name
[ -z "$name" ] && { echo "名称不能为空"; return; }
menu_run cmd_restart "$name"
}
cmd_menu() {
while true; do
clear
@@ -592,9 +641,10 @@ cmd_menu() {
echo " 6) 调整某台资源限制 (resize)"
echo " 7) 删除某台小鸡 (delete)"
echo " 8) 自检某台小鸡SSH (check)"
echo " 9) 重启某台/全部小鸡 (restart)"
echo " 0) 退出"
echo "------------------------------------------------"
read -rp "请选择操作 [0-8]: " choice
read -rp "请选择操作 [0-9]: " choice
echo ""
case "$choice" in
1) menu_run cmd_init; menu_pause ;;
@@ -605,8 +655,9 @@ cmd_menu() {
6) menu_do_resize; menu_pause ;;
7) menu_do_delete; menu_pause ;;
8) menu_do_check; menu_pause ;;
9) menu_do_restart; menu_pause ;;
0) echo "已退出"; exit 0 ;;
*) echo "无效选择,请输入 0-8 之间的数字"; sleep 1 ;;
*) echo "无效选择,请输入 0-9 之间的数字"; sleep 1 ;;
esac
done
}
@@ -639,6 +690,9 @@ case "$1" in
check)
cmd_check "$2"
;;
restart)
cmd_restart "$2"
;;
menu|"")
cmd_menu
;;
@@ -655,6 +709,7 @@ case "$1" in
echo " sudo ./chicken.sh list 查看所有小鸡状态和账号信息/资源限制"
echo " sudo ./chicken.sh delete <名称> 删除指定小鸡"
echo " sudo ./chicken.sh check <名称> 自检该小鸡SSH是否真的通,并显示资源限制"
echo " sudo ./chicken.sh restart <名称|all> 重启指定小鸡,或传 all 重启全部小鸡"
exit 1
;;
esac