VMs CLI
Bevezetés
A VMs CLI a TerraMaster VMs virtualizációs alkalmazásának parancssori felügyeleti eszköze, amely a webes felügyeleti felülettel azonos lekérdezési és üzemeltetési képességeket nyújt. A CLI helyi unix socketen keresztül kommunikál a VMs szolgáltatással, szabványosított parancsinterfészt és JSON kimeneti formátumot használ, és beilleszthető szkriptekbe, automatizált üzemeltetésbe, valamint másodlagos fejlesztési munkafolyamatokba.
Fő jellemzők
- Azonnal használható: a VMs alkalmazással együtt települ, nincs szükség külön telepítésre
- Rugalmas meghívási módok: támogatja a helyi terminált, a távoli SSH-t, a szkripteket, az AI eszközöket és számos egyéb hívási módot
- Interaktív és nem interaktív kettős mód: alkalmas mind a rendszergazdák napi karbantartására, mind a szkriptekre és automatizált feladatokra
- JSON kimeneti támogatás: megkönnyíti a programok általi feldolgozást és az automatizált integrációt
- Helyi kommunikáció: kizárólag helyi unix socketen keresztül kommunikál a VMs szolgáltatással, nem nyit portot kifelé
- Veszélyes műveletek másodlagos megerősítése: a virtuális gép törlése, a hálózat törlése és hasonló műveletek alapértelmezés szerint megerősítést igényelnek
Gyors kezdés
# 在终端中执行(可通过本地终端、SSH、脚本、AI 工具等任意命令行途径)
vms --help
# 查看虚拟机列表
vms vm list
# 查看虚拟机详情
vms vm get <id>
# 以 JSON 格式输出(便于脚本解析)
vms vm list --json
vms vm list 输出示例:
NAME GUEST ID STATUS VCPU NUM VRAM SIZE IP
145 09fd98ee-4e2d-4c7a-a95c-8bacab80d322 shutdown 4 2097152 -
win10 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 shutdown 4 2097152 -
1454486 5a0391f2-c545-45eb-8eed-0a104972229b shutdown 4 2097152 -
win101 32ee5a74-de8b-47a9-959d-1725c881ceab shutdown 4 2097152 -
Globális opciók
Az alábbi opciók minden parancsra érvényesek:
| Opció | Rövidítés | Leírás |
|---|---|---|
--help | -h | A parancs súgójának megjelenítése |
--version | -v | A verziószám megjelenítése (a --json opcióval strukturált kimenet kérhető) |
--json | - | Kimenet JSON formátumban |
--yes | -y | A veszélyes műveletek megerősítési kérésének kihagyása (nem interaktív módban kötelező) |
--debug | - | Hibakeresési kimenet engedélyezése, a részletes végrehajtási folyamat megjelenítése |
--socket <path> | - | A VMs unix socket elérési útja, alapértelmezés: /var/api/VMs.sock |
--timeout <duration> | - | A kérés időtúllépése, alapértelmezés: 30s |
Verzióinformáció példa
vms --version
vms CLI v1.0.058
vms --version --json
{
"build": "20260911",
"cli_version": "v1.0.058"
}
Futási környezet
A VMs CLI a VMs alkalmazással együtt települ. Az alkalmazás engedélyezésekor a CLI-t a rendszer alapértelmezett PATH könyvtárába linkeli, így SSH-s bejelentkezés után azonnal használható.
| Elem | Leírás |
|---|---|
| CLI fájl | /Volume1/@apps/VMs/bin/vms |
| Parancs elérési útja | /usr/local/sbin/vms(már benne van a rendszer PATH-jában) |
| Kommunikációs mód | Helyi unix socket, alapértelmezés: /var/api/VMs.sock |
| Célközönség | A helyi gépre bejelentkezett rendszergazdák |
Megjegyzések:
- A CLI a helyi virtuális gépek felügyeletére szolgál, és nem támogatja más eszközök távoli felügyeletét CLI-n keresztül.
- A háttérszolgáltatás mindig HTTP 200-at ad vissza, a parancs sikerességét a választörzs
codemezője határozza meg, amelyet a CLI kilépési kóddá alakít. - A veszélyes műveletek (virtuális gép törlése, hálózat törlése, lemezkép törlése, tárhely törlése) interaktív módban megerősítést kérnek, nem interaktív módban pedig kifejezetten meg kell adni a
--yesopciót.
Parancsösszefoglaló táblázat
Az alábbiakban az összes vms parancs gyors összefoglaló referenciája található:
| Szülőparancs | Alparancs | Funkció leírása | Megerősítés szükséges | Magas kockázat |
|---|---|---|---|---|
| vms | --version | Verzióinformáció megjelenítése | Nem | Nem |
| vms vm | list | Az összes virtuális gép listázása | Nem | Nem |
| vms vm | get | A megadott virtuális gép részleteinek megtekintése | Nem | Nem |
| vms vm | list-resource | A virtuális gép létrehozásához elérhető erőforrások listázása | Nem | Nem |
| vms vm | logs | A virtuális gép műveleti naplójának megtekintése | Nem | Nem |
| vms vm | poweron | A virtuális gép elindítása | Nem | Nem |
| vms vm | poweroff | A virtuális gép leállítása (normál leállítás) | Igen | Nem |
| vms vm | force-poweroff | A virtuális gép kényszerített leállítása | Igen | ✅ |
| vms vm | reboot | A virtuális gép újraindítása | Nem | Nem |
| vms vm | pause | A virtuális gép szüneteltetése | Nem | Nem |
| vms vm | resume | A szüneteltetett virtuális gép folytatása | Nem | Nem |
| vms vm | autorun | Automatikus indítás beállítása rendszerindításkor | Nem | Nem |
| vms vm | clone | A virtuális gép klónozása | Nem | Nem |
| vms vm | export | A virtuális gép exportálása OVA fájlba | Nem | Nem |
| vms vm | delete | A virtuális gép törlése | Igen | ✅ |
| vms vm disk | list | A virtuális gép virtuális merevlemezeinek megtekintése | Nem | Nem |
| vms vm snapshot | list | A virtuális gép pillanatképeinek listázása | Nem | Nem |
| vms vm snapshot | create | Pillanatkép létrehozása | Nem | Nem |
| vms vm snapshot | edit | A pillanatkép leírásának és zárolási állapotának szerkesztése | Nem | Nem |
| vms vm snapshot | config | A pillanatképben tárolt virtuálisgép-konfiguráció megtekintése | Nem | Nem |
| vms vm snapshot | consistency | A pillanatkép konzisztenciájának előnézete | Nem | Nem |
| vms vm | link | A VNC konzol kapcsolódási adatainak lekérése | Nem | Nem |
| vms network | list | A virtuális hálózatok listázása | Nem | Nem |
| vms network | get | A virtuális hálózat részleteinek megtekintése | Nem | Nem |
| vms network | create | Virtuális hálózat létrehozása | Nem | Nem |
| vms network | update | A virtuális hálózat frissítése | Nem | Nem |
| vms network | delete | A virtuális hálózat törlése | Igen | ✅ |
| vms network | list-interfaces | A megadott típusú hálózati interfészek listázása | Nem | Nem |
| vms network | list-vnics | A hálózaton lévő virtuális hálózati kártyák listázása | Nem | Nem |
| vms network | ovsinfo | Az OVS engedélyezettségének megtekintése | Nem | Nem |
| vms image | list | A lemezképek listázása | Nem | Nem |
| vms image | edit | A lemezkép adatainak szerkesztése | Nem | Nem |
| vms image | delete | A lemezkép törlése | Igen | ✅ |
| vms image | list-vms | A lemezképet használó virtuális gépek megtekintése | Nem | Nem |
| vms repo | list | A tárhelyek listázása | Nem | Nem |
| vms repo | get | A tárhely részleteinek megtekintése | Nem | Nem |
| vms repo | update | A tárhely konfigurációjának frissítése | Nem | Nem |
| vms repo | delete | A tárhely törlése | Igen | ✅ |
| vms repo | list-volumes | Az elérhető kötetek listázása | Nem | Nem |
| vms repo | list-vms | A tárhelyen lévő virtuális gépek listázása | Nem | Nem |
| vms repo | check-running | A tárhelyen futó virtuális gépek ellenőrzése | Nem | Nem |
| vms repo | whether-exist-data | Annak ellenőrzése, hogy van-e adat a tárhelyen | Nem | Nem |
| vms setting | get | A globális beállítások megtekintése | Nem | Nem |
| vms collectd | hostinfo | A hoszt monitorozási adatainak megtekintése | Nem | Nem |
| vms collectd | vminfo | A virtuális gépek monitorozási adatainak megtekintése | Nem | Nem |
| vms collectd | storageinfo | A tárhely monitorozási adatainak megtekintése | Nem | Nem |
Parancsreferencia
A parancsokban a <id> a virtuális gép azonosítója, amely megfelel a virtuális gépek listájának kimenetében szereplő GUEST ID-nek; ugyanígy a <network_id>, <image_id>, <repo_id> is, amelyek rendre a vms network list, vms image list, vms repo list parancsokkal kérhetők le.
A kimeneti példákról:A
vmstáblázatos kimenete a túl hosszú mezőértékeket rögzített szélességre vágja (három ponttal végződik, és nem függ a terminál szélességétől), például a virtuális gép konfigurációjában aVDISKS,VNICS,ISO IMAGES, valamint a lemezképnevek. Ezért ebben a dokumentumban a hosszú mezőket érintő parancsok egységesen a teljes--jsonkimeneti példát adják meg, a többi parancs pedig a táblázatos kimeneti példát. Szkriptfeldolgozás esetén is javasolt egységesen a--jsonhasználata.
I. Virtuális gépek lekérdezése
vms vm list – Virtuális gépek listázása
A helyi gépen lévő összes virtuális gép és alapállapotuk listázása.
vms vm list [--limit N] [--offset N] [--json]
- A
--limités a--offseta lapozási paraméterek - Kimeneti oszlopok: név, virtuális gép azonosítója, futási állapot, CPU magok száma, memória mérete (KB-ban), IP-cím
Kimeneti példa:
NAME GUEST ID STATUS VCPU NUM VRAM SIZE IP
145 09fd98ee-4e2d-4c7a-a95c-8bacab80d322 shutdown 4 2097152 -
win10 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 shutdown 4 2097152 -
1454486 5a0391f2-c545-45eb-8eed-0a104972229b shutdown 4 2097152 -
win101 32ee5a74-de8b-47a9-959d-1725c881ceab shutdown 4 2097152 -
A STATUS gyakori értékei:
| Állapot | Leírás |
|---|---|
| running | Fut |
| shutdown | Leállítva |
| saved | Szüneteltetve (a futási állapot lemezre mentve) |
vms vm get – Virtuális gép részleteinek megtekintése
A megadott virtuális gép teljes konfigurációjának és futási állapotának megtekintése.
vms vm get <id> --json
- A kimenet tartalmazza a virtuális gép összes konfigurációs és futási állapotmezőjét
- Az üres értékek, például leírás nélkül vagy IP nélkül, üres karakterláncként jelennek meg
- Ha a virtuális gép nem létezik, a parancs hibát ad vissza és hibaüzenetet ír ki
Kimeneti példa:
{
"iso_images": [
"c93083a5-2b39-4f32-b19f-1ad97c6b4de4",
"9b3f2fdd-9173-4611-a84c-0cc9ce88293c"
],
"image_paths": [
"",
""
],
"autorun": 0,
"boot_from": "cdrom",
"bios": "bios",
"kb_layout": "en-us",
"serial_console": true,
"usb_version": 2,
"usb_device_name": [
"USB - Integrated Technology Express, Inc. Disk 2.0"
],
"usbs": [
":3:3:048d:1234"
],
"use_ovmf": false,
"vnics": [
{
"prefer_sriov": false,
"vnic_type": 3,
"mac": "1a:e2:ae:95:4a:51",
"network_id": "b364a1ec-f60c-4971-9ea2-f7a002f09fa3",
"virtual_interface_id": "fe972ef5-b066-4967-89fa-8e85e43c8808"
}
],
"operating_system_type": 0,
"vdisks": [
{
"vdisk_mode": 1,
"name": "",
"unmap": false,
"iops_enable": false,
"dev_limit": 0,
"dev_reservation": 0,
"dev_weight": 3,
"vdisk_size": 1024,
"idx": 0,
"vdisk_id": "f4ed4eae-1512-4273-963b-79ebd93a0932",
"disk_image_type": "",
"disk_image_id": ""
}
],
"name": "win10",
"vcpu_num": 4,
"vcpu_usage": 0,
"vram_size": 2097152,
"video_card": "vga",
"machine_type": "1",
"cpu_weight": 3,
"ip": "",
"desc": "",
"cpu_passthru": false,
"hyperv_enlighten": true,
"cpu_pin_num": 0,
"repo_id": "735ef7f7-5d8d-4102-9377-8a7b8c33cda6",
"repo_name": "VM-Storage01",
"poweron_after_create": false,
"guest_id": "9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1",
"increaseAllocatedSize": 0,
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "",
"snap_num": 0,
"has_guest_agent": false,
"status": "shutdown",
"status_code": 0,
"status_desc": "",
"host_ram_size": 0,
"total_throughput": 0,
"total_iops": 0,
"total_io_latency": 0,
"total_rx_bytes": 0,
"total_tx_bytes": 0,
"memory_usage": 0,
"cpu_usage": 0,
"vm_status_progress": 0
}
vms vm list-resource – A virtuális gép létrehozásához elérhető erőforrások listázása
A hoszt által nyújtható erőforrások, például firmware-típusok, lemezképek, CPU, memória, hálózat, tárhelyek és átengedhető eszközök megtekintése a virtuális gép létrehozása előtti felméréshez.
vms vm list-resource --json
Visszaadott mezők: max_cpu_num, max_ram_size, usbs, pci_devices, networks, repos, images, video_cards, firmware, keyboard_layout.
Kimeneti példa:
{
"max_cpu_num": 4,
"max_ram_size": 16503336960,
"usbs": [
{
"product_name": "4-Port USB 2.0 Hub",
"usb_id": ":3:3:0x0bda:0x5423",
"version": ""
},
{
"product_name": "4-Port USB 3.2 Hub",
"usb_id": ":4:2:0x0bda:0x0423",
"version": ""
},
{
"product_name": "Flash Drive",
"usb_id": ":3:2:0x058f:0x6387",
"version": ""
}
],
"pci_devices": [
{
"device_name": "",
"bdf": "0000:02:00.0",
"vendor_id": "0x10ec",
"product_id": "0x8126",
"class_id": "0x020000",
"iommu_group": 13,
"iommu_group_bdfs": [
"0x0000:0x02:0x00.0x0"
],
"driver": "r8169",
"type": "Network Controller"
},
{
"device_name": "",
"bdf": "0000:00:0d.0",
"vendor_id": "0x8086",
"product_id": "0x464e",
"class_id": "0x0c0330",
"iommu_group": 2,
"iommu_group_bdfs": [
"0x0000:0x00:0x0d.0x0"
],
"driver": "xhci_hcd",
"type": "USB Controller"
},
{
"device_name": "",
"bdf": "0000:03:00.0",
"vendor_id": "0x10ec",
"product_id": "0x8126",
"class_id": "0x020000",
"iommu_group": 14,
"iommu_group_bdfs": [
"0x0000:0x03:0x00.0x0"
],
"driver": "r8169",
"type": "Network Controller"
},
{
"device_name": "",
"bdf": "0000:00:14.0",
"vendor_id": "0x8086",
"product_id": "0x54ed",
"class_id": "0x0c0330",
"iommu_group": 3,
"iommu_group_bdfs": [
"0x0000:0x00:0x14.0x2",
"0x0000:0x00:0x14.0x0"
],
"driver": "xhci_hcd",
"type": "USB Controller"
},
{
"device_name": "",
"bdf": "0000:00:14.2",
"vendor_id": "0x8086",
"product_id": "0x54ef",
"class_id": "0x050000",
"iommu_group": 3,
"iommu_group_bdfs": [
"0x0000:0x00:0x14.0x2",
"0x0000:0x00:0x14.0x0"
],
"driver": "",
"type": "IOMMU Group Device"
}
],
"networks": [
{
"name": "VM-Network04",
"network_id": "ce9807c9-47b3-4258-9a80-ea8db1fd785d",
"support_sriov": false
},
{
"name": "VM-Network05",
"network_id": "b56c2f7b-e3f0-4b68-8a3b-245c90a8f8b5",
"support_sriov": false
},
{
"name": "VM-Network01",
"network_id": "b364a1ec-f60c-4971-9ea2-f7a002f09fa3",
"support_sriov": false
},
{
"name": "VM-Network02",
"network_id": "6c9fffd8-c7c4-4968-9b50-6890a640ec94",
"support_sriov": false
},
{
"name": "VM-Network03",
"network_id": "4c05b2a2-dd49-4588-ac5c-64975c92d2d3",
"support_sriov": false
}
],
"repos": [
{
"name": "VM-Storage01",
"free_size": 941970767872,
"repo_id": "735ef7f7-5d8d-4102-9377-8a7b8c33cda6",
"volume_size": 1099511627776,
"file_system": "btrfs",
"status": ""
},
{
"name": "VM-Storage02",
"free_size": 445785296896,
"repo_id": "517571ba-f7f7-49e1-9a62-7eb6ddfd9c78",
"volume_size": 536870912000,
"file_system": "btrfs",
"status": ""
}
],
"images": [
{
"id": "c93083a5-2b39-4f32-b19f-1ad97c6b4de4",
"name": "cn_windows_10_consumer_editions_version_1909_updated_jan_2020_x86_dvd_9c50652f",
"status": "available",
"type": "iso",
"used_size": 3884539904
},
{
"id": "9b3f2fdd-9173-4611-a84c-0cc9ce88293c",
"name": "virtio-win-0.1.285pro",
"status": "available",
"type": "iso",
"used_size": 789645312
},
{
"id": "efd6da18-9475-44cf-8fb0-e2513421e68a",
"name": "haos_ova-18.2",
"status": "available",
"type": "qcow2",
"used_size": 1091698688,
"virtual_size": 34359738368
},
{
"id": "cb9d929a-d673-4e46-ac86-9488bbef19b9",
"name": "cn_windows_11_consumer_editions_version_21h2_updated_july_2022_x64_dvd_50ad4acf",
"status": "available",
"type": "iso",
"used_size": 5858816000
}
],
"video_cards": [
"cirrus",
"vga",
"vmvga"
],
"firmware": [
"Legacy BIOS",
"UEFI"
],
"keyboard_layout": [
"fr-be",
"ar",
"bepo",
"cz",
"da",
"de",
"de-ch",
"en-gb",
"en-us",
"es",
"et",
"fo",
"fr",
"fr-be",
"fr-ca",
"fr-ch",
"hr",
"hu",
"is",
"it",
"ja",
"lt",
"lv",
"mk",
"nl",
"nl-be",
"no",
"pl",
"pt",
"pt-br",
"ru",
"sl",
"sv",
"th",
"tr"
]
}
vms vm logs – A virtuális gép műveleti naplójának megtekintése
A megadott virtuális géphez kapcsolódó műveleti napló megtekintése (be- és kikapcsolás, pillanatkép, szerkesztés, import/export stb.).
vms vm logs <id> --json [--limit N] [--desc]
- A
--limita visszaadott bejegyzések számát adja meg, alapértelmezés: 50 - A
--descidő szerint csökkenő sorrendbe rendez (alapértelmezés szerint bekapcsolva) - Minden naplóbejegyzés tartalmazza az időt, a szintet, a kategóriát, a műveletet végző felhasználót és az esemény leírását, az esemény leírása pedig teljes szöveg
- Az esemény leírását (
event) a VMs szolgáltatás az eszköz rendszernyelvének megfelelően lokalizálva adja ki, a dokumentum példái egységesen angol nyelvet használnak
Kimeneti példa:
[
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:44:09.176535374+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) shutdown successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:43:10.597187659+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) started successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:40:32.74904922+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) shutdown successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:39:55.916718004+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) started successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:39:43.341421576+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) shutdown successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:38:31.518259486+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) shutdown successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:38:07.98065689+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) started successfully"
},
{
"id": 0,
"level": "Error",
"time": "2026-09-02T11:32:35.01952111+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine (win10) export failed (Error:stat : no such file or directory)"
}
]
II. Virtuális gépek tápellátás-kezelése
vms vm poweron – A virtuális gép elindítása
vms vm poweron <id>
- A virtuális gépnek leállított állapotban kell lennie, különben állapotütközési hiba érkezik vissza
- Kimenet:
VM powered on: <id>
vms vm poweroff – A virtuális gép leállítása
Normál leállítási kérést küld a virtuális gépnek, hogy a rendszer szabályosan leálljon.
vms vm poweroff <id> [--yes]
- Veszélyes művelet: interaktív módban megerősítést kér, nem interaktív módban kötelező a
--yes - A virtuális gépnek futó állapotban kell lennie, különben állapotütközési hiba érkezik vissza
Megerősítési kérés interaktív módban:
This action will powered off VM "9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1". Do you want to continue? [y/N]:
- Kimenet:
VM powered off: <id>
vms vm force-poweroff – A virtuális gép kényszerített leállítása (magas kockázat)
A virtuális gép kényszerített leállítása, ami egyenértékű az áramellátás azonnali megszakításával.
vms vm force-poweroff <id> [--yes]
- Magas kockázatú művelet: interaktív módban megerősítést kér, nem interaktív módban kötelező a
--yes - A virtuális gépen belüli adatvesztést okozhat, ezért csak akkor javasolt, ha a virtuális gép nem válaszol
Megerősítési kérés interaktív módban:
This action will force powered off VM "9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1". Do you want to continue? [y/N]:
- Kimenet:
VM force powered off: <id>
vms vm reboot – A virtuális gép újraindítása
vms vm reboot <id>
- Kimenet:
VM rebooted: <id>
vms vm pause – A virtuális gép szüneteltetése
Fagyasztja a virtuális gép futási állapotát, és a jelenlegi állapotot lemezre menti.
vms vm pause <id>
- A virtuális gépnek futó állapotban kell lennie, különben állapotütközési hiba érkezik vissza
- Szüneteltetés után a virtuális gép állapota
savedértéket mutat - Kimenet:
VM paused: <id>
vms vm resume – A virtuális gép folytatása
A virtuális gépet a szüneteltetett állapotból futó állapotba állítja vissza.
vms vm resume <id>
- A virtuális gépnek szüneteltetett állapotban kell lennie, különben állapotütközési hiba érkezik vissza
- Kimenet:
VM resumed: <id>
vms vm autorun – Automatikus indítás beállítása rendszerindításkor
Beállítja, hogy a virtuális gép automatikusan elindul-e a hoszttal együtt.
vms vm autorun <id> <true|false>
- A második paraméternek
truevagyfalseértékűnek kell lennie - A parancs beolvassa a jelenlegi konfigurációt, és csak az automatikus indítás kapcsolóját módosítja, a többi beállítás változatlan marad
- Kimenet:
Auto-start enabled for VM <id>vagyAuto-start disabled for VM <id>
III. Virtuális gépek másolása, exportálása és törlése
vms vm clone – A virtuális gép klónozása
Új virtuális gépet hoz létre egy meglévő virtuális gép sablonként való felhasználásával.
vms vm clone --body '{"guest_id":"<source_id>","name":"my-clone"}'
vms vm clone --file clone.json
- A kéréstörzsben a
guest_ida forrás virtuális gép azonosítója, aname(vagyguest_name) pedig az új virtuális gép neve - A forrás virtuális gépnek leállított állapotban kell lennie
- A
--bodyközvetlenül JSON karakterláncként adja át a kéréstörzset, a--filepedig fájlból olvassa be a kéréstörzset
vms vm export – A virtuális gép exportálása
A virtuális gép OVA fájlba exportálása, megkönnyítve a biztonsági mentést vagy a más virtualizációs platformra való áttelepítést.
vms vm export --body '{"guest_id":"<source_id>","target_ova_path":"/Volume1/export/my-vm.ova"}'
vms vm export --file export.json
- A kéréstörzsben a
guest_ida forrás virtuális gép azonosítója, atarget_ova_patha célfájl elérési útja, azova_modepedig az opcionális VMware-kompatibilis mód - A forrás virtuális gépnek leállított állapotban kell lennie
- Az exportálás időigényes feladat, a nagy kapacitású virtuális gépek exportálása hosszabb ideig tart
vms vm delete – A virtuális gép törlése (magas kockázat)
A virtuális gép végleges törlése.
vms vm delete <id> [--yes]
- Magas kockázatú művelet: interaktív módban megerősítést kér, nem interaktív módban kötelező a
--yes - Törlés után a helyreállítás nem lehetséges, ezért előzetesen győződjön meg arról, hogy a virtuális gépen lévő adatok biztonsági mentése megtörtént
Megerősítési kérés interaktív módban:
This action will permanently delete VM "5a0391f2-c545-45eb-8eed-0a104972229b". Do you want to continue? [y/N]:
- Kimenet:
VM deleted: <id>
IV. Virtuális merevlemezek
vms vm disk list – A virtuális merevlemezek megtekintése
A megadott virtuális gép összes virtuális merevlemezének listázása.
vms vm disk list <id> [--json]
Kimeneti példa:
NAME VDISK ID VDISK SIZE VDISK MODE IDX
- f4ed4eae-1512-4273-963b-79ebd93a0932 1024 1 0
- A
VDISK MODEa virtuális merevlemez-vezérlő típusszáma, az1az IDE-t jelenti - A névtelen virtuális merevlemezek a
NAMEoszlopban-értékkel jelennek meg
V. Pillanatkép-kezelés
vms vm snapshot list – Pillanatképek listázása
vms vm snapshot list <id> [--json]
Kimeneti példa:
NAME GUEST ID DESCRIPTION LOCKED CREATED AT VM STATE ACTUAL CONSISTENCY
snapshot_2026-09-02T11-43-51.183703274 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 cli-test-edited false 2026-09-02T11:43:51+08:00 running crash
snapshot_2026-05-15T17-13-48.986448711 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 - false 2026-05-15T17:13:48+08:00 shutdown filesystem
- A
VM STATEa virtuális gép futási állapota a pillanatkép létrehozásakor - Az
ACTUAL CONSISTENCYa pillanatkép konzisztenciatípusa, afilesystemfájlrendszer-konzisztenciát, acrashpedig összeomlás-konzisztenciát jelent
vms vm snapshot create – Pillanatkép létrehozása
Pillanatkép létrehozása a virtuális gépről a jelenlegi állapot gyors visszaállításához vagy mentéséhez.
vms vm snapshot create <id>
vms vm snapshot create <id> --body '{"description":"before-upgrade","locked":false}'
- A kéréstörzs opcionális: a
descriptiona pillanatkép leírása, alockedpedig a zároltságot jelzi - A pillanatkép nevét a rendszer a létrehozás időpontja alapján automatikusan generálja
- A pillanatképek tárhelyet foglalnak, és a hosszú távú tisztítás elmaradása megtöltheti a tárhelyet, ezért rendszeres rendszerezés javasolt
vms vm snapshot edit – Pillanatkép szerkesztése
A pillanatkép leírásának vagy zárolási állapotának módosítása.
vms vm snapshot edit <id> <snapshot_name> --body '{"description":"updated description"}'
vms vm snapshot edit <id> <snapshot_name> --body '{"locked":true}'
- Csak a kéréstörzsben szereplő mezők módosulnak, a nem szereplő mezők megtartják eredeti értéküket; a leírás önmagában történő módosítása nem változtatja meg a zárolási állapotot, és fordítva
Kimeneti példa:
PROPERTY VALUE
ACTUAL CONSISTENCY crash
CREATED AT 2026-09-02T11:43:51+08:00
DESCRIPTION cli-test-edited
GUEST ID 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1
LOCKED false
NAME snapshot_2026-09-02T11-43-51.183703274
VM STATE running
vms vm snapshot config – A pillanatképben lévő virtuálisgép-konfiguráció megtekintése
A pillanatképben tárolt virtuálisgép-konfiguráció megtekintése.
vms vm snapshot config <id> <snapshot_name>
Az <id> a virtuális gép azonosítója, a <snapshot_name> a pillanatkép neve, amely a vms vm snapshot list <id> paranccsal kérhető le.
Kimeneti példa:
PROPERTY VALUE
CPU COMPATIBILITY MODE true
CPU PASSTHRU false
HYPERV ENLIGHTEN true
REPO NAME VM-Storage01
USB DEVICE NAME ["USB - Integrated Technology Express, Inc. Disk 2.0"]
USB VERSION 2
USBS [":3:3:048d:1234"]
VCPU NUM 4
VDISK NUM 1
VDISK TOTAL SIZE 1024
VDISKS [{"name":"disk1","type":"ide","vdisk_size":1024}]
VIDEO CARD vga
VRAM SIZE 2097152
vms vm snapshot consistency – A pillanatkép konzisztenciájának előnézete
A pillanatkép létrehozása előtt előnézetet ad a lehetséges konzisztenciatípusról, segítve annak eldöntését, hogy a jelenlegi állapot alkalmas-e pillanatkép létrehozására.
vms vm snapshot consistency <id>
Kimeneti példa:
PROPERTY VALUE
CONSISTENCY TYPE filesystem
REASON vm_shutdown
VM STATE shutdown
Leállított virtuális gép esetén a pillanatkép létrehozása fájlrendszer-konzisztens pillanatképet eredményez; futó állapotban általában csak összeomlás-konzisztens pillanatkép érhető el.
VI. Távoli konzol
vms vm link – VNC kapcsolódási adatok lekérése
A virtuális gép VNC konzoljának kapcsolódási adatait kéri le, a távoli konzol böngészőben való megnyitásához.
vms vm link <id> --json
- A virtuális gépnek futó vagy szüneteltetett állapotban kell lennie, különben állapotütközési hiba érkezik vissza
Kimeneti példa:
{
"url": "VMs/noVNC/vnc.html?autoconnect=true\u0026reconnect=true\u0026path=utils/websockify/?token=09fd98ee-4e2d-4c7a-a95c-8bacab80d322\u0026title=145",
"port": 8181,
"https": false
}
- Az
urla konzol NAS felügyeleti címéhez viszonyított elérési útja, aporta konzolszolgáltatás portja, ahttpspedig azt jelzi, hogy HTTPS-en keresztüli hozzáférésre van-e szükség - A JSON kimenetben az URL-ben lévő
&\u0026formára kerül escape-elésre
VII. Virtuális hálózat kezelése
A hálózattípusok kétfélék:
| Típus | Leírás |
|---|---|
| Privát (private) | Csak a helyi virtuális gépek közötti kommunikációra szolgáló belső hálózat, fizikai hálózati kártyához nem kötődik |
| Külső (external) | Fizikai hálózati kártyához kötött hálózat, amelyen keresztül a virtuális gépek a külvilággal kommunikálhatnak |
vms network list – Virtuális hálózatok listázása
vms network list [--limit N] [--offset N] [--json]
Kimeneti példa:
NAME NETWORK ID TYPE VLAN ID NUM GUESTS NUM HOSTS NUM INTERFACES HOST NAME
VM-Network04 ce9807c9-47b3-4258-9a80-ea8db1fd785d external 0 0 1 1 A-eae4
VM-Network01 b364a1ec-f60c-4971-9ea2-f7a002f09fa3 external 0 2 1 1 A-eae4
- A
NUM GUESTSaz ehhez a hálózathoz csatlakozó virtuális gépek száma, aNUM INTERFACESpedig a kiválasztott fizikai hálózati kártyák száma
vms network get – A virtuális hálózat részleteinek megtekintése
vms network get <network_id> --json
Kimeneti példa:
{
"metadata": {
"createdAt": "2026-05-15T16:46:08.415062294+08:00",
"updatedAt": "2026-05-15T16:46:08.415062415+08:00"
},
"network_id": "b364a1ec-f60c-4971-9ea2-f7a002f09fa3",
"name": "VM-Network01",
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "A-eae4",
"interfaces": {
"15341593-7f43-49f4-9523-6ac750a63a8a": {
"totalCount": 1,
"items": [
{
"checked": false,
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "A-eae4",
"interface_id": "/00000000-0000-0000-0000-6cbfb504eae5",
"interface_name": "LAN 2",
"ip": [
"192.168.2.121"
],
"mask": [
"ffffff00"
],
"speed_mbs": 1000,
"status": "connected",
"tx_kbps": 0,
"rx_kbps": 0
},
{
"checked": true,
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "A-eae4",
"interface_id": "/00000000-0000-0000-0000-6cbfb504eae4",
"interface_name": "LAN 1",
"ip": [
"10.18.8.95"
],
"mask": [
"ffffff00"
],
"speed_mbs": 1000,
"status": "connected",
"tx_kbps": 2.5458984375,
"rx_kbps": 11.45458984375
}
]
}
},
"num_guests": 0,
"num_hosts": 1,
"num_interfaces": 1,
"type": "external",
"vlan_id": 0
}
- Az
interfacesa hálózathoz kötött hálózati kártyák adatai, hoszt-azonosító szerint rendezve, acheckedpedig azt jelzi, hogy az adott kártya ki van-e választva - A
metadataa hálózat létrehozási és frissítési idejét rögzíti
vms network create – Virtuális hálózat létrehozása
vms network create --body '{"name":"net1","type":"private","host_name":"TNAS"}' --json
vms network create --body '{"name":"net1","type":"external","vlan_id":100,"host_name":"TNAS","interface_name":"LAN 1"}' --json
Privát hálózat létrehozása:
- A kéréstörzsnek tartalmaznia kell a
name,type(private),host_namevagyhost_idmezőket, megadva, hogy melyik hoszton jön létre a hálózat - Létrehozás előtt a
vms network list-interfaces privateparanccsal tekintheti meg az elérhető hosztokat
Külső hálózat létrehozása:
- A kéréstörzsnek tartalmaznia kell a
name,type(external),vlan_idmezőket, és legalább egy fizikai hálózati kártyát meg kell adni - A hálózati kártya az
interface_name(példáulLAN 1) vagy azinterface_idsegítségével adható meg; ha a kártya neve hosztok között nem egyedi, ahost_namemezővel együtt kell használni - Létrehozás előtt a
vms network list-interfaces externalparanccsal tekintheti meg az elérhető hálózati kártyákat
A kimenet a létrehozás utáni hálózati adatok, amelyek szerkezete megegyezik a vms network get kimenetével:
{
"metadata": {
"createdAt": "2026-09-17T16:57:32.064720576+08:00",
"updatedAt": "2026-09-17T16:57:32.064720634+08:00"
},
"network_id": "27047bd1-eeeb-4762-82ae-45094dea4854",
"name": "cli-demo-net",
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "A-eae4",
"interfaces": {
"15341593-7f43-49f4-9523-6ac750a63a8a": {
"totalCount": 1,
"items": [
{
"checked": true,
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "A-eae4",
"interface_id": "",
"interface_name": "PNdea4854",
"ip": null,
"mask": null,
"speed_mbs": 0,
"status": ""
}
]
}
},
"num_guests": 0,
"num_hosts": 1,
"num_interfaces": 1,
"type": "private",
"vlan_id": 0
}
Ha nincs megadva hálózati kártya, a parancs jelzést ad:
network create (type "external") requires selecting at least one interface; add "interface_name" (optionally scoped with "host_name") or "interface_id" to the body, e.g. {"name":"net1","type":"external","vlan_id":100,"host_name":"TNAS","interface_name":"LAN 1"}. Run "vms network list-interfaces external" to see available interfaces. Example available interface: LAN 2 on A-eae4 (host_id=15341593-7f43-49f4-9523-6ac750a63a8a, interface_id=/00000000-0000-0000-0000-6cbfb504eae5)
vms network update – A virtuális hálózat frissítése
Csak a módosítandó mezők kerülnek benyújtásra, a be nem nyújtott mezők megtartják eredeti értéküket.
vms network update --body '{"network_id":"<network_id>","name":"renamed"}'
vms network update --body '{"network_id":"<network_id>","vlan_id":200}'
- A kéréstörzsnek tartalmaznia kell a
network_idmezőt - A parancs először beolvassa a jelenlegi hálózati konfigurációt, és összevonja a benyújtott mezőkkel, így a hálózat neve és a kiválasztott hálózati kártyák nem törlődnek
- A kimenet a frissített hálózati adatok
vms network delete – A virtuális hálózat törlése (magas kockázat)
vms network delete <network_id> [--yes]
- Magas kockázatú művelet: interaktív módban megerősítést kér, nem interaktív módban kötelező a
--yes - A hálózat törlése leválasztja az ahhoz csatlakozó összes virtuális gépet
- Javasolt előzetesen a
vms network list-vnics <network_id>paranccsal megerősíteni a csatlakozó virtuális gépeket
Megerősítési kérés interaktív módban:
This action will delete network "b364a1ec-f60c-4971-9ea2-f7a002f09fa3". Do you want to continue? [y/N]:
- Kimenet:
Network deleted: <network_id>
vms network list-interfaces – Hálózati interfészek listázása
A megadott típusú hálózati interfészek listázása.
vms network list-interfaces external [--limit N] [--offset N]
vms network list-interfaces private [--limit N] [--offset N]
- Az
externala hoszton elérhető fizikai hálózati kártyákat adja vissza - A
privatea privát hálózat létrehozásához használható hosztok adatait adja vissza
Kimeneti példa (external):
INTERFACE NAME INTERFACE ID HOST NAME STATUS IP SPEED MBS
LAN 2 /00000000-0000-0000-0000-6cbfb504eae5 A-eae4 disconnected - -1
LAN 1 /00000000-0000-0000-0000-6cbfb504eae4 A-eae4 connected ["10.18.8.73"] 1000
Kimeneti példa (private):
INTERFACE NAME INTERFACE ID HOST NAME STATUS IP SPEED MBS
- - A-eae4 - - 0
vms network list-vnics – A hálózaton lévő virtuális hálózati kártyák listázása
vms network list-vnics <network_id> [--limit N] [--offset N] [--json]
Kimeneti példa:
GUEST NAME GUEST ID MAC ADDRESS VIRTUAL INTERFACE ID NETWORK NAME STATUS PREFER SRIOV
win10 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 1a:e2:ae:95:4a:51 fe972ef5-b066-4967-89fa-8e85e43c8808 VM-Network01 - false
win101 32ee5a74-de8b-47a9-959d-1725c881ceab 1a:f6:db:fb:3d:79 f93bf16c-01ca-4b60-b164-8a3083fb5f03 VM-Network01 - false
vms network ovsinfo – Az OVS állapotának megtekintése
Annak ellenőrzése, hogy az Open vSwitch virtuális kapcsoló engedélyezve van-e.
vms network ovsinfo [--json]
Kimeneti példa:
PROPERTY VALUE
RESULT true
Ha a VALUE értéke true, az OVS engedélyezve van.
VIII. Lemezkép-kezelés
vms image list – Lemezképek listázása
A virtuális gépek létrehozásához használható rendszerlemezkép-fájlok listázása.
vms image list --json
- Az
image_namea lemezkép neve, afile_namepedig a hozzá tartozó fájlnév - A
typea lemezkép formátuma, példáuliso,qcow2 - A
statusa lemezkép állapota, azavailableaz elérhetőt jelenti - A
reposaz a tárhely, ahol a lemezkép található - A
progressa lemezképfeldolgozási feladat előrehaladása, a0azt jelenti, hogy nincs folyamatban lévő feladat
Kimeneti példa:
{
"totalCount": 4,
"items": [
{
"image_name": "cn_windows_10_consumer_editions_version_1909_updated_jan_2020_x86_dvd_9c50652f",
"image_id": "c93083a5-2b39-4f32-b19f-1ad97c6b4de4",
"file_name": "cn_windows_10_consumer_editions_version_1909_updated_jan_2020_x86_dvd_9c50652f.iso",
"type": "iso",
"file_size": 3884539904,
"status": "available",
"status_code": 0,
"status_reason": "",
"create_time": 1778835784,
"repos": [
{
"repo_name": "VM-Storage01",
"repo_id": "735ef7f7-5d8d-4102-9377-8a7b8c33cda6"
}
],
"progress": 0,
"task_id": 0,
"virtual_size": 0
},
{
"image_name": "cn_windows_11_consumer_editions_version_21h2_updated_july_2022_x64_dvd_50ad4acf",
"image_id": "cb9d929a-d673-4e46-ac86-9488bbef19b9",
"file_name": "cn_windows_11_consumer_editions_version_21h2_updated_july_2022_x64_dvd_50ad4acf.iso",
"type": "iso",
"file_size": 5858816000,
"status": "available",
"status_code": 0,
"status_reason": "",
"create_time": 1778835784,
"repos": [
{
"repo_name": "VM-Storage01",
"repo_id": "735ef7f7-5d8d-4102-9377-8a7b8c33cda6"
}
],
"progress": 0,
"task_id": 0,
"virtual_size": 0
},
{
"image_name": "virtio-win-0.1.285pro",
"image_id": "9b3f2fdd-9173-4611-a84c-0cc9ce88293c",
"file_name": "virtio-win-0.1.285.iso",
"type": "iso",
"file_size": 789645312,
"status": "available",
"status_code": 0,
"status_reason": "",
"create_time": 1778836128,
"repos": [
{
"repo_name": "VM-Storage01",
"repo_id": "735ef7f7-5d8d-4102-9377-8a7b8c33cda6"
}
],
"progress": 0,
"task_id": 0,
"virtual_size": 0
},
{
"image_name": "haos_ova-18.2",
"image_id": "efd6da18-9475-44cf-8fb0-e2513421e68a",
"file_name": "haos_ova-18.2.qcow2",
"type": "qcow2",
"file_size": 1091698688,
"status": "available",
"status_code": 0,
"status_reason": "",
"create_time": 1787191833,
"repos": [
{
"repo_name": "VM-Storage02",
"repo_id": "517571ba-f7f7-49e1-9a62-7eb6ddfd9c78"
}
],
"progress": 0,
"task_id": 0,
"virtual_size": 0
}
]
}
vms image edit – Lemezkép szerkesztése
A lemezkép nevének módosítása vagy a lemezkép tárhelyének módosítása.
vms image edit --body '{"image_id":"<image_id>","repos":["<repo_id>"]}'
vms image edit --body '{"image_id":"<image_id>","repos":["<repo_id_1>","<repo_id_2>"],"image_name":"renamed.iso"}'
- A kéréstörzsnek tartalmaznia kell az
image_idésreposmezőket, ahol areposa lemezkép teljes cél-tárhelylistája, és nem lehet üres - Az
image_name,file_name,type,file_sizeopcionális mezők, amelyek megadás hiányában a jelenlegi értéket tartják meg - Az üres
reposa lemezkép összes tárhelyről való eltávolítását eredményezné, ezért a parancs a végrehajtás előtt elutasítja a kérést - Kimenet:
Image updated
vms image delete – A lemezkép törlése (magas kockázat)
vms image delete --image-id <image_id> [--yes]
- Az
--image-idkötelező - Magas kockázatú művelet: interaktív módban megerősítést kér, nem interaktív módban kötelező a
--yes - A lemezkép törlése nem érinti a már létrehozott virtuális gépeket, de befolyásolja a lemezkép alapján történő későbbi virtuálisgép-létrehozást
- Javasolt előzetesen a
vms image list-vms --image-id <image_id>paranccsal megerősíteni a használatot
Megerősítési kérés interaktív módban:
This action will permanently delete image "efd6da18-9475-44cf-8fb0-e2513421e68a". Do you want to continue? [y/N]:
- Kimenet:
Image deleted: <image_id>
vms image list-vms – A lemezképet használó virtuális gépek megtekintése
vms image list-vms --image-id <image_id> [--json]
Kimeneti példa:
GUEST NAME
1454486
A lemezkép törlése előtt először ezt a parancsot futtathatja a hatókör megerősítéséhez; ha egyetlen virtuális gép sem használja a lemezképet, a kimenet üres.
IX. Tárhelykezelés
vms repo list – Tárhelyek listázása
vms repo list [--json]
Kimeneti példa:
NAME REPO ID STATUS USED PERCENT USED TOTAL SIZE FILE SYSTEM HOST NAME
VM-Storage01 735ef7f7-5d8d-4102-9377-8a7b8c33cda6 - 155583651840 14.150249481201172 1097552691200 btrfs -
VM-Storage02 517571ba-f7f7-49e1-9a62-7eb6ddfd9c78 normal 89361494016 16.64487648010254 535146790912 btrfs A-eae4
vms repo get – A tárhely részleteinek megtekintése
vms repo get <repo_id> [--json]
Kimeneti példa:
PROPERTY VALUE
ENABLE LOWER NOTIFY false
FILE SYSTEM btrfs
HARD LIMIT 2
HOST ID 15341593-7f43-49f4-9523-6ac750a63a8a
HOST NAME A-eae4
LAST NOTIFY TRESHOLD -
LOCATION VOLUME /Volume2
NAME VM-Storage02
REPO ID 517571ba-f7f7-49e1-9a62-7eb6ddfd9c78
SOFT LIMIT 10
STATUS normal
TOTAL SIZE 534760128512
- A
LOCATION VOLUMEaz a kötet, ahol a tárhely található - A
SOFT LIMIT,HARD LIMITa kapacitásriasztási küszöbértékek (százalékban) - Az
ENABLE LOWER NOTIFYazt jelzi, hogy engedélyezve van-e az elégtelen kapacitásra vonatkozó figyelmeztetés
vms repo update – A tárhely frissítése
Csak a módosítandó mezők kerülnek benyújtásra, a be nem nyújtott mezők megtartják eredeti értéküket.
vms repo update --body '{"repo_id":"<repo_id>","name":"new-name"}'
vms repo update --body '{"repoId":"<repo_id>","enable_lower_notify":true}'
- A tárhely azonosítója a
repo_idvagy arepoIdmezőn keresztül adható át - A parancs először beolvassa a jelenlegi konfigurációt, és összevonja a benyújtott mezőkkel, így a többi beállítás nem vész el
- A kimenet a frissített tárhelyadatok
vms repo delete – A tárhely törlése (magas kockázat)
vms repo delete <repo_id> <true|false> [--yes]
- A második paraméter a
need_save_data: atruea lemezen lévő adatfájlok megőrzését, afalsepedig az adatokkal együtt történő törlést jelenti - Magas kockázatú művelet: interaktív módban megerősítést kér, nem interaktív módban kötelező a
--yes - A tárhely törlése egyidejűleg eltávolítja a benne lévő virtuális gépeket és lemezképeket, ezért javasolt először a
vms repo check-runningés avms repo whether-exist-dataparancsokat futtatni a hatókör megerősítéséhez
Megerősítési kérés interaktív módban:
This action will delete repository "735ef7f7-5d8d-4102-9377-8a7b8c33cda6" (save data: true). Do you want to continue? [y/N]:
- Kimenet:
Repository deleted: <repo_id>
vms repo list-volumes – Az elérhető kötetek listázása
A tárhely létrehozásához használható kötetek listázása.
vms repo list-volumes [--json]
Kimeneti példa:
NAME UUID DEVICE FILESYSTEM STATUS VOLUME TYPE TOTAL USED AVAILABLE USAGE
lv3 00000004-2608-1311-3025-6cbfb504eae4 /dev/mapper/vg0-lv3 ext4 - - {"unit":"KB","value":102626232} {"unit":"KB","value":52} {"unit":"KB","value":101561220} 0.000051200619070623694
lv2 00000003-2606-2215-3256-6cbfb504eae4 /dev/mapper/vg0-lv2 btrfs - - {"unit":"KB","value":104857600} {"unit":"KB","value":9715824} {"unit":"KB","value":93096464} 9.450061066630479
vms repo list-vms – A tárhelyen lévő virtuális gépek listázása
vms repo list-vms --body '{"repo_id":"<repo_id>"}'
- A tárhely azonosítója a
repo_idvagy arepoIdmezőn keresztül adható át - A parancs először lekéri a tárhely objektumot, majd lekérdezi annak virtuális gépeit, így az eredmény megbízhatóbb
vms repo check-running – A tárhelyen futó virtuális gépek ellenőrzése
vms repo check-running <repo_id> [--json]
A tárhely törlése előtt futtatandó, annak megerősítésére, hogy nem fut virtuális gép; ha nincs futó virtuális gép, a kimenet üres.
vms repo whether-exist-data – Annak ellenőrzése, hogy van-e adat a tárhelyen
vms repo whether-exist-data --body '{"repo_id":"<repo_id>"}'
A tárhely törlése előtt futtatandó, annak megerősítésére, hogy van-e még adat a tárhelyen; megegyezik a webes felületen a tárhely törlése előtti előzetes ellenőrzéssel.
X. Globális beállítások
vms setting get – A globális beállítások megtekintése
A VMs alkalmazás globális konfigurációjának megtekintése.
vms setting get [--json]
Kimeneti példa:
PROPERTY VALUE
HOST SHUTDOWN BEHAVIOR 1
KB LAYOUT en-us
SHOW VIRTIO BLK VDISK false
- A
HOST SHUTDOWN BEHAVIORa virtuális gépek kezelésének módja a hoszt leállításakor - A
KB LAYOUTa virtuális gépek billentyűzetkiosztása
XI. Monitorozási információk lekérdezése
vms collectd hostinfo – A hoszt monitorozási adatainak megtekintése
vms collectd hostinfo [--limit N] [--offset N] [--json]
Kimeneti példa:
NAME ID STATUS TYPE CPU USAGE RAM USAGE DESC
A-eae4 - running healthy 2.53 15.66 Info
vms collectd vminfo – A virtuális gépek monitorozási adatainak megtekintése
vms collectd vminfo [--limit N] [--offset N] [--json]
Kimeneti példa:
NAME ID STATUS TYPE CPU USAGE RAM USAGE DESC
145 09fd98ee-4e2d-4c7a-a95c-8bacab80d322 shutdown healthy 0 0 info
win10 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 shutdown healthy 0 0 info
win101 32ee5a74-de8b-47a9-959d-1725c881ceab shutdown healthy 0 0 info
vms collectd storageinfo – A tárhely monitorozási adatainak megtekintése
vms collectd storageinfo [--limit N] [--offset N] [--json]
Kimeneti példa:
NAME ID HOST NAME STATUS TYPE SIZE USED PERCENT USED PERCENT FREE
VM-Storage01 735ef7f7-5d8d-4102-9377-8a7b8c33cda6 A-eae4 none healthy 1097552691200 155583651840 14.328414916992188 85.67158508300781
VM-Storage02 517571ba-f7f7-49e1-9a62-7eb6ddfd9c78 A-eae4 none healthy 535146790912 89361494016 16.966018676757812 83.03398132324219
Interaktív és nem interaktív mód
A CLI megállapítja, hogy terminálkörnyezetben fut-e, és ennek megfelelően eltérően viselkedik:
Interaktív mód (terminálkörnyezet)
- A veszélyes műveletek megerősítési kérést jelenítenek meg, az alapértelmezett opció a No
- A folytatáshoz írja be az
yvagyYkaraktert, a megszakításhoz aznkaraktert vagy egyszerűen az Entert - A művelet megszakításakor az
Operation cancelledüzenet jelenik meg, a kilépési kód pedig 99
Nem interaktív mód (szkript/automatizálás)
- A veszélyes műveleteknél a megerősítés kihagyásához kötelező a
--yeshasználata, ellenkező esetben a parancs azonnal hibát jelez és 1-es kilépési kóddal tér vissza - Terminálkörnyezet hiányában nem vár bemenetre, így alkalmas szkriptekből és ütemezett feladatokból való hívásra
- Javasolt a kilépési kódok kifejezett kezelése a szkriptekben, a siker, a hiba és az állapotütközés megkülönböztetéséhez
JSON kimeneti formátum
A lekérdező parancsok támogatják a --json paramétert, szabványosított JSON adatokat adva ki, amelyeket könnyű feldolgozni programokkal.
Formátumkonvenciók:
- A mezőnevek snake_case stílusban vannak
- A logikai értékek true/false
- Az idő ISO 8601 formátumú, nanoszekundum pontossággal és UTC+8 időzóna-eltolással (például 2026-09-02T11:43:51.176535374+08:00)
- A JSON kimenet a stdout-ra, a hibaüzenetek a stderr-re kerülnek
- A táblázatos kimenetben levágott hosszú mezők a JSON kimenetben teljes értékként szerepelnek
Példa:
vms setting get --json
{
"host_shutdown_behavior": 1,
"kb_layout": "en-us",
"show_virtio_blk_vdisk": false
}
A különböző parancsok JSON szerkezete némileg eltér: a vms vm list, vms vm snapshot list, vms vm logs közvetlenül tömböt ad ki; a többi listázó parancs totalCount mezőt és adatmezőket tartalmazó objektumot ad ki, amelyek adatmezőnevei erőforrásonként változnak (például items, hosts, vms, storage). Például a vms repo list --json:
{
"totalCount": 2,
"items": {
"517571ba-f7f7-49e1-9a62-7eb6ddfd9c78": {
"name": "VM-Storage02",
"repo_id": "517571ba-f7f7-49e1-9a62-7eb6ddfd9c78",
"status": "normal",
"used": 89361494016,
"percent_used": 16.64487648010254,
"location_volume": "/Volume2",
"total_size": 535146790912,
"hard_limit": 2,
"soft_limit": 10,
"enable_lower_notify": false,
"file_system": "btrfs"
}
}
}
Egyes parancsok JSON kimenete egyszerű érték, például a vms network ovsinfo --json a true, a vms vm pause --json pedig a null értéket adja ki.
Kilépési kódok magyarázata
| Kilépési kód | Jelentés | Tipikus forgatókönyv |
|---|---|---|
| 0 | Siker | A parancs rendben lefutott |
| 1 | Paraméterhiba | Hiányzó kötelező paraméter, hibás paraméterformátum, hiányzó --yes |
| 3 | Az erőforrás nem létezik | A parancs előzetes ellenőrzése nem sikerült, például a megadott lemezkép nem létezik |
| 4 | Állapotütközés | A virtuális gép jelenlegi állapota nem engedélyezi ezt a műveletet (például leállítás végrehajtása egy már leállított virtuális gépen) |
| 6 | Kapcsolódási hiba | Nem sikerül csatlakozni a VMs szolgáltatáshoz, vagy hibás a socket elérési útja |
| 7 | Időtúllépés | A kérés túllépte az időkorlátot, a --timeout opcióval állítható |
| 9 | Végrehajtási hiba | A háttérszolgáltatás hibát adott vissza (a hibaüzenet tartalmazza a code_num értéket és a hibaleírást) |
| 99 | Felhasználói megszakítás | Az interaktív megerősítésnél a No választás vagy közvetlen Enter |
Példa:
# 退出码 1(参数错误)
vms vm poweroff <id>
# Confirmation required. Re-run with --yes to continue.
# 退出码 4(状态冲突)
vms vm pause <id>
# cannot pause a virtual machine: VM must be running (current status: shutdown)
# 退出码 9(执行错误)
vms vm get <id>
# vm check configure error: vdisk check - vm not exist: key not found (code_num=2001, vm check configure error)
# 退出码 6(连接错误)
vms vm list --socket /tmp/nope.sock
# failed to connect to VMs daemon (socket /tmp/nope.sock): dial unix /tmp/nope.sock: connect: no such file or directory
Használati forgatókönyvek példái
Napi üzemeltetés
# 查看所有虚拟机状态
vms vm list
# 查看某台虚拟机的配置与运行状态
vms vm get <id>
# 查看虚拟机的操作日志
vms vm logs <id> --limit 20
# 开机、关机与重启
vms vm poweron <id>
vms vm poweroff <id> --yes
vms vm reboot <id>
Batch-műveletek szkripttel
# 批量启动所有已关机的虚拟机
vms vm list --json | jq -r '.[] | select(.status == "shutdown") | .guest_id' | while read -r id; do
vms vm poweron "$id"
done
# 批量关闭所有运行中的虚拟机
vms vm list --json | jq -r '.[] | select(.status == "running") | .guest_id' | while read -r id; do
vms vm poweroff "$id" --yes
done
# 存储空间容量检查,超过 80% 时输出告警
vms collectd storageinfo --json | jq -r '.storage[] | select(.percent_used > 80) | .name'
Biztonsági mentés és ellenőrzés
# 关机后为虚拟机创建快照
vms vm poweroff <id> --yes
vms vm snapshot consistency <id>
vms vm snapshot create <id> --body '{"description":"weekly-backup"}'
# 查看快照列表与详情
vms vm snapshot list <id>
vms vm snapshot config <id> <snapshot_name>
# 导出虚拟机为 OVA 文件,用于异地备份
vms vm export --body '{"guest_id":"<id>","target_ova_path":"/Volume1/backup/my-vm.ova"}'
Törlés előtti ellenőrzés
# 删除存储空间前,先确认是否有虚拟机正在运行、是否存在数据
vms repo check-running <repo_id>
vms repo whether-exist-data --body '{"repo_id":"<repo_id>"}'
# 删除映像前,先确认有哪些虚拟机在使用
vms image list-vms --image-id <image_id>
# 删除网络前,先确认接入的虚拟机
vms network list-vnics <network_id>
AI eszközök hívása
# AI 工具可通过命令行调用 vms 命令
# 例如:获取虚拟机与宿主机状态供 AI 分析
vms vm list --json
vms collectd hostinfo --json
# AI 可解析 JSON 输出并作出决策
vms vm list-resource --json
Belső fejlesztés és rendszerintegráció
# 开发人员可通过 CLI 封装内部运维工具
# 示例:封装虚拟机健康检查函数
check_vm_health() {
vms collectd vminfo --json | jq -r '.vms[] | select(.status != "running") | .name'
}
# 将 CLI 集成到内部监控平台
vms collectd storageinfo --json | curl -X POST https://monitor.example.com/api/report -d @-
Gyakori kérdések
K: Szükséges a CLI külön telepítése?
Nem. A CLI a VMs alkalmazással együtt települ, az alkalmazás engedélyezése után azonnal használhatja a vms parancsot.
K: A CLI-t kötelező SSH-n keresztül használni?
Nem. A CLI bármilyen parancssori terminálból meghívható, beleértve a helyi terminált, a távoli SSH-t, a szkripteket, az AI eszközöket és egyebeket.
K: A CLI más eszközök virtuális gépeit is kezelheti?
Nem. A CLI helyi unix socketen keresztül kommunikál a VMs szolgáltatással, és kizárólag a helyi virtuális gépek felügyeletére szolgál.
K: Miért kérnek megerősítést egyes parancsok, mások pedig nem?
A virtuális gép törlése, a hálózat törlése, a lemezkép törlése, a tárhely törlése és a leállítás (poweroff, force-poweroff) adatokat vagy szolgáltatásokat érintő műveletek, ezért alapértelmezés szerint megerősítést igényelnek; az indítási, újraindítási, szüneteltetési, folytatási és lekérdező parancsoknak nincs ilyen korlátozásuk.
K: Hogyan kell megerősíteni a veszélyes műveleteket nem interaktív módban?
Minden veszélyes művelethez hozzá kell adni a --yes paramétert, ellenkező esetben a parancs hibával kilép (kilépési kód 1).
K: Hogyan állapítható meg szkriptben, hogy a parancs sikeresen lefutott-e?
A kilépési kód alapján: a 0 sikert, a nem 0 érték hibát jelent. A --json kimenet tartalma is feldolgozható.
K: Miért objektum a --json kimenetben szereplő lista?
Egyes parancsok JSON kimenete azonosító szerint objektumba rendezve jelenik meg, totalCount mezővel együtt, megkönnyítve az azonosító szerinti közvetlen hozzáférést.
További segítség
Minden parancs támogatja a --help opciót a részletes használat megtekintéséhez:
vms --help
vms vm --help
vms vm poweroff --help
vms network create --help